Adds compatibility for Nimrod's 0.9.4 compiler.
This commit is contained in:
parent
0bf1faa354
commit
244a4b5b14
3 changed files with 31 additions and 3 deletions
|
|
@ -9,4 +9,4 @@ bin = "babel"
|
||||||
srcDir = "src"
|
srcDir = "src"
|
||||||
|
|
||||||
[Deps]
|
[Deps]
|
||||||
Requires: "nimrod >= 0.9.5"
|
Requires: "nimrod >= 0.9.4"
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ import httpclient, parseopt, os, strutils, osproc, pegs, tables, parseutils,
|
||||||
|
|
||||||
from sequtils import toSeq
|
from sequtils import toSeq
|
||||||
|
|
||||||
import babelpkg/packageinfo, babelpkg/version, babelpkg/tools, babelpkg/download,
|
import babelpkg/packageinfo, babelpkg/version, babelpkg/tools,
|
||||||
babelpkg/config
|
babelpkg/download, babelpkg/config, babelpkg/compat
|
||||||
|
|
||||||
when not defined(windows):
|
when not defined(windows):
|
||||||
from posix import getpid
|
from posix import getpid
|
||||||
|
|
|
||||||
28
src/babelpkg/compat.nim
Normal file
28
src/babelpkg/compat.nim
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
# Copyright (C) Dominik Picheta. All rights reserved.
|
||||||
|
# BSD License. Look at license.txt for more info.
|
||||||
|
|
||||||
|
## This module contains additional code from the development version of
|
||||||
|
## Nimrod's standard library. These procs are required to be able to compile
|
||||||
|
## against the last stable release 0.9.4. Once 0.9.6 is release these procs
|
||||||
|
## will disappear.
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
when not defined(`json.{}`):
|
||||||
|
proc `{}`*(node: PJsonNode, key: string): PJsonNode =
|
||||||
|
## Transverses the node and gets the given value. If any of the
|
||||||
|
## names does not exist, returns nil
|
||||||
|
result = node
|
||||||
|
if isNil(node): return nil
|
||||||
|
result = result[key]
|
||||||
|
|
||||||
|
when not defined(`json.{}=`):
|
||||||
|
proc `{}=`*(node: PJsonNode, names: varargs[string], value: PJsonNode) =
|
||||||
|
## Transverses the node and tries to set the value at the given location
|
||||||
|
## to `value` If any of the names are missing, they are added
|
||||||
|
var node = node
|
||||||
|
for i in 0..(names.len-2):
|
||||||
|
if isNil(node[names[i]]):
|
||||||
|
node[names[i]] = newJObject()
|
||||||
|
node = node[names[i]]
|
||||||
|
node[names[names.len-1]] = value
|
||||||
Loading…
Add table
Add a link
Reference in a new issue