wordz 0.1.1 → 0.2.0
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 +29 -0
- data/Rakefile +8 -0
- data/lib/wordz.rb +3 -0
- data/lib/wordz/client.rb +10 -0
- data/lib/wordz/generator.rb +3 -2
- data/lib/wordz/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec2263a33b331dbee70fbfa5735b144f373e9e5f4ff51fda803779f5131d5dbe
|
4
|
+
data.tar.gz: dfd3a764d11b2df3e6d8fc4d2c91fd9b3290d55033c7b46dd70a0655bd8923cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6597a9cab7daf0c95f80fd9dd646a7c3ccfea124c8d9b62ceef3d20fb5a7ac3694b83e0a29dd32aca2168b891bbb806ce7ded9ce380f6821b50a1bfd4a977313
|
7
|
+
data.tar.gz: df517cb56e8ebea912ce8a1f21be556045d82c057a8ae2d1ede6c2716e0c348f75f30a638ba4d066a62b978bee116585be314b3e3013423d8c34db7707524e13
|
data/README.md
CHANGED
@@ -5,3 +5,32 @@
|
|
5
5
|
# Wordz
|
6
6
|
|
7
7
|
A minimalist generative grammar library. For use in bots and other mischief.
|
8
|
+
|
9
|
+
# Usage
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
grammar = {
|
13
|
+
"<root>" => [
|
14
|
+
["#dog#name#", "says", "<bark>", "."],
|
15
|
+
],
|
16
|
+
"<bark>" => [
|
17
|
+
["ruff"],
|
18
|
+
["woof"],
|
19
|
+
]
|
20
|
+
}
|
21
|
+
|
22
|
+
class Dog
|
23
|
+
def name
|
24
|
+
"Daisy"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
Wordz.generate(
|
29
|
+
grammar: grammar,
|
30
|
+
subjects: { dog: Dog.new },
|
31
|
+
)
|
32
|
+
|
33
|
+
# Will return one of the following, at random.
|
34
|
+
# => "Daisy says ruff."
|
35
|
+
# => "Daisy says arf."
|
36
|
+
```
|
data/Rakefile
CHANGED
data/lib/wordz.rb
CHANGED
@@ -4,6 +4,9 @@ WORDZ_APP_PATH = File.expand_path("../", __FILE__) + "/wordz"
|
|
4
4
|
|
5
5
|
module Wordz
|
6
6
|
autoload(:PostProcessor, "#{WORDZ_APP_PATH}/post_processor.rb")
|
7
|
+
autoload(:Client, "#{WORDZ_APP_PATH}/client.rb")
|
8
|
+
|
9
|
+
extend Wordz::Client
|
7
10
|
end
|
8
11
|
|
9
12
|
Dir["#{WORDZ_APP_PATH}/**/*.rb"].each { |file| require file }
|
data/lib/wordz/client.rb
ADDED
data/lib/wordz/generator.rb
CHANGED
@@ -8,13 +8,14 @@ module Wordz
|
|
8
8
|
|
9
9
|
ROOT_NODE = "<root>".freeze
|
10
10
|
|
11
|
-
def initialize(grammar
|
11
|
+
def initialize(grammar: {}, subjects: {})
|
12
12
|
@output = []
|
13
13
|
@subjects = subjects
|
14
14
|
@grammar = grammar
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
17
|
+
def call(root_node = nil)
|
18
|
+
root_node ||= ROOT_NODE
|
18
19
|
post_process(generate_list(root_node))
|
19
20
|
end
|
20
21
|
|
data/lib/wordz/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wordz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Hoffman
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -84,6 +84,7 @@ files:
|
|
84
84
|
- bin/console
|
85
85
|
- bin/setup
|
86
86
|
- lib/wordz.rb
|
87
|
+
- lib/wordz/client.rb
|
87
88
|
- lib/wordz/generator.rb
|
88
89
|
- lib/wordz/instruction.rb
|
89
90
|
- lib/wordz/post_processor.rb
|