moory 1.1.4 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0239942918e89ed21a49acd4fd35cee39ad71910dece516c6f53a04b36f962dd'
4
- data.tar.gz: bbedc737fdc70d1fc41b8386a30903e7d324301cd11d07adc2264a4f8212a8ec
3
+ metadata.gz: d7070921a0346a853176eb0ca87de668f876d3145504bb1a2eed18ff3aac2339
4
+ data.tar.gz: 48cad2ef02815d4dde1eca024ac043f365905d5c5a7ca67132e6c559fbe0b7d4
5
5
  SHA512:
6
- metadata.gz: bc8b101ebaead0455063763317833d62148f72a6b5e561f81b336d4be88aab781795338fcf98150a67d38635464a5eb1aaf2941fbc454052c700b1770edaa5a9
7
- data.tar.gz: 5b0cb93badef69d457928f3df86ea6ae9cc7f659c430b13fd0f4e8ed680923dba018a4e83f19043ff5d858fb6cae954c01c5a53c3b44fe15c0845f0956afe5ba
6
+ metadata.gz: 5f5c97e13871e683c10e0efe5407742beb9e85baf8aeb012bac652bd8d09f2ce6076206d5ab47316cd4fb68e0d9a8f6350b49e20f86ffe2867ce1f97aca26ad3
7
+ data.tar.gz: c765734c32f1cd918e29a607e7e3548c905ffd60de36ef754fc38b981205ea2830af866fec2051eb3afee7868091ac9a7358e3a121585c53efe9c0a38bb03f86
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- moory (1.1.4)
4
+ moory (1.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/lib/moory.rb CHANGED
@@ -10,6 +10,7 @@ require "moory/loader"
10
10
  require "moory/recogniser"
11
11
  require "moory/decoder"
12
12
  require "moory/logistic"
13
+ require "moory/filter"
13
14
 
14
15
  module Moory
15
16
  # Your code goes here...
@@ -0,0 +1,31 @@
1
+ module Moory
2
+ class Filter < Moory::Logistic::Unit
3
+ IGNORE = [' ', "\t", "\n"]
4
+ DEFAULT_CONSUMER = $stdout.method(:puts)
5
+
6
+ def initialize(rules:, consumer:DEFAULT_CONSUMER)
7
+ @buffer = ""
8
+ @consumer = consumer
9
+ super(rules: rules)
10
+ end
11
+
12
+ def configure(rules)
13
+ super
14
+ repertoire.learn(name: 'produce', item: method(:produce))
15
+ end
16
+
17
+ def produce(output)
18
+ @consumer.call(
19
+ @buffer
20
+ )
21
+ @buffer = ""
22
+ end
23
+
24
+ def issue(stimulus)
25
+ return if IGNORE.include?(stimulus)
26
+
27
+ @buffer << stimulus
28
+ super
29
+ end
30
+ end
31
+ end
data/lib/moory/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Moory
2
- VERSION = "1.1.4"
2
+ VERSION = "1.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moory
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam W. Grant
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-10 00:00:00.000000000 Z
11
+ date: 2018-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -75,6 +75,7 @@ files:
75
75
  - examples/inductive.rb
76
76
  - lib/moory.rb
77
77
  - lib/moory/decoder.rb
78
+ - lib/moory/filter.rb
78
79
  - lib/moory/loader.rb
79
80
  - lib/moory/logistic.rb
80
81
  - lib/moory/machine.rb