rudelo 0.1.0 → 0.1.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/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ # - "1.8.7"
4
+ # - "1.9.2"
5
+ - "1.9.3"
6
+ - "2.0.0"
7
+ script: bundle exec rspec spec
data/README.md CHANGED
@@ -1,7 +1,13 @@
1
1
  # Rudelo
2
+ [![Build Status](https://travis-ci.org/lastobelus/rudelo.png)](https://travis-ci.org/lastobelus/rudelo)
2
3
 
3
4
  Provides Rufus::Decision::Matchers::SetLogic, for use with [rufus-decision][1]
4
5
 
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.
8
+
9
+
10
+
5
11
  ## Installation
6
12
 
7
13
  In Gemfile:
@@ -55,6 +61,7 @@ And then execute:
55
61
  4. Push to the branch (`git push origin my-new-feature`)
56
62
  5. Create new Pull Request
57
63
 
64
+
58
65
  [1]: https://github.com/jmettraux/rufus-decision
59
66
  [2]: https://github.com/lastobelus/rufus-decision/tree/pluggable_matchers
60
67
  [3]: https://github.com/lastobelus/rufus-decision
@@ -29,8 +29,11 @@ module Rudelo
29
29
  module Matchers
30
30
  class SetLogic < Rufus::Decision::Matcher
31
31
 
32
+ attr_accessor :force
32
33
 
33
34
  def matches?(cell, value)
35
+ evaluator = ast(cell)
36
+ return false if evaluator.nil?
34
37
  in_set = value_transform.apply(value_parser.parse(value))
35
38
  ast(cell).eval(in_set)
36
39
  end
@@ -60,7 +63,12 @@ module Rudelo
60
63
  end
61
64
 
62
65
  def ast(cell)
63
- asts[cell] ||= logic_transform.apply(logic_parser.parse(cell))
66
+ asts[cell] ||= begin
67
+ logic_transform.apply(logic_parser.parse(cell))
68
+ rescue
69
+ raise if force
70
+ nil
71
+ end
64
72
  end
65
73
 
66
74
  end
@@ -1,3 +1,3 @@
1
1
  module Rudelo
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -5,6 +5,13 @@ require 'rufus-decision'
5
5
  describe "Rudelo::Matchers::SetLogic" do
6
6
  subject{Rudelo::Matchers::SetLogic.new}
7
7
 
8
+ context "non-set cells never match" do
9
+ specify{ expect(subject.matches?('5', '5')).to be_false}
10
+ specify{ expect(subject.matches?(5, 4)).to be_false}
11
+ specify{ expect(subject.matches?('bob', 'mary')).to be_false}
12
+ specify{ expect(subject.matches?('bob', 'bob')).to be_false}
13
+ end
14
+
8
15
  it "matches multiple values against multiple cells correctly" do
9
16
  cell1 = "$in same-as $(a b c)"
10
17
  cell2 = "$in same-as $(k f r)"
metadata CHANGED
@@ -1,96 +1,96 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rudelo
3
3
  version: !ruby/object:Gem::Version
4
+ version: 0.1.1
4
5
  prerelease:
5
- version: 0.1.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Michael Johnston
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-17 00:00:00.000000000 Z
12
+ date: 2013-05-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rufus-decision
16
- type: :runtime
17
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
21
  version: '1.4'
22
- none: false
22
+ type: :runtime
23
+ prerelease: false
23
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ~>
26
28
  - !ruby/object:Gem::Version
27
29
  version: '1.4'
28
- none: false
29
- prerelease: false
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: parslet
32
- type: :runtime
33
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
37
  version: '0'
38
- none: false
38
+ type: :runtime
39
+ prerelease: false
39
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
40
42
  requirements:
41
43
  - - ! '>='
42
44
  - !ruby/object:Gem::Version
43
45
  version: '0'
44
- none: false
45
- prerelease: false
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: bundler
48
- type: :development
49
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
53
  version: '1.3'
54
- none: false
54
+ type: :development
55
+ prerelease: false
55
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
56
58
  requirements:
57
59
  - - ~>
58
60
  - !ruby/object:Gem::Version
59
61
  version: '1.3'
60
- none: false
61
- prerelease: false
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rake
64
- type: :development
65
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
66
  requirements:
67
67
  - - ! '>='
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
- none: false
70
+ type: :development
71
+ prerelease: false
71
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
72
74
  requirements:
73
75
  - - ! '>='
74
76
  - !ruby/object:Gem::Version
75
77
  version: '0'
76
- none: false
77
- prerelease: false
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: rspec
80
- type: :development
81
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
82
  requirements:
83
83
  - - ! '>='
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
- none: false
86
+ type: :development
87
+ prerelease: false
87
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
88
90
  requirements:
89
91
  - - ! '>='
90
92
  - !ruby/object:Gem::Version
91
93
  version: '0'
92
- none: false
93
- prerelease: false
94
94
  description: Set Logic Matcher for rufus-decision
95
95
  email:
96
96
  - lastobelus@mac.com
@@ -100,6 +100,7 @@ extra_rdoc_files: []
100
100
  files:
101
101
  - .gitignore
102
102
  - .rspec
103
+ - .travis.yml
103
104
  - Gemfile
104
105
  - Guardfile
105
106
  - LICENSE.txt
@@ -128,23 +129,23 @@ rdoc_options: []
128
129
  require_paths:
129
130
  - lib
130
131
  required_ruby_version: !ruby/object:Gem::Requirement
132
+ none: false
131
133
  requirements:
132
134
  - - ! '>='
133
135
  - !ruby/object:Gem::Version
136
+ version: '0'
134
137
  segments:
135
138
  - 0
136
- hash: -2960233919765318395
137
- version: '0'
138
- none: false
139
+ hash: -129801589955190531
139
140
  required_rubygems_version: !ruby/object:Gem::Requirement
141
+ none: false
140
142
  requirements:
141
143
  - - ! '>='
142
144
  - !ruby/object:Gem::Version
145
+ version: '0'
143
146
  segments:
144
147
  - 0
145
- hash: -2960233919765318395
146
- version: '0'
147
- none: false
148
+ hash: -129801589955190531
148
149
  requirements: []
149
150
  rubyforge_project:
150
151
  rubygems_version: 1.8.25