fact_checker 0.0.1 → 0.0.2
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/.rvmrc +1 -1
- data/README.md +31 -0
- data/fact_checker.gemspec +2 -1
- data/lib/fact_checker/base.rb +1 -0
- data/lib/fact_checker/version.rb +1 -1
- data/spec/fact_checker/base_spec.rb +228 -136
- data/spec/spec_helper.rb +5 -2
- metadata +31 -14
- data/README +0 -23
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use 1.9.
|
1
|
+
rvm use 1.9.3 2>/dev/null
|
data/README.md
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# Fact Checker
|
2
|
+
|
3
|
+
Simple ruby gem to check hierarchically dependent "facts" about objects.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
gem install fact_checker
|
8
|
+
|
9
|
+
## Synopsys
|
10
|
+
|
11
|
+
``` ruby
|
12
|
+
class Person
|
13
|
+
include FactChecker
|
14
|
+
|
15
|
+
def_fact :good_job, if: ->(p) { p.job.good? }
|
16
|
+
def_fact :good_family, if: ->(p) { p.family.good? }
|
17
|
+
def_fact :is_healthy, if: ->(p) { p.health.good? }
|
18
|
+
def_fact :is_happy => [:is_healthy, :good_family, :good_job], if: ->(p) { ! p.too_clever? }
|
19
|
+
|
20
|
+
...
|
21
|
+
end
|
22
|
+
|
23
|
+
p = Person.new(:job => good_job, :family => good_family, :health => :good, :intellect => :too_clever)
|
24
|
+
p.good_job? # => true
|
25
|
+
p.good_family? # => true
|
26
|
+
p.is_healthy? # => true
|
27
|
+
p.fact_possible?(:is_happy) # => true (dependency satisfied)
|
28
|
+
p.is_happy? # => false
|
29
|
+
|
30
|
+
p.possible_facts - p.accomplished_facts # => [:happy]
|
31
|
+
```
|
data/fact_checker.gemspec
CHANGED
@@ -23,7 +23,8 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.required_ruby_version = ">= 1.8.7"
|
24
24
|
s.required_rubygems_version = ">= 1.3.5"
|
25
25
|
|
26
|
-
s.add_development_dependency 'rspec', '~> 2.
|
26
|
+
s.add_development_dependency 'rspec', '~> 2.8.0'
|
27
27
|
s.add_development_dependency 'rake'
|
28
28
|
s.add_development_dependency 'bundler'
|
29
|
+
s.add_development_dependency 'simplecov', '~> 0.6.1'
|
29
30
|
end
|
data/lib/fact_checker/base.rb
CHANGED
data/lib/fact_checker/version.rb
CHANGED
@@ -3,178 +3,270 @@
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
5
|
describe FactChecker::Base do
|
6
|
-
describe "constructor" do
|
7
|
-
it "should accept facts, dependencies and requirements as arguments" do
|
8
|
-
fc = FactChecker::Base.new([:a, :b], {:a => :b}, {:b => :nil?})
|
9
|
-
fc.facts.should == [:a, :b]
|
10
|
-
fc.dependencies.should == {:a => :b}
|
11
|
-
fc.requirements.should == {:b => :nil?}
|
12
|
-
end
|
13
|
-
it "should use empty hash as a default for requirements" do
|
14
|
-
fc = FactChecker::Base.new([:a, :b], {:a => :b})
|
15
|
-
fc.requirements.should == {}
|
16
|
-
end
|
17
|
-
it "should use empty hash as a default for dependencies" do
|
18
|
-
fc = FactChecker::Base.new([:a, :b])
|
19
|
-
fc.dependencies.should == {}
|
20
|
-
end
|
21
|
-
it "should use empty array as a default for facts" do
|
22
|
-
fc = FactChecker::Base.new()
|
23
|
-
fc.facts.should == []
|
24
|
-
end
|
25
|
-
end
|
26
6
|
|
27
|
-
describe "#
|
28
|
-
|
29
|
-
|
30
|
-
|
7
|
+
describe "#initialize" do
|
8
|
+
context "called with all arguments (fact_list, dependencies_hash, requirements_hash), its " do
|
9
|
+
subject { FactChecker::Base.new([:f1, :f2], {:f1 => :f2}, {:f1 => :nil?}) }
|
10
|
+
specify("facts == fact_list") { subject.facts.should == [:f1, :f2] }
|
11
|
+
specify("dependencies == dependencies_hash") { subject.dependencies.should == {:f1 => :f2} }
|
12
|
+
specify("requirements == requirements_hash") { subject.requirements.should == {:f1 => :nil?} }
|
31
13
|
end
|
32
|
-
end
|
33
14
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
15
|
+
context "called" do
|
16
|
+
specify("without fact_list, its facts == [] by default") { subject.facts.should == [] }
|
17
|
+
specify("without dependencies_hash, its dependencies == {} by default") { subject.dependencies.should == {} }
|
18
|
+
specify("without requirements_hash, its requirements == {} by default") { subject.requirements.should == {} }
|
38
19
|
end
|
39
20
|
end
|
40
21
|
|
41
|
-
describe "#
|
42
|
-
|
43
|
-
|
44
|
-
|
22
|
+
describe "#requirement_satisfied_for?(context, fact)" do
|
23
|
+
context "when no requirement defined for the fact" do
|
24
|
+
subject { FactChecker::Base.new([:f1]) }
|
25
|
+
it "returns true for any object" do
|
26
|
+
subject.requirement_satisfied_for?(1, :f1).should be_true
|
27
|
+
subject.requirement_satisfied_for?(nil, :f1).should be_true
|
28
|
+
end
|
45
29
|
end
|
46
|
-
end
|
47
30
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
31
|
+
context "when requirement for the fact was defined as symbol" do
|
32
|
+
subject { FactChecker::Base.new([:f1], nil, {:f1 => :nil?}) }
|
33
|
+
it "returns false if fact is unknown" do
|
34
|
+
subject.requirement_satisfied_for?(1, :f2).should be_false
|
35
|
+
end
|
36
|
+
it "returns false if context.symbol() == false" do
|
37
|
+
subject.requirement_satisfied_for?(1, :f1).should be_false
|
38
|
+
end
|
39
|
+
it "returns true if context.symbol() == true" do
|
40
|
+
subject.requirement_satisfied_for?(nil, :f1).should be_true
|
41
|
+
end
|
52
42
|
end
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
fc = FactChecker::Base.new([:f1], nil, {:f1 => :nil?})
|
63
|
-
fc.requirement_satisfied_for?(nil, :f1).should be_true
|
64
|
-
end
|
65
|
-
it "should return false if requirement is Proc and proc(context) == false" do
|
66
|
-
fc = FactChecker::Base.new([:f1], nil, {:f1 => lambda{|t| t.nil?}})
|
67
|
-
fc.requirement_satisfied_for?(1, :f1).should be_false
|
68
|
-
end
|
69
|
-
it "should return true if requirement is Proc and proc(context) == true" do
|
70
|
-
fc = FactChecker::Base.new([:f1], nil, {:f1 => lambda{|t| t.nil?}})
|
71
|
-
fc.requirement_satisfied_for?(nil, :f1).should be_true
|
72
|
-
end
|
73
|
-
it "should return false if requirement is Proc with arity < 1 and proc() == false" do
|
74
|
-
fc = FactChecker::Base.new([:f1], nil, {:f1 => lambda{false}})
|
75
|
-
fc.requirement_satisfied_for?(nil, :f1).should be_false
|
43
|
+
|
44
|
+
context "when requirement was defined as Proc with arity == 1" do
|
45
|
+
subject { FactChecker::Base.new([:f1], nil, {:f1 => lambda{|t| t.nil?}}) }
|
46
|
+
it "returns false if proc(context) == false" do
|
47
|
+
subject.requirement_satisfied_for?(1, :f1).should be_false
|
48
|
+
end
|
49
|
+
it "returns true if proc(context) == true" do
|
50
|
+
subject.requirement_satisfied_for?(nil, :f1).should be_true
|
51
|
+
end
|
76
52
|
end
|
77
|
-
|
78
|
-
|
79
|
-
|
53
|
+
|
54
|
+
context "when requirement was defined as Proc with arity == 0" do
|
55
|
+
it "returns false if proc() == false" do
|
56
|
+
subject = FactChecker::Base.new([:f1], nil, {:f1 => lambda{false}})
|
57
|
+
subject.requirement_satisfied_for?(nil, :f1).should be_false
|
58
|
+
end
|
59
|
+
it "returns true if proc() == true" do
|
60
|
+
subject = FactChecker::Base.new([:f1], nil, {:f1 => lambda{true}})
|
61
|
+
subject.requirement_satisfied_for?(nil, :f1).should be_true
|
62
|
+
end
|
80
63
|
end
|
81
|
-
|
82
|
-
|
83
|
-
|
64
|
+
|
65
|
+
context "when requirement was defined as something else" do
|
66
|
+
subject { FactChecker::Base.new([:f1], nil, {:f1 => "wrong"}) }
|
67
|
+
it "raises RuntimeError" do
|
68
|
+
lambda{ subject.requirement_satisfied_for?(nil, :f1) }.should raise_error(RuntimeError)
|
69
|
+
end
|
84
70
|
end
|
85
71
|
end
|
86
72
|
|
87
73
|
describe "#fact_accomplished?" do
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
end
|
92
|
-
it "should return true if requirement satisfied and fact has no dependencies" do
|
93
|
-
fc = FactChecker::Base.new([:f1], nil, {:f1 => lambda{|o| o.size > 2}})
|
94
|
-
fc.fact_accomplished?("name", :f1).should be_true
|
95
|
-
end
|
96
|
-
it "should return false if requirement not satisfied (fact has no dependencies)" do
|
97
|
-
fc = FactChecker::Base.new([:f1], nil, {:f1 => :nil?})
|
98
|
-
fc.fact_accomplished?("something", :f1).should be_false
|
99
|
-
end
|
100
|
-
it "should return false if fact has unsatisfied dependencies" do
|
101
|
-
fc = FactChecker::Base.new([:f1, :f2], {:f1 => :f2}, {:f2 => :nil?})
|
102
|
-
fc.fact_accomplished?("something", :f1).should be_false
|
103
|
-
end
|
104
|
-
it "should return false if fact has both satisfied and unsatisfied dependencies" do
|
105
|
-
fc = FactChecker::Base.new([:f1, :f2, :f3, :f4], {:f1 => [:f2, :f3], :f3 => :f4}, {:f2 => :size, :f3 => :size, :f4 => :nil?})
|
106
|
-
fc.fact_accomplished?("something", :f1).should be_false
|
107
|
-
end
|
108
|
-
it "should return true if all dependencies are satisfied and fact has no requirements" do
|
109
|
-
fc = FactChecker::Base.new([:f1, :f2, :f3, :f4], {:f1 => [:f2, :f3], :f3 => :f4}, {:f2 => :size, :f3 => :size, :f4 => :size})
|
110
|
-
fc.fact_accomplished?("something", :f1).should be_true
|
74
|
+
context "when fact is unknown" do
|
75
|
+
subject { FactChecker::Base.new([:f2], nil, {:f1 => :nil?}) }
|
76
|
+
it("always returns false") { subject.fact_accomplished?(nil, :f1).should be_false }
|
111
77
|
end
|
112
|
-
|
113
|
-
|
114
|
-
|
78
|
+
|
79
|
+
context "when fact is known and" do
|
80
|
+
context "has no dependencies" do
|
81
|
+
subject { FactChecker::Base.new([:f1], nil, {:f1 => lambda{|o| o.size > 3}}) }
|
82
|
+
it("returns true if requirement satisfied") do
|
83
|
+
subject.fact_accomplished?("String", :f1).should be_true
|
84
|
+
end
|
85
|
+
it "returns false if requirement not satisfied" do
|
86
|
+
subject.fact_accomplished?("Str", :f1).should be_false
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
context "has only unsatisfied dependencies" do
|
91
|
+
subject { FactChecker::Base.new([:f1, :f2], {:f1 => :f2}, {:f1 => lambda{true}, :f2 => :nil?}) }
|
92
|
+
it "returns false" do
|
93
|
+
subject.fact_accomplished?("something", :f1).should be_false
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context "has both satisfied and unsatisfied dependencies" do
|
98
|
+
subject { FactChecker::Base.new([:f1, :f2, :f3, :f4], {:f1 => [:f2, :f3], :f3 => :f4}, {:f2 => :size, :f3 => :size, :f4 => :nil?}) }
|
99
|
+
it "returns false" do
|
100
|
+
subject.fact_accomplished?("something", :f1).should be_false
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
context "has only satisfied dependencies" do
|
105
|
+
subject {
|
106
|
+
FactChecker::Base.new(
|
107
|
+
[:f1, :f2, :f3, :f4],
|
108
|
+
{:f1 => [:f2, :f3], :f3 => :f4},
|
109
|
+
{:f1 => lambda{|o| o.size == 4}, :f2 => lambda{|o| o.size < 5}, :f3 => lambda{|o| o.size > 2} }
|
110
|
+
)
|
111
|
+
}
|
112
|
+
|
113
|
+
it "returns true if fact has no requirements" do
|
114
|
+
subject.fact_accomplished?("something", :f4).should be_true
|
115
|
+
end
|
116
|
+
|
117
|
+
it "returns false if requirements not satisfied" do
|
118
|
+
subject.fact_accomplished?("somet", :f1).should be_false
|
119
|
+
end
|
120
|
+
|
121
|
+
it "returns true if all requirements are satisfied" do
|
122
|
+
subject.fact_accomplished?("some", :f1).should be_true
|
123
|
+
end
|
124
|
+
end
|
115
125
|
end
|
116
126
|
end
|
117
127
|
|
118
128
|
describe "#fact_possible?" do
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
it "should return true if dependencies satisfied (even if requirement is not satisfied)" do
|
124
|
-
fc = FactChecker::Base.new([:f1], nil, {:f1 => :nil?})
|
125
|
-
fc.fact_possible?(1, :f1).should be_true
|
129
|
+
context "when fact is unknown" do
|
130
|
+
it "returns true" do
|
131
|
+
subject.fact_possible?(nil, :x).should be_true
|
132
|
+
end
|
126
133
|
end
|
127
|
-
|
128
|
-
|
129
|
-
|
134
|
+
|
135
|
+
context "when fact is known" do
|
136
|
+
it "returns true if dependencies satisfied (even if requirement is not satisfied)" do
|
137
|
+
subject = FactChecker::Base.new([:f1, :f2], {:f1 => :f2}, {:f1 => :nil?, :f2 => :to_i})
|
138
|
+
subject.fact_possible?(1, :f1).should be_true
|
139
|
+
end
|
140
|
+
|
141
|
+
it "returns false if dependencies unsatisfied (even if requirement is satisfied)" do
|
142
|
+
subject = FactChecker::Base.new([:f1, :f2], {:f1 => :f2}, {:f1 => :to_i, :f2 => :nil?})
|
143
|
+
subject.fact_possible?(1, :f1).should be_false
|
144
|
+
end
|
130
145
|
end
|
131
146
|
end
|
132
147
|
|
133
148
|
describe "#def_fact" do
|
134
|
-
|
149
|
+
context "called with (:fact_name)" do
|
150
|
+
it "adds :fact_name to facts" do
|
151
|
+
subject.def_fact(:f1)
|
152
|
+
subject.def_fact(:f2)
|
153
|
+
subject.facts.should == [:f1, :f2]
|
154
|
+
end
|
135
155
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
fc.facts.should == [:f1, :f2]
|
156
|
+
it "returns :fact_name" do
|
157
|
+
subject.def_fact(:f1).should be :f1
|
158
|
+
end
|
140
159
|
end
|
141
160
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
161
|
+
context "called with (:fact_name, :if => :requirement)" do
|
162
|
+
it "adds :fact_name to facts" do
|
163
|
+
subject.def_fact(:f1)
|
164
|
+
subject.def_fact(:f2, :if => :nil?)
|
165
|
+
subject.facts.should == [:f1, :f2]
|
166
|
+
end
|
167
|
+
|
168
|
+
it "adds :requirement to requirements" do
|
169
|
+
subject.def_fact(:f2, :if => :nil?)
|
170
|
+
subject.requirements[:f2].should == :nil?
|
171
|
+
end
|
147
172
|
end
|
148
173
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
174
|
+
context "called with (:fact_name => :dependency)" do
|
175
|
+
it "adds :fact_name to facts" do
|
176
|
+
subject.def_fact(:f1)
|
177
|
+
subject.def_fact(:f2 => :f1)
|
178
|
+
subject.facts.should == [:f1, :f2]
|
179
|
+
end
|
180
|
+
|
181
|
+
it "adds :dependency to dependencies" do
|
182
|
+
subject.def_fact(:f2 => :f1)
|
183
|
+
subject.dependencies[:f2].should == :f1
|
184
|
+
end
|
154
185
|
end
|
155
186
|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
187
|
+
context "called with (:fact_name => :dependency, :if => :requirement)" do
|
188
|
+
subject do
|
189
|
+
FactChecker::Base.new.tap do |checker|
|
190
|
+
checker.def_fact(:f1)
|
191
|
+
checker.def_fact(:f2 => :f1, :if => :to_i)
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
it "adds :fact_name to facts" do
|
196
|
+
subject.facts.should == [:f1, :f2]
|
197
|
+
end
|
198
|
+
|
199
|
+
it "adds :requirement to requirements" do
|
200
|
+
subject.requirements[:f2].should == :to_i
|
201
|
+
end
|
202
|
+
|
203
|
+
it "adds :dependency to dependencies" do
|
204
|
+
subject.dependencies[:f2].should == :f1
|
205
|
+
end
|
162
206
|
end
|
163
207
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
208
|
+
context "called again for the same fact_name" do
|
209
|
+
subject do
|
210
|
+
FactChecker::Base.new.tap do |checker|
|
211
|
+
checker.def_fact(:f1 => :f2, :if => :nil?)
|
212
|
+
checker.def_fact(:f1)
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
it "doesn't add 2nd fact_name to facts" do
|
217
|
+
subject.facts.should == [:f1]
|
218
|
+
end
|
219
|
+
|
220
|
+
it "overwrites fact_name's dependency" do
|
221
|
+
subject.dependencies[:f1].should be_nil
|
222
|
+
end
|
223
|
+
|
224
|
+
it "overwrites fact_name's requirement" do
|
225
|
+
subject.requirements[:f1].should be_nil
|
226
|
+
end
|
170
227
|
end
|
171
228
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
229
|
+
context "called with wrong arguments it RAISES ERROR, for example" do
|
230
|
+
specify "#def_fact() raises error" do
|
231
|
+
expect { subject.def_fact() }.to raise_error ArgumentError
|
232
|
+
end
|
233
|
+
|
234
|
+
specify "#def_fact(:fact_name, {:if => :requirement}, something_else) raises error" do
|
235
|
+
expect { subject.def_fact(:f1, {:if => :nil?}, 1) }.to raise_error ArgumentError
|
236
|
+
end
|
237
|
+
|
238
|
+
specify "#def_fact(:fact_name, some_scalar_value) raises error" do
|
239
|
+
expect { subject.def_fact(:f1, 1)}.to raise_error ArgumentError
|
240
|
+
end
|
241
|
+
|
242
|
+
specify "#def_fact({:if => :requirement}, something_else) raises error" do
|
243
|
+
expect { subject.def_fact({:if => :nil?}, :f1) }.to raise_error ArgumentError
|
244
|
+
end
|
245
|
+
|
246
|
+
specify "#def_fact(:fact_name => :dependency, :if => :requirement, :some_other_key => something_else) raises error" do
|
247
|
+
expect { subject.def_fact(:f1 => :f2, :if => :nil?, :something_else => true) }.to raise_error ArgumentError
|
248
|
+
end
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
252
|
+
context "has 3 *_facts methods, i.e." do
|
253
|
+
subject { FactChecker::Base.new([:f1, :f2, :f3], {:f1 => :f2}, {:f2 => :nil?, :f3 => lambda{false} }) }
|
254
|
+
|
255
|
+
describe "#accomplished_facts" do
|
256
|
+
it "returns accomplished facts - ones with both dependencies and requirements satisfied" do
|
257
|
+
subject.accomplished_facts(nil).should == [:f1, :f2]
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
describe "#possible_facts" do
|
262
|
+
it "returns possible facts - ones with dependencies but not requirements satisfied" do
|
263
|
+
subject.possible_facts("SomeString").should == [:f2, :f3]
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
267
|
+
describe "#facts" do
|
268
|
+
it("returns all defined facts") { subject.facts.should == [:f1, :f2, :f3] }
|
178
269
|
end
|
179
270
|
end
|
271
|
+
|
180
272
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,16 +1,19 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
$:.unshift File.expand_path('../lib', __FILE__)
|
4
|
+
|
5
|
+
require 'simplecov'
|
6
|
+
SimpleCov.start
|
7
|
+
|
4
8
|
require 'fact_checker'
|
5
9
|
Dir['./spec/support/**/*.rb'].each { |f| require f }
|
6
10
|
|
7
11
|
RSpec.configure do |conf|
|
12
|
+
conf.formatter = :documentation
|
8
13
|
conf.color_enabled = true
|
9
14
|
conf.treat_symbols_as_metadata_keys_with_true_values = true
|
10
|
-
|
11
15
|
conf.expect_with :rspec, :stdlib
|
12
16
|
conf.mock_with :rspec
|
13
|
-
|
14
17
|
conf.fail_fast = true
|
15
18
|
conf.filter_run :focus => true
|
16
19
|
conf.filter_run_excluding :broken => true
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fact_checker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,23 +10,22 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
14
|
-
default_executable:
|
13
|
+
date: 2012-03-09 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: rspec
|
18
|
-
requirement: &
|
17
|
+
requirement: &2156208200 !ruby/object:Gem::Requirement
|
19
18
|
none: false
|
20
19
|
requirements:
|
21
20
|
- - ~>
|
22
21
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
22
|
+
version: 2.8.0
|
24
23
|
type: :development
|
25
24
|
prerelease: false
|
26
|
-
version_requirements: *
|
25
|
+
version_requirements: *2156208200
|
27
26
|
- !ruby/object:Gem::Dependency
|
28
27
|
name: rake
|
29
|
-
requirement: &
|
28
|
+
requirement: &2156206880 !ruby/object:Gem::Requirement
|
30
29
|
none: false
|
31
30
|
requirements:
|
32
31
|
- - ! '>='
|
@@ -34,10 +33,10 @@ dependencies:
|
|
34
33
|
version: '0'
|
35
34
|
type: :development
|
36
35
|
prerelease: false
|
37
|
-
version_requirements: *
|
36
|
+
version_requirements: *2156206880
|
38
37
|
- !ruby/object:Gem::Dependency
|
39
38
|
name: bundler
|
40
|
-
requirement: &
|
39
|
+
requirement: &2156204720 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
41
|
requirements:
|
43
42
|
- - ! '>='
|
@@ -45,7 +44,18 @@ dependencies:
|
|
45
44
|
version: '0'
|
46
45
|
type: :development
|
47
46
|
prerelease: false
|
48
|
-
version_requirements: *
|
47
|
+
version_requirements: *2156204720
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: simplecov
|
50
|
+
requirement: &2156219360 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 0.6.1
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *2156219360
|
49
59
|
description: Simple gem to check hierarchically dependent "facts" about objects
|
50
60
|
email:
|
51
61
|
- alexisowl+fact_checker@gmail.com
|
@@ -56,7 +66,7 @@ files:
|
|
56
66
|
- .gitignore
|
57
67
|
- .rvmrc
|
58
68
|
- Gemfile
|
59
|
-
- README
|
69
|
+
- README.md
|
60
70
|
- Rakefile
|
61
71
|
- examples/README.md
|
62
72
|
- examples/basic.rb
|
@@ -72,7 +82,6 @@ files:
|
|
72
82
|
- spec/spec_helper.rb
|
73
83
|
- spec/support/classes_with_facts.rb
|
74
84
|
- spec/support/shared_facts_behaviour.rb
|
75
|
-
has_rdoc: true
|
76
85
|
homepage: https://github.com/alexis/fact_checker
|
77
86
|
licenses: []
|
78
87
|
post_install_message:
|
@@ -93,8 +102,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
93
102
|
version: 1.3.5
|
94
103
|
requirements: []
|
95
104
|
rubyforge_project: fact_checker
|
96
|
-
rubygems_version: 1.
|
105
|
+
rubygems_version: 1.8.17
|
97
106
|
signing_key:
|
98
107
|
specification_version: 3
|
99
108
|
summary: Checks facts which may depend on other facts
|
100
|
-
test_files:
|
109
|
+
test_files:
|
110
|
+
- spec/fact_checker/base_spec.rb
|
111
|
+
- spec/fact_checker/version_spec.rb
|
112
|
+
- spec/fact_checker_inheritance_spec.rb
|
113
|
+
- spec/fact_checker_spec.rb
|
114
|
+
- spec/spec.rake
|
115
|
+
- spec/spec_helper.rb
|
116
|
+
- spec/support/classes_with_facts.rb
|
117
|
+
- spec/support/shared_facts_behaviour.rb
|
data/README
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
1. What is FactChecker
|
2
|
-
|
3
|
-
Simple ruby gem to check hierarchically dependent "facts" about objects.
|
4
|
-
|
5
|
-
2. Getting started
|
6
|
-
|
7
|
-
2.1 Installation
|
8
|
-
|
9
|
-
gem install fact_checker
|
10
|
-
|
11
|
-
2.2 Usage
|
12
|
-
|
13
|
-
https://github.com/alexis/fact_checker/tree/master/examples
|
14
|
-
|
15
|
-
3. Development / Contributing
|
16
|
-
|
17
|
-
3.1 Testing code with rspec
|
18
|
-
|
19
|
-
rake spec
|
20
|
-
|
21
|
-
3.2 Testing code coverage with rcov for ruby 1.8
|
22
|
-
|
23
|
-
rcov -Ilib:spec --exclude gem spec/fact_checker_spec.rb
|