kaiseki 1.0.3 → 1.0.4

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.
data/lib/kaiseki.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Kaiseki
2
- VERSION = '1.0.3'
2
+ VERSION = '1.0.4'
3
3
  file_path = File.dirname __FILE__
4
4
 
5
5
  #load basic kaiseki classes
data/lib/node.rb CHANGED
@@ -54,6 +54,10 @@ module Kaiseki
54
54
  Class.new(self).bind args, options
55
55
  end
56
56
 
57
+ def default
58
+ subclass [:result], :arity => {:result => 0}
59
+ end
60
+
57
61
  def bind args, options = {}
58
62
  args.must_be Array
59
63
  raise "can't bind parent NodeClass" if self == Node
data/lib/parseable.rb CHANGED
@@ -56,7 +56,7 @@ module Kaiseki
56
56
  CastResult.new self, to_class
57
57
  end
58
58
 
59
- def filter node = Node.subclass([:result], :arity => {:result => 0}), &block
59
+ def filter node = Node.default, &block
60
60
  FilterResult.new self, node, &block
61
61
  end
62
62
 
data/lib/result_filter.rb CHANGED
@@ -2,7 +2,7 @@ module Kaiseki
2
2
  class FilterResult < PackageParser
3
3
  attr_reader :node, :block
4
4
 
5
- def initialize expected, node = Node.subclass([:result], :arity => {:result => 0}), &block
5
+ def initialize expected, node = Node.default, &block
6
6
  super expected
7
7
  @node = node
8
8
  @block = block
data/lib/rule.rb CHANGED
@@ -60,7 +60,9 @@ module Kaiseki
60
60
 
61
61
  def filter node = @name, &block
62
62
  if @parseable
63
- @grammar.nodes[@name] ||= Node.subclass([:result], :arity => {:result => 0})
63
+ unless @grammar.nodes.key? @name
64
+ @grammar.nodes[@name] = Node.default
65
+ end
64
66
  @parseable = @parseable.filter node, &block
65
67
  else
66
68
  raise "parseable for rule #{@name.inspect} undefined"
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 0
8
- - 3
9
- version: 1.0.3
8
+ - 4
9
+ version: 1.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - William Hamilton-Levi