calyx 0.10.3 → 0.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/calyx.rb +1 -0
- data/lib/calyx/grammar.rb +4 -0
- data/lib/calyx/modifier.rb +17 -0
- data/lib/calyx/registry.rb +13 -10
- data/lib/calyx/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 78e2075bb19864a35f97504f1d2afc2e09b186ab
|
|
4
|
+
data.tar.gz: 1e474a6d3bac3d62d5a8b25c5ad75ec724a95a44
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8d4facec94b4ffd5c29bfb53d4f8cd6b0de4939d9937ed0853a15420246deeee0fb543ae210e6462b4b707f1c82bd9c462b54b427a8637bf35b7536bb3a4b842
|
|
7
|
+
data.tar.gz: fd89979f568bd4ec3bd3655dfcacddf405841766ed7bef6a32a8d2d7a0ce501aa3bbc4fa85e67a0455106701f50787c071afbd6f4a6eb02d091f46c9a67a2be7
|
data/README.md
CHANGED
|
@@ -299,7 +299,7 @@ Rough plan for stabilising the API and features for a `1.0` release.
|
|
|
299
299
|
| `0.7` | ~~support for template context map passed to generate~~ |
|
|
300
300
|
| `0.8` | ~~method missing metaclass API~~ |
|
|
301
301
|
| `0.9` | ~~return grammar tree from `#evaluate`, with flattened string from `#generate` being separate~~ |
|
|
302
|
-
| `0.10` | inject custom string functions for parameterised rules, transforms and mappings |
|
|
302
|
+
| `0.10` | ~~inject custom string functions for parameterised rules, transforms and mappings~~ |
|
|
303
303
|
| `0.11` | support YAML format (and JSON?) |
|
|
304
304
|
| `1.0` | API documentation |
|
|
305
305
|
|
data/lib/calyx.rb
CHANGED
data/lib/calyx/grammar.rb
CHANGED
data/lib/calyx/registry.rb
CHANGED
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
module Calyx
|
|
2
2
|
class Registry
|
|
3
|
-
attr_reader :rules, :
|
|
3
|
+
attr_reader :rules, :transforms
|
|
4
4
|
|
|
5
5
|
def initialize
|
|
6
6
|
@rules = {}
|
|
7
|
-
@
|
|
7
|
+
@transforms = {}
|
|
8
|
+
@modifier = Modifier.new
|
|
8
9
|
end
|
|
9
10
|
|
|
10
11
|
def method_missing(name, *arguments)
|
|
11
12
|
rule(name, *arguments)
|
|
12
13
|
end
|
|
13
14
|
|
|
15
|
+
def modifier(name)
|
|
16
|
+
@modifier.extend_with(name)
|
|
17
|
+
end
|
|
18
|
+
|
|
14
19
|
def mapping(name, pairs)
|
|
15
|
-
|
|
20
|
+
transforms[name.to_sym] = construct_mapping(pairs)
|
|
16
21
|
end
|
|
17
22
|
|
|
18
23
|
def filter(name, callable=nil, &block)
|
|
19
24
|
if block_given?
|
|
20
|
-
|
|
25
|
+
transforms[name.to_sym] = block
|
|
21
26
|
else
|
|
22
|
-
|
|
27
|
+
transforms[name.to_sym] = callable
|
|
23
28
|
end
|
|
24
29
|
end
|
|
25
30
|
|
|
@@ -32,12 +37,10 @@ module Calyx
|
|
|
32
37
|
end
|
|
33
38
|
|
|
34
39
|
def transform(name, value)
|
|
35
|
-
if
|
|
36
|
-
|
|
37
|
-
elsif mappings.key?(name)
|
|
38
|
-
mappings[name].call(value)
|
|
40
|
+
if transforms.key?(name)
|
|
41
|
+
transforms[name].call(value)
|
|
39
42
|
else
|
|
40
|
-
value
|
|
43
|
+
@modifier.transform(name, value)
|
|
41
44
|
end
|
|
42
45
|
end
|
|
43
46
|
|
data/lib/calyx/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: calyx
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.10.
|
|
4
|
+
version: 0.10.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mark Rickerby
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-06-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -71,6 +71,7 @@ files:
|
|
|
71
71
|
- lib/calyx/errors.rb
|
|
72
72
|
- lib/calyx/file_converter.rb
|
|
73
73
|
- lib/calyx/grammar.rb
|
|
74
|
+
- lib/calyx/modifier.rb
|
|
74
75
|
- lib/calyx/production/choices.rb
|
|
75
76
|
- lib/calyx/production/concat.rb
|
|
76
77
|
- lib/calyx/production/expression.rb
|