rudelo 0.1.1 → 0.2.1

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/Gemfile CHANGED
@@ -4,6 +4,7 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'rufus-decision', git: 'https://github.com/jmettraux/rufus-decision.git'
7
+
7
8
  group :development do
8
9
  gem "guard-rspec"
9
10
  end
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  Provides Rufus::Decision::Matchers::SetLogic, for use with [rufus-decision][1]
5
5
 
6
6
  ## Requires ruby 1.9.3
7
- Currently not working on 1.9.2 -- will try to get this working at some point. Probably won't get 1.8.7 working.
7
+ Currently not working on 1.9.2 -- I will try to get this working at some point. I Probably won't get 1.8.7 working.
8
8
 
9
9
 
10
10
 
@@ -51,7 +51,16 @@ And then execute:
51
51
  table.transform({'group' => "bob alice jeff mary don bev"})
52
52
  #=> {'group' => "bob alice jeff mary don bev", 'situation' => "PARTY!"}
53
53
 
54
+ ## Documentation
54
55
 
56
+ For a detailed description of the mini-language the set logic matcher uses, see [SET_LOGIC_MATCHER.md][4]
57
+
58
+ ## Short-Circuiting
59
+
60
+ The current released version of rufus-decision does not provide for matchers to shortcircuit. This can cause errors if you have a SetLogic matcher followed by a String matcher. I have a branch of rufus-decision that does short-circuiting that is pending review, if you need to use it add this to your Gemfile:
61
+
62
+ ```gem 'rufus-decision', git: 'https://github.com/lastobelus/rufus-decision.git', branch: 'short_circuit_matchers'
63
+ ```
55
64
 
56
65
  ## Contributing
57
66
 
@@ -64,4 +73,5 @@ And then execute:
64
73
 
65
74
  [1]: https://github.com/jmettraux/rufus-decision
66
75
  [2]: https://github.com/lastobelus/rufus-decision/tree/pluggable_matchers
67
- [3]: https://github.com/lastobelus/rufus-decision
76
+ [3]: https://github.com/lastobelus/rufus-decision
77
+ [4]: https://github.com/lastobelus/rudelo/tree/SET_LOGIC_MATCHER.md
@@ -28,9 +28,13 @@ require 'rudelo/parsers/set_logic_transform'
28
28
  module Rudelo
29
29
  module Matchers
30
30
  class SetLogic < Rufus::Decision::Matcher
31
-
31
+ SYNTAX_EXPR = %r{\$\([^)]\)|\$in}
32
32
  attr_accessor :force
33
33
 
34
+ def should_match?(cell, value)
35
+ ! (cell =~ SYNTAX_EXPR).nil?
36
+ end
37
+
34
38
  def matches?(cell, value)
35
39
  evaluator = ast(cell)
36
40
  return false if evaluator.nil?
@@ -1,3 +1,3 @@
1
1
  module Rudelo
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rudelo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -136,7 +136,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
136
136
  version: '0'
137
137
  segments:
138
138
  - 0
139
- hash: -129801589955190531
139
+ hash: 1721411996862607044
140
140
  required_rubygems_version: !ruby/object:Gem::Requirement
141
141
  none: false
142
142
  requirements:
@@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  version: '0'
146
146
  segments:
147
147
  - 0
148
- hash: -129801589955190531
148
+ hash: 1721411996862607044
149
149
  requirements: []
150
150
  rubyforge_project:
151
151
  rubygems_version: 1.8.25