calyx 0.6.0 → 0.6.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f131c3c4d9ce8acaa598a0f6e32b92f13da5c566
4
- data.tar.gz: c4e81bf0f753c605946c77c4943c28f1358632b2
3
+ metadata.gz: e95edf8bf75786d7a458d5618358a672b1b45b98
4
+ data.tar.gz: 432df67afb18be349d2fe7d1ee99d9f296f98c22
5
5
  SHA512:
6
- metadata.gz: 12a3d0964f80866aae48ae67036b6e97afb1ef3d89ca005bfbcbd6a8df7f55d2400cb8774ded7f2fbefd6b64b0e8da3b9201ade2c3599670918a2fba0f9c6f29
7
- data.tar.gz: 6bd0062c621e001f28322484dd4dd7f9762a5e12de07fbbe26500a1b9fd03655099b22ec036046c96163b479f381c37be5fb711e5eacb9efd511a983538e982e
6
+ metadata.gz: 44e91eaf7bc772408fe8bf840d0e1f15554aba7db941b72113a52e856012512d3e8482e092de9d221a3d092b7f22835a0b488bc940ec46375cad3aa0696eccdd
7
+ data.tar.gz: 7afd950288f64d1ab80c79caeb1177f6c9349b1b4b3c9f383a084d5d69f07b53715b338897641a500c6a5133c1b32ee91ee6ac5c2a840d5849f9e357f3244483
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Calyx
2
2
 
3
- [![Gem Version](http://img.shields.io/gem/v/yarrow.svg)](https://rubygems.org/gems/calyx)
3
+ [![Gem Version](http://img.shields.io/gem/v/calyx.svg)](https://rubygems.org/gems/calyx)
4
4
  [![Build Status](https://travis-ci.org/maetl/calyx.svg?branch=master)](https://travis-ci.org/maetl/calyx)
5
5
 
6
6
  Calyx provides a simple API for generating text with declarative recursive grammars.
@@ -13,7 +13,7 @@ Calyx provides a simple API for generating text with declarative recursive gramm
13
13
  gem install calyx
14
14
  ```
15
15
 
16
- ## Gemfile
16
+ ### Gemfile
17
17
 
18
18
  ```
19
19
  gem 'calyx'
@@ -46,7 +46,11 @@ class HelloWorld < Calyx::Grammar
46
46
  start '{greeting} world.'
47
47
  rule :greeting, 'Hello', 'Hi', 'Hey', 'Yo'
48
48
  end
49
+ ```
50
+
51
+ Each time `#generate` runs, it evaluates the tree and randomly selects variations of rules to construct a resulting string.
49
52
 
53
+ ```ruby
50
54
  hello = HelloWorld.new
51
55
 
52
56
  hello.generate
@@ -210,7 +214,7 @@ Rough plan for stabilising the API and features for a `1.0` release.
210
214
 
211
215
  | Version | Features planned |
212
216
  |---------|------------------|
213
- | `0.6` | block constructor |
217
+ | `0.6` | ~~block constructor~~ |
214
218
  | `0.7` | support for template context map passed to generate |
215
219
  | `0.8` | return grammar tree from evaluate/generate, with to_s being separate |
216
220
  | `0.9` | support mixin/composition of rule sets rather than inheritance |
data/calyx.gemspec CHANGED
@@ -20,5 +20,5 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency 'bundler', '~> 1.10'
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
- spec.add_development_dependency 'rspec'
23
+ spec.add_development_dependency 'rspec', '~> 3.4'
24
24
  end
data/lib/calyx.rb CHANGED
@@ -13,11 +13,7 @@ module Calyx
13
13
  @rules[name.to_sym] = construct_rule(productions)
14
14
  end
15
15
 
16
- def []=(symbol, production)
17
- @rules[symbol] = production
18
- end
19
-
20
- def [](symbol)
16
+ def expand(symbol)
21
17
  @rules[symbol]
22
18
  end
23
19
 
@@ -25,6 +21,10 @@ module Calyx
25
21
  @rules.merge!(rules.to_h)
26
22
  end
27
23
 
24
+ def evaluate
25
+ @rules[:start].evaluate
26
+ end
27
+
28
28
  def to_h
29
29
  @rules
30
30
  end
@@ -64,13 +64,13 @@ module Calyx
64
64
 
65
65
  module Production
66
66
  class NonTerminal
67
- def initialize(expansion, registry)
68
- @expansion = expansion.to_sym
67
+ def initialize(symbol, registry)
68
+ @symbol = symbol.to_sym
69
69
  @registry = registry
70
70
  end
71
71
 
72
72
  def evaluate
73
- @registry[@expansion].evaluate
73
+ @registry.expand(@symbol).evaluate
74
74
  end
75
75
  end
76
76
 
@@ -204,7 +204,7 @@ module Calyx
204
204
  end
205
205
 
206
206
  def generate
207
- @registry[:start].evaluate
207
+ @registry.evaluate
208
208
  end
209
209
  end
210
210
  end
data/lib/calyx/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Calyx
2
- VERSION = '0.6.0'.freeze
2
+ VERSION = '0.6.1'.freeze
3
3
  end
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.6.0
4
+ version: 0.6.1
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-02-09 00:00:00.000000000 Z
11
+ date: 2016-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '3.4'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '3.4'
55
55
  description: Calyx provides a simple API for generating text with declarative recursive
56
56
  grammars.
57
57
  email: