calyx 0.17.0 → 0.17.1

Sign up to get free protection for your applications and to get access to all the features.
data/docs/index.html CHANGED
@@ -1,10 +1,32 @@
1
1
  ---
2
- layout: default
2
+ layout: home
3
3
  ---
4
4
 
5
+ {% include navbar.html %}
6
+
7
+ <div class="spread spread-hero">
8
+ <figure class="identity">
9
+ <img src="/assets/logos/calyx-flower-2.svg" width="80%" height="80%">
10
+ </figure>
11
+ <div class="lede">
12
+ <h2>Create writing machines with generative grammars</h2>
13
+
14
+ <ul class="cta-list">
15
+ <li><a class="cta-button" href="#">Download</a></li>
16
+ <li><a class="cta-button" href="#">Learn more</a></li>
17
+ </ul>
18
+ </div>
19
+ </div>
20
+
21
+ <div class="spread spread-intro">
22
+ <p>Calyx is a simple and powerful generative grammar tool for creating writing machines using the Ruby programming language.</p>
23
+ </div>
24
+
5
25
  <div class="content">
6
26
  <h1>Calyx</h1>
7
- <p>Calyx provides a simple Ruby API for generating text with template expansion grammars.</p>
27
+ <p>Calyx provides a simple and powerful generative grammar format for creating writing machines using the Ruby programming language.</p>
28
+ <p>Although the primary use case is procedurally generating text, Calyx grammars can be used to make anything where the output format is a string.</p>
29
+ <p>Calyx provides a simple Ruby API for creating writing machines of all shapes and sizes using generative grammars.</p>
8
30
  <ul>
9
31
  <li><a href="https://github.com/maetl/calyx">Source code on GitHub</a></li>
10
32
  <li><a href="https://rubygems.org/gems/calyx">Package on Rubygems</a></li>
@@ -1292,6 +1292,15 @@
1292
1292
  "readable-stream": "2.3.3"
1293
1293
  }
1294
1294
  },
1295
+ "string_decoder": {
1296
+ "version": "1.0.3",
1297
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
1298
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
1299
+ "dev": true,
1300
+ "requires": {
1301
+ "safe-buffer": "5.1.1"
1302
+ }
1303
+ },
1295
1304
  "string-width": {
1296
1305
  "version": "1.0.2",
1297
1306
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -1303,15 +1312,6 @@
1303
1312
  "strip-ansi": "3.0.1"
1304
1313
  }
1305
1314
  },
1306
- "string_decoder": {
1307
- "version": "1.0.3",
1308
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
1309
- "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
1310
- "dev": true,
1311
- "requires": {
1312
- "safe-buffer": "5.1.1"
1313
- }
1314
- },
1315
1315
  "stringstream": {
1316
1316
  "version": "0.0.5",
1317
1317
  "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
data/docs/package.json CHANGED
@@ -4,6 +4,7 @@
4
4
  "main": "index.html",
5
5
  "scripts": {
6
6
  "build": "node-sass --include-path node_modules/bulma calyx-docs.scss assets/calyx-docs.css",
7
+ "watch": "node-sass --watch --include-path node_modules/bulma docs.scss assets/calyx-docs.css",
7
8
  "help": "node-sass --help"
8
9
  },
9
10
  "author": "Mark Rickerby <me@maetl.net>",
data/lib/calyx/grammar.rb CHANGED
@@ -47,7 +47,8 @@ module Calyx
47
47
  # DSL helper method for registering the given block as a string filter.
48
48
  #
49
49
  # @param [Symbol] name
50
- # @block block with a single string argument returning a modified string.
50
+ # @yieldparam [String] the input string to be processed by the filter
51
+ # @yieldreturn [String] the processed output string
51
52
  def filter(name, &block)
52
53
  registry.filter(name, &block)
53
54
  end
@@ -99,24 +100,24 @@ module Calyx
99
100
  # evaluated.
100
101
  #
101
102
  # @param [Numeric, Random, Hash] options
102
- def initialize(opts={}, &block)
103
- unless opts.is_a?(Hash)
103
+ def initialize(options={}, &block)
104
+ unless options.is_a?(Hash)
104
105
  config_opts = {}
105
- if opts.is_a?(Numeric)
106
+ if options.is_a?(Numeric)
106
107
  warn [
107
108
  "NOTE: Passing a numeric seed arg directly is deprecated. ",
108
109
  "Use the options hash instead: `Calyx::Grammar.new(seed: 1234)`"
109
110
  ].join
110
- config_opts[:seed] = opts
111
- elsif opts.is_a?(Random)
111
+ config_opts[:seed] = options
112
+ elsif options.is_a?(Random)
112
113
  warn [
113
114
  "NOTE: Passing a Random object directly is deprecated. ",
114
115
  "Use the options hash instead: `Calyx::Grammar.new(rng: Random.new)`"
115
116
  ].join
116
- config_opts[:rng] = opts
117
+ config_opts[:rng] = options
117
118
  end
118
119
  else
119
- config_opts = opts
120
+ config_opts = options
120
121
  end
121
122
 
122
123
  @options = Options.new(config_opts)
@@ -133,7 +134,11 @@ module Calyx
133
134
 
134
135
  # Produces a string as an output of the grammar.
135
136
  #
136
- # @overload
137
+ # @overload generate(start_symbol)
138
+ # @param [Symbol] start_symbol
139
+ # @overload generate(rules_map)
140
+ # @param [Hash] rules_map
141
+ # @overload generate(start_symbol, rules_map)
137
142
  # @param [Symbol] start_symbol
138
143
  # @param [Hash] rules_map
139
144
  # @return [String]
@@ -159,7 +164,11 @@ module Calyx
159
164
  # Produces a generated result from evaluating the grammar.
160
165
  #
161
166
  # @see Calyx::Result
162
- # @overload
167
+ # @overload generate_result(start_symbol)
168
+ # @param [Symbol] start_symbol
169
+ # @overload generate_result(rules_map)
170
+ # @param [Hash] rules_map
171
+ # @overload generate_result(start_symbol, rules_map)
163
172
  # @param [Symbol] start_symbol
164
173
  # @param [Hash] rules_map
165
174
  # @return [Calyx::Result]
data/lib/calyx/options.rb CHANGED
@@ -10,7 +10,7 @@ module Calyx
10
10
  # Constructs a new options instance, merging the passed in options with the
11
11
  # defaults.
12
12
  #
13
- # @params [Hash, Calyx::Options] options
13
+ # @param [Hash, Calyx::Options] options
14
14
  def initialize(options={})
15
15
  @options = DEFAULTS.merge(options)
16
16
  end
@@ -54,7 +54,7 @@ module Calyx
54
54
 
55
55
  # Merges two instances together and returns a new instance.
56
56
  #
57
- # @params [Calyx::Options]
57
+ # @param [Calyx::Options] options
58
58
  # @return [Calyx::Options]
59
59
  def merge(options)
60
60
  Options.new(@options.merge(options.to_h))
@@ -20,7 +20,7 @@ module Calyx
20
20
 
21
21
  # Attaches a modifier module to this instance.
22
22
  #
23
- # @param [Module] module_name
23
+ # @param [Module] name
24
24
  def modifier(name)
25
25
  modifiers.extend(name)
26
26
  end
@@ -36,7 +36,8 @@ module Calyx
36
36
  # Registers the given block as a string filter.
37
37
  #
38
38
  # @param [Symbol] name
39
- # @block block with a single string argument returning a modified string.
39
+ # @yield [String]
40
+ # @yieldreturn [String]
40
41
  def filter(name, callable=nil, &block)
41
42
  if block_given?
42
43
  transforms[name.to_sym] = block
@@ -154,7 +155,6 @@ module Calyx
154
155
  # Produces a syntax tree of nested list nodes.
155
156
  #
156
157
  # @param [Symbol] start_symbol
157
- # @param [Random] random
158
158
  # @param [Hash] rules_map
159
159
  # @return [Array]
160
160
  def evaluate(start_symbol=:start, rules_map={})
data/lib/calyx/result.rb CHANGED
@@ -5,8 +5,9 @@ module Calyx
5
5
  @expression = expression.freeze
6
6
  end
7
7
 
8
- # The syntax tree of nested nodes representing the production rules which
9
- # generated this result.
8
+ # Produces a syntax tree of nested nodes as the output of the grammar. Each
9
+ # syntax node represents the production rules that were evaluated at each
10
+ # step of the generator.
10
11
  #
11
12
  # @return [Array]
12
13
  def tree
@@ -15,7 +16,7 @@ module Calyx
15
16
 
16
17
  alias_method :to_exp, :tree
17
18
 
18
- # The generated text string produced by the grammar.
19
+ # Produces a text string as the output of the grammar.
19
20
  #
20
21
  # @return [String]
21
22
  def text
@@ -26,7 +27,7 @@ module Calyx
26
27
 
27
28
  alias_method :to_s, :text
28
29
 
29
- # A symbol produced by converting the generated text string where possible.
30
+ # Produces a symbol as the output of the grammar.
30
31
  #
31
32
  # @return [Symbol]
32
33
  def symbol
data/lib/calyx/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Calyx
2
- VERSION = '0.17.0'.freeze
2
+ VERSION = '0.17.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.17.0
4
+ version: 0.17.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: 2017-09-21 00:00:00.000000000 Z
11
+ date: 2017-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -62,6 +62,7 @@ extra_rdoc_files: []
62
62
  files:
63
63
  - ".gitignore"
64
64
  - ".travis.yml"
65
+ - CODE_OF_CONDUCT.md
65
66
  - CONTRIBUTING.md
66
67
  - Gemfile
67
68
  - LICENSE
@@ -76,6 +77,14 @@ files:
76
77
  - docs/about.md
77
78
  - docs/assets/calyx-docs.css
78
79
  - docs/calyx-docs.scss
80
+ - docs/guide/context.md
81
+ - docs/guide/examples.md
82
+ - docs/guide/expressions.md
83
+ - docs/guide/formats.md
84
+ - docs/guide/getting-started.md
85
+ - docs/guide/installation.md
86
+ - docs/guide/random.md
87
+ - docs/guide/results.md
79
88
  - docs/index.html
80
89
  - docs/package-lock.json
81
90
  - docs/package.json
@@ -126,4 +135,3 @@ signing_key:
126
135
  specification_version: 4
127
136
  summary: Generate text with declarative recursive grammars
128
137
  test_files: []
129
- has_rdoc: