calyx 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
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: