leap 0.4.6 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,38 +1,39 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leap
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
5
- prerelease: false
4
+ hash: 11
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 4
9
- - 6
10
- version: 0.4.6
8
+ - 5
9
+ - 0
10
+ version: 0.5.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andy Rossmeissl
14
14
  - Seamus Abshere
15
+ - Derek Kastner
15
16
  autorequire:
16
17
  bindir: bin
17
18
  cert_chain: []
18
19
 
19
- date: 2011-01-27 00:00:00 -06:00
20
+ date: 2011-05-11 00:00:00 -04:00
20
21
  default_executable:
21
22
  dependencies:
22
23
  - !ruby/object:Gem::Dependency
23
- name: characterizable
24
+ name: charisma
24
25
  prerelease: false
25
26
  requirement: &id001 !ruby/object:Gem::Requirement
26
27
  none: false
27
28
  requirements:
28
- - - ">="
29
+ - - ~>
29
30
  - !ruby/object:Gem::Version
30
- hash: 9
31
+ hash: 23
31
32
  segments:
32
33
  - 0
34
+ - 2
33
35
  - 0
34
- - 11
35
- version: 0.0.11
36
+ version: 0.2.0
36
37
  type: :development
37
38
  version_requirements: *id001
38
39
  - !ruby/object:Gem::Dependency
@@ -50,9 +51,23 @@ dependencies:
50
51
  type: :development
51
52
  version_requirements: *id002
52
53
  - !ruby/object:Gem::Dependency
53
- name: blockenspiel
54
+ name: bueller
54
55
  prerelease: false
55
56
  requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 3
62
+ segments:
63
+ - 0
64
+ version: "0"
65
+ type: :development
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: blockenspiel
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
56
71
  none: false
57
72
  requirements:
58
73
  - - ">="
@@ -64,11 +79,11 @@ dependencies:
64
79
  - 2
65
80
  version: 0.3.2
66
81
  type: :runtime
67
- version_requirements: *id003
82
+ version_requirements: *id004
68
83
  - !ruby/object:Gem::Dependency
69
84
  name: activesupport
70
85
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
86
+ requirement: &id005 !ruby/object:Gem::Requirement
72
87
  none: false
73
88
  requirements:
74
89
  - - ">="
@@ -80,11 +95,11 @@ dependencies:
80
95
  - 4
81
96
  version: 2.3.4
82
97
  type: :runtime
83
- version_requirements: *id004
98
+ version_requirements: *id005
84
99
  - !ruby/object:Gem::Dependency
85
100
  name: i18n
86
101
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
102
+ requirement: &id006 !ruby/object:Gem::Requirement
88
103
  none: false
89
104
  requirements:
90
105
  - - ">="
@@ -94,11 +109,11 @@ dependencies:
94
109
  - 0
95
110
  version: "0"
96
111
  type: :runtime
97
- version_requirements: *id005
112
+ version_requirements: *id006
98
113
  - !ruby/object:Gem::Dependency
99
114
  name: builder
100
115
  prerelease: false
101
- requirement: &id006 !ruby/object:Gem::Requirement
116
+ requirement: &id007 !ruby/object:Gem::Requirement
102
117
  none: false
103
118
  requirements:
104
119
  - - ">="
@@ -108,7 +123,7 @@ dependencies:
108
123
  - 0
109
124
  version: "0"
110
125
  type: :runtime
111
- version_requirements: *id006
126
+ version_requirements: *id007
112
127
  description: Leap to conclusions
113
128
  email: andy@rossmeissl.net
114
129
  executables: []
@@ -122,7 +137,7 @@ files:
122
137
  - .gitignore
123
138
  - Gemfile
124
139
  - LICENSE
125
- - README.rdoc
140
+ - README.markdown
126
141
  - Rakefile
127
142
  - leap.gemspec
128
143
  - lib/leap.rb
@@ -130,16 +145,15 @@ files:
130
145
  - lib/leap/core_ext.rb
131
146
  - lib/leap/decision.rb
132
147
  - lib/leap/deliberation.rb
148
+ - lib/leap/deliberations_accessor.rb
149
+ - lib/leap/goal_methods_documentation.rb
133
150
  - lib/leap/implicit_attributes.rb
151
+ - lib/leap/no_solution_error.rb
134
152
  - lib/leap/quorum.rb
135
153
  - lib/leap/report.rb
136
154
  - lib/leap/subject.rb
137
155
  - lib/leap/version.rb
138
- - lib/leap/xml_serializer.rb
139
156
  - test/helper.rb
140
- - test/leap/test_committee.rb
141
- - test/leap/test_quorum.rb
142
- - test/leap/test_report.rb
143
157
  - test/test_leap.rb
144
158
  has_rdoc: true
145
159
  homepage: http://github.com/rossmeissl/leap
@@ -171,13 +185,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
185
  requirements: []
172
186
 
173
187
  rubyforge_project:
174
- rubygems_version: 1.3.7
188
+ rubygems_version: 1.6.2
175
189
  signing_key:
176
190
  specification_version: 3
177
191
  summary: A heuristics engine for your Ruby objects
178
- test_files:
179
- - test/helper.rb
180
- - test/leap/test_committee.rb
181
- - test/leap/test_quorum.rb
182
- - test/leap/test_report.rb
183
- - test/test_leap.rb
192
+ test_files: []
193
+
@@ -1,7 +0,0 @@
1
- = leap
2
-
3
- A simple heuristics engine for your Ruby objects.
4
-
5
- == Copyright
6
-
7
- Copyright (c) 2010 Andy Rossmeissl.
@@ -1,27 +0,0 @@
1
- require 'builder'
2
- require 'active_support/inflector'
3
-
4
- module Leap
5
- module XmlSerializer
6
- def to_xml(options = {})
7
- options[:indent] ||= 2
8
- xml = options[:builder] ||= Builder::XmlMarkup.new(options)
9
- xml.instruct! unless options[:skip_instruct]
10
- yield xml
11
- xml
12
- end
13
-
14
- def array_to_xml(xml, name, array, singular_name = name.to_s.singularize)
15
- xml.__send__ name, :type => 'array' do |subblock|
16
- array.each do |item|
17
- if item.is_a? Symbol or !item.respond_to?(:to_xml)
18
- item = item.to_s if item.is_a?(Symbol)
19
- subblock.__send__ singular_name, item, :type => 'string'
20
- else
21
- item.to_xml(:builder => subblock, :skip_instruct => true)
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,42 +0,0 @@
1
- require 'helper'
2
-
3
- class Leap::CommitteeTest < Test::Unit::TestCase
4
- context 'to_xml' do
5
- should 'serialize to xml' do
6
- committee = Leap::Committee.new 'Senate Committee on Chocolate Cookies'
7
- committee.instance_variable_set :@quorums, [
8
- Leap::Quorum.new('with chocolate chips', {}, Proc.new {}),
9
- Leap::Quorum.new('with macadamia nuts', {}, Proc.new {})
10
- ]
11
-
12
- output = ''
13
- committee.to_xml(:target => output)
14
- assert_equal(<<XML, output)
15
- <?xml version=\"1.0\" encoding=\"UTF-8\"?>
16
- <committee>
17
- <name type="string">Senate Committee on Chocolate Cookies</name>
18
- <quorums type="array">
19
- <quorum>
20
- <name type="string">with chocolate chips</name>
21
- <requirements type="array">
22
- </requirements>
23
- <appreciates type="array">
24
- </appreciates>
25
- <complies type="array">
26
- </complies>
27
- </quorum>
28
- <quorum>
29
- <name type="string">with macadamia nuts</name>
30
- <requirements type="array">
31
- </requirements>
32
- <appreciates type="array">
33
- </appreciates>
34
- <complies type="array">
35
- </complies>
36
- </quorum>
37
- </quorums>
38
- </committee>
39
- XML
40
- end
41
- end
42
- end
@@ -1,31 +0,0 @@
1
- require 'helper'
2
-
3
- class Leap::QuorumTest < Test::Unit::TestCase
4
- context 'to_xml' do
5
- should 'serialize to xml' do
6
- quorum = Leap::Quorum.new(
7
- 'roll call',
8
- { :needs => :count, :complies => :rules_of_endearment, :appreciates => [:adulation, :confirmation] },
9
- Proc.new {})
10
-
11
- output = ''
12
- quorum.to_xml(:target => output)
13
- assert_equal(<<XML, output)
14
- <?xml version=\"1.0\" encoding=\"UTF-8\"?>
15
- <quorum>
16
- <name type="string">roll call</name>
17
- <requirements type="array">
18
- <requirement type="string">count</requirement>
19
- </requirements>
20
- <appreciates type="array">
21
- <supplement type="string">adulation</supplement>
22
- <supplement type="string">confirmation</supplement>
23
- </appreciates>
24
- <complies type="array">
25
- <compliance type="string">rules_of_endearment</compliance>
26
- </complies>
27
- </quorum>
28
- XML
29
- end
30
- end
31
- end
@@ -1,134 +0,0 @@
1
- require 'helper'
2
-
3
- class Vagabond
4
- include Characterizable
5
-
6
- characterize do
7
- has :scruples
8
- has :tenacity do
9
- displays { |t| "ferocious" }
10
- end
11
- end
12
- end
13
-
14
- class Leap::ReportTest < Test::Unit::TestCase
15
- context 'to_xml' do
16
- should 'serialize to xml' do
17
- choc = Leap::Quorum.new('with chocolate chips', {}, Proc.new {})
18
- mac = Leap::Quorum.new('with macadamia nuts', {}, Proc.new {})
19
- committee = Leap::Committee.new :scruples
20
- committee.instance_variable_set :@quorums, [choc, mac]
21
-
22
- report = Leap::Report.new Vagabond.new, committee, choc => 'good'
23
-
24
- output = ''
25
- report.to_xml(:target => output)
26
- assert_equal(<<-XML, output)
27
- <?xml version=\"1.0\" encoding=\"UTF-8\"?>
28
- <report>
29
- <committee>
30
- <name type="string">scruples</name>
31
- <quorums type="array">
32
- <quorum>
33
- <name type="string">with chocolate chips</name>
34
- <requirements type="array">
35
- </requirements>
36
- <appreciates type="array">
37
- </appreciates>
38
- <complies type="array">
39
- </complies>
40
- </quorum>
41
- <quorum>
42
- <name type="string">with macadamia nuts</name>
43
- <requirements type="array">
44
- </requirements>
45
- <appreciates type="array">
46
- </appreciates>
47
- <complies type="array">
48
- </complies>
49
- </quorum>
50
- </quorums>
51
- </committee>
52
- <conclusion type="string">good</conclusion>
53
- <quorum>
54
- <name type="string">with chocolate chips</name>
55
- <requirements type="array">
56
- </requirements>
57
- <appreciates type="array">
58
- </appreciates>
59
- <complies type="array">
60
- </complies>
61
- </quorum>
62
- </report>
63
- XML
64
- end
65
- should 'use a custom conclusion' do
66
- choc = Leap::Quorum.new('with chocolate chips', {}, Proc.new {})
67
- mac = Leap::Quorum.new('with macadamia nuts', {}, Proc.new {})
68
- committee = Leap::Committee.new :tenacity
69
- committee.instance_variable_set :@quorums, [choc, mac]
70
-
71
- report = Leap::Report.new Vagabond.new, committee, choc => 'tough'
72
-
73
- output = ''
74
- report.to_xml :target => output
75
- assert_equal(<<-XML, output)
76
- <?xml version=\"1.0\" encoding=\"UTF-8\"?>
77
- <report>
78
- <committee>
79
- <name type="string">tenacity</name>
80
- <quorums type="array">
81
- <quorum>
82
- <name type="string">with chocolate chips</name>
83
- <requirements type="array">
84
- </requirements>
85
- <appreciates type="array">
86
- </appreciates>
87
- <complies type="array">
88
- </complies>
89
- </quorum>
90
- <quorum>
91
- <name type="string">with macadamia nuts</name>
92
- <requirements type="array">
93
- </requirements>
94
- <appreciates type="array">
95
- </appreciates>
96
- <complies type="array">
97
- </complies>
98
- </quorum>
99
- </quorums>
100
- </committee>
101
- <conclusion type="string">ferocious</conclusion>
102
- <quorum>
103
- <name type="string">with chocolate chips</name>
104
- <requirements type="array">
105
- </requirements>
106
- <appreciates type="array">
107
- </appreciates>
108
- <complies type="array">
109
- </complies>
110
- </quorum>
111
- </report>
112
- XML
113
- end
114
- end
115
-
116
- context 'formatted_conclusion' do
117
- should 'return the regular conclusion if there is no custom format for the conclusion corresponding characteristic' do
118
- choc = Leap::Quorum.new('with chocolate chips', {}, Proc.new {})
119
- committee = Leap::Committee.new :scruples
120
- committee.instance_variable_set :@quorums, [choc]
121
-
122
- report = Leap::Report.new Vagabond.new, committee, choc => 'good'
123
- assert_equal 'good', report.formatted_conclusion
124
- end
125
- should 'return the formatted conclusion if there is a custom format for the conclusion corresponding characteristic' do
126
- choc = Leap::Quorum.new('with chocolate chips', {}, Proc.new {})
127
- committee = Leap::Committee.new :tenacity
128
- committee.instance_variable_set :@quorums, [choc]
129
-
130
- report = Leap::Report.new Vagabond.new, committee, choc => 'good'
131
- assert_equal 'ferocious', report.formatted_conclusion
132
- end
133
- end
134
- end