leap 0.4.3 → 0.4.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/Gemfile +3 -0
- data/Gemfile.lock +26 -0
- data/Rakefile +4 -2
- data/VERSION +1 -1
- data/leap.gemspec +86 -71
- data/lib/leap.rb +2 -1
- data/lib/leap/committee.rb +18 -0
- data/lib/leap/implicit_attributes.rb +1 -1
- data/lib/leap/quorum.rb +22 -0
- data/lib/leap/report.rb +20 -0
- data/lib/leap/xml_serializer.rb +27 -0
- data/test/leap/test_committee.rb +42 -0
- data/test/leap/test_quorum.rb +31 -0
- data/test/leap/test_report.rb +55 -0
- metadata +60 -18
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
leap (0.4.3)
|
|
5
|
+
activesupport (>= 3.0.0.beta2)
|
|
6
|
+
blockenspiel (>= 0.3.2)
|
|
7
|
+
|
|
8
|
+
GEM
|
|
9
|
+
remote: http://rubygems.org/
|
|
10
|
+
specs:
|
|
11
|
+
activesupport (3.0.1)
|
|
12
|
+
blockenspiel (0.4.1)
|
|
13
|
+
characterizable (0.0.17)
|
|
14
|
+
activesupport (>= 2.3.5)
|
|
15
|
+
blockenspiel (>= 0.3.2)
|
|
16
|
+
shoulda (2.11.3)
|
|
17
|
+
|
|
18
|
+
PLATFORMS
|
|
19
|
+
ruby
|
|
20
|
+
|
|
21
|
+
DEPENDENCIES
|
|
22
|
+
activesupport (>= 3.0.0.beta2)
|
|
23
|
+
blockenspiel (>= 0.3.2)
|
|
24
|
+
characterizable (>= 0.0.11)
|
|
25
|
+
leap!
|
|
26
|
+
shoulda
|
data/Rakefile
CHANGED
|
@@ -10,10 +10,12 @@ begin
|
|
|
10
10
|
gem.email = "andy@rossmeissl.net"
|
|
11
11
|
gem.homepage = "http://github.com/rossmeissl/leap"
|
|
12
12
|
gem.authors = ["Andy Rossmeissl", "Seamus Abshere"]
|
|
13
|
-
gem.add_development_dependency "shoulda", ">= 0"
|
|
14
13
|
gem.add_development_dependency "characterizable", ">=0.0.11"
|
|
14
|
+
gem.add_development_dependency "shoulda", ">= 0"
|
|
15
|
+
gem.add_development_dependency "jeweler", ">= 0"
|
|
15
16
|
gem.add_dependency 'blockenspiel', '>=0.3.2'
|
|
16
|
-
gem.add_dependency 'activesupport', '
|
|
17
|
+
gem.add_dependency 'activesupport', '~> 3.0.0'
|
|
18
|
+
gem.add_dependency 'builder', '~> 2.1.2'
|
|
17
19
|
end
|
|
18
20
|
Jeweler::GemcutterTasks.new
|
|
19
21
|
rescue LoadError
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.4.
|
|
1
|
+
0.4.4
|
data/leap.gemspec
CHANGED
|
@@ -1,71 +1,86 @@
|
|
|
1
|
-
# Generated by jeweler
|
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
-
# Instead, edit Jeweler::Tasks in
|
|
4
|
-
# -*- encoding: utf-8 -*-
|
|
5
|
-
|
|
6
|
-
Gem::Specification.new do |s|
|
|
7
|
-
s.name = %q{leap}
|
|
8
|
-
s.version = "0.4.
|
|
9
|
-
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
-
s.authors = ["Andy Rossmeissl", "Seamus Abshere"]
|
|
12
|
-
s.date = %q{2010-
|
|
13
|
-
s.description = %q{Leap to conclusions}
|
|
14
|
-
s.email = %q{andy@rossmeissl.net}
|
|
15
|
-
s.extra_rdoc_files = [
|
|
16
|
-
"LICENSE",
|
|
17
|
-
"README.rdoc"
|
|
18
|
-
]
|
|
19
|
-
s.files = [
|
|
20
|
-
".document",
|
|
21
|
-
".gitignore",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"lib/leap
|
|
30
|
-
"lib/leap/
|
|
31
|
-
"lib/leap/
|
|
32
|
-
"lib/leap/
|
|
33
|
-
"lib/leap/
|
|
34
|
-
"lib/leap/
|
|
35
|
-
"lib/leap/
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
]
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
1
|
+
# Generated by jeweler
|
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
|
4
|
+
# -*- encoding: utf-8 -*-
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |s|
|
|
7
|
+
s.name = %q{leap}
|
|
8
|
+
s.version = "0.4.4"
|
|
9
|
+
|
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
+
s.authors = ["Andy Rossmeissl", "Seamus Abshere"]
|
|
12
|
+
s.date = %q{2010-10-28}
|
|
13
|
+
s.description = %q{Leap to conclusions}
|
|
14
|
+
s.email = %q{andy@rossmeissl.net}
|
|
15
|
+
s.extra_rdoc_files = [
|
|
16
|
+
"LICENSE",
|
|
17
|
+
"README.rdoc"
|
|
18
|
+
]
|
|
19
|
+
s.files = [
|
|
20
|
+
".document",
|
|
21
|
+
".gitignore",
|
|
22
|
+
"Gemfile",
|
|
23
|
+
"Gemfile.lock",
|
|
24
|
+
"LICENSE",
|
|
25
|
+
"README.rdoc",
|
|
26
|
+
"Rakefile",
|
|
27
|
+
"VERSION",
|
|
28
|
+
"leap.gemspec",
|
|
29
|
+
"lib/leap.rb",
|
|
30
|
+
"lib/leap/committee.rb",
|
|
31
|
+
"lib/leap/core_ext.rb",
|
|
32
|
+
"lib/leap/decision.rb",
|
|
33
|
+
"lib/leap/deliberation.rb",
|
|
34
|
+
"lib/leap/implicit_attributes.rb",
|
|
35
|
+
"lib/leap/quorum.rb",
|
|
36
|
+
"lib/leap/report.rb",
|
|
37
|
+
"lib/leap/subject.rb",
|
|
38
|
+
"lib/leap/xml_serializer.rb",
|
|
39
|
+
"test/helper.rb",
|
|
40
|
+
"test/leap/test_committee.rb",
|
|
41
|
+
"test/leap/test_quorum.rb",
|
|
42
|
+
"test/leap/test_report.rb",
|
|
43
|
+
"test/test_leap.rb"
|
|
44
|
+
]
|
|
45
|
+
s.homepage = %q{http://github.com/rossmeissl/leap}
|
|
46
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
|
47
|
+
s.require_paths = ["lib"]
|
|
48
|
+
s.rubygems_version = %q{1.3.7}
|
|
49
|
+
s.summary = %q{A heuristics engine for your Ruby objects}
|
|
50
|
+
s.test_files = [
|
|
51
|
+
"test/leap/test_report.rb",
|
|
52
|
+
"test/leap/test_committee.rb",
|
|
53
|
+
"test/leap/test_quorum.rb",
|
|
54
|
+
"test/test_leap.rb",
|
|
55
|
+
"test/helper.rb"
|
|
56
|
+
]
|
|
57
|
+
|
|
58
|
+
if s.respond_to? :specification_version then
|
|
59
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
60
|
+
s.specification_version = 3
|
|
61
|
+
|
|
62
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
63
|
+
s.add_development_dependency(%q<characterizable>, [">= 0.0.11"])
|
|
64
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
|
65
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
|
66
|
+
s.add_runtime_dependency(%q<blockenspiel>, [">= 0.3.2"])
|
|
67
|
+
s.add_runtime_dependency(%q<activesupport>, ["~> 3.0.0"])
|
|
68
|
+
s.add_runtime_dependency(%q<builder>, ["~> 2.1.2"])
|
|
69
|
+
else
|
|
70
|
+
s.add_dependency(%q<characterizable>, [">= 0.0.11"])
|
|
71
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
|
72
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
73
|
+
s.add_dependency(%q<blockenspiel>, [">= 0.3.2"])
|
|
74
|
+
s.add_dependency(%q<activesupport>, ["~> 3.0.0"])
|
|
75
|
+
s.add_dependency(%q<builder>, ["~> 2.1.2"])
|
|
76
|
+
end
|
|
77
|
+
else
|
|
78
|
+
s.add_dependency(%q<characterizable>, [">= 0.0.11"])
|
|
79
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
|
80
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
81
|
+
s.add_dependency(%q<blockenspiel>, [">= 0.3.2"])
|
|
82
|
+
s.add_dependency(%q<activesupport>, ["~> 3.0.0"])
|
|
83
|
+
s.add_dependency(%q<builder>, ["~> 2.1.2"])
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
data/lib/leap.rb
CHANGED
|
@@ -9,6 +9,7 @@ end if ActiveSupport::VERSION::MAJOR == 3
|
|
|
9
9
|
require 'blockenspiel'
|
|
10
10
|
|
|
11
11
|
require 'leap/core_ext'
|
|
12
|
+
require 'leap/xml_serializer'
|
|
12
13
|
require 'leap/subject'
|
|
13
14
|
require 'leap/committee'
|
|
14
15
|
require 'leap/quorum'
|
|
@@ -23,4 +24,4 @@ module Leap
|
|
|
23
24
|
end
|
|
24
25
|
|
|
25
26
|
class NoSolutionError < ArgumentError; end
|
|
26
|
-
end
|
|
27
|
+
end
|
data/lib/leap/committee.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
module Leap
|
|
2
2
|
class Committee
|
|
3
|
+
include XmlSerializer
|
|
4
|
+
|
|
3
5
|
attr_reader :name, :quorums
|
|
4
6
|
|
|
5
7
|
def initialize(name)
|
|
@@ -15,6 +17,22 @@ module Leap
|
|
|
15
17
|
end
|
|
16
18
|
end
|
|
17
19
|
end
|
|
20
|
+
|
|
21
|
+
def as_json(*)
|
|
22
|
+
{
|
|
23
|
+
'name' => name.to_s,
|
|
24
|
+
'quorums' => quorums.map(&:as_json)
|
|
25
|
+
}
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def to_xml(options = {})
|
|
29
|
+
super options do |xml|
|
|
30
|
+
xml.committee do |committee_block|
|
|
31
|
+
committee_block.name name.to_s, :type => 'string'
|
|
32
|
+
array_to_xml(committee_block, :quorums, quorums)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
18
36
|
|
|
19
37
|
include ::Blockenspiel::DSL
|
|
20
38
|
def quorum(name, options = {}, &blk)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Leap
|
|
2
2
|
module ImplicitAttributes
|
|
3
3
|
def _leap_implicit_attributes
|
|
4
|
-
Hash[*instance_variables.map { |variable| variable.delete('@').to_sym }.zip(instance_variables.map { |variable| instance_variable_get variable }).flatten]
|
|
4
|
+
Hash[*instance_variables.map { |variable| variable.to_s.delete('@').to_sym }.zip(instance_variables.map { |variable| instance_variable_get variable }).flatten]
|
|
5
5
|
end
|
|
6
6
|
end
|
|
7
7
|
end
|
data/lib/leap/quorum.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
module Leap
|
|
2
2
|
class Quorum
|
|
3
|
+
include XmlSerializer
|
|
4
|
+
|
|
3
5
|
attr_reader :name, :requirements, :supplements, :process, :compliance
|
|
4
6
|
def initialize(name, options, blk)
|
|
5
7
|
@name = name
|
|
@@ -25,5 +27,25 @@ module Leap
|
|
|
25
27
|
def characteristics
|
|
26
28
|
requirements + supplements
|
|
27
29
|
end
|
|
30
|
+
|
|
31
|
+
def as_json(*)
|
|
32
|
+
{
|
|
33
|
+
'name' => name.to_s,
|
|
34
|
+
'requirements' => requirements.map(&:to_s),
|
|
35
|
+
'appreciates' => supplements.map(&:to_s),
|
|
36
|
+
'complies' => compliance.map(&:to_s)
|
|
37
|
+
}
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def to_xml(options = {})
|
|
41
|
+
super options do |xml|
|
|
42
|
+
xml.quorum do |quorum_block|
|
|
43
|
+
quorum_block.name name.to_s, :type => 'string'
|
|
44
|
+
array_to_xml(quorum_block, :requirements, requirements)
|
|
45
|
+
array_to_xml(quorum_block, :appreciates, supplements, 'supplement')
|
|
46
|
+
array_to_xml(quorum_block, :complies, compliance, 'compliance')
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
28
50
|
end
|
|
29
51
|
end
|
data/lib/leap/report.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
module Leap
|
|
2
2
|
class Report
|
|
3
|
+
include XmlSerializer
|
|
4
|
+
|
|
3
5
|
attr_reader :committee, :conclusion, :quorum
|
|
4
6
|
|
|
5
7
|
def initialize(committee, report)
|
|
@@ -8,5 +10,23 @@ module Leap
|
|
|
8
10
|
raise ArgumentError, 'Please report with quorum => conclusion' unless report.is_a?(Hash) and report.length == 1
|
|
9
11
|
@quorum, @conclusion = report.first
|
|
10
12
|
end
|
|
13
|
+
|
|
14
|
+
def as_json(*)
|
|
15
|
+
{
|
|
16
|
+
'committee' => committee.as_json,
|
|
17
|
+
'conclusion' => conclusion,
|
|
18
|
+
'quorum' => quorum.as_json
|
|
19
|
+
}
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def to_xml(options = {})
|
|
23
|
+
super options do |xml|
|
|
24
|
+
xml.report do |report_block|
|
|
25
|
+
committee.to_xml(options.merge :skip_instruct => true, :builder => report_block)
|
|
26
|
+
report_block.conclusion conclusion, :type => conclusion.class.to_s.downcase
|
|
27
|
+
quorum.to_xml(options.merge :skip_instruct => true, :builder => report_block)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
11
31
|
end
|
|
12
32
|
end
|
|
@@ -0,0 +1,27 @@
|
|
|
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.to_s
|
|
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
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
require 'helper'
|
|
2
|
+
|
|
3
|
+
class Leap::ReportTest < Test::Unit::TestCase
|
|
4
|
+
context 'to_xml' do
|
|
5
|
+
should 'serialize to xml' do
|
|
6
|
+
choc = Leap::Quorum.new('with chocolate chips', {}, Proc.new {})
|
|
7
|
+
mac = Leap::Quorum.new('with macadamia nuts', {}, Proc.new {})
|
|
8
|
+
committee = Leap::Committee.new 'Senate Committee on Chocolate Cookies'
|
|
9
|
+
committee.instance_variable_set :@quorums, [choc, mac]
|
|
10
|
+
|
|
11
|
+
report = Leap::Report.new committee, choc => 'good'
|
|
12
|
+
|
|
13
|
+
output = ''
|
|
14
|
+
report.to_xml(:target => output)
|
|
15
|
+
assert_equal(<<XML, output)
|
|
16
|
+
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
|
17
|
+
<report>
|
|
18
|
+
<committee>
|
|
19
|
+
<name type="string">Senate Committee on Chocolate Cookies</name>
|
|
20
|
+
<quorums type="array">
|
|
21
|
+
<quorum>
|
|
22
|
+
<name type="string">with chocolate chips</name>
|
|
23
|
+
<requirements type="array">
|
|
24
|
+
</requirements>
|
|
25
|
+
<appreciates type="array">
|
|
26
|
+
</appreciates>
|
|
27
|
+
<complies type="array">
|
|
28
|
+
</complies>
|
|
29
|
+
</quorum>
|
|
30
|
+
<quorum>
|
|
31
|
+
<name type="string">with macadamia nuts</name>
|
|
32
|
+
<requirements type="array">
|
|
33
|
+
</requirements>
|
|
34
|
+
<appreciates type="array">
|
|
35
|
+
</appreciates>
|
|
36
|
+
<complies type="array">
|
|
37
|
+
</complies>
|
|
38
|
+
</quorum>
|
|
39
|
+
</quorums>
|
|
40
|
+
</committee>
|
|
41
|
+
<conclusion type="string">good</conclusion>
|
|
42
|
+
<quorum>
|
|
43
|
+
<name type="string">with chocolate chips</name>
|
|
44
|
+
<requirements type="array">
|
|
45
|
+
</requirements>
|
|
46
|
+
<appreciates type="array">
|
|
47
|
+
</appreciates>
|
|
48
|
+
<complies type="array">
|
|
49
|
+
</complies>
|
|
50
|
+
</quorum>
|
|
51
|
+
</report>
|
|
52
|
+
XML
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
7
|
- 4
|
|
8
|
-
-
|
|
9
|
-
version: 0.4.
|
|
8
|
+
- 4
|
|
9
|
+
version: 0.4.4
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- Andy Rossmeissl
|
|
@@ -15,39 +15,55 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2010-
|
|
18
|
+
date: 2010-10-28 00:00:00 -04:00
|
|
19
19
|
default_executable:
|
|
20
20
|
dependencies:
|
|
21
21
|
- !ruby/object:Gem::Dependency
|
|
22
|
-
name:
|
|
22
|
+
name: characterizable
|
|
23
23
|
prerelease: false
|
|
24
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
25
26
|
requirements:
|
|
26
27
|
- - ">="
|
|
27
28
|
- !ruby/object:Gem::Version
|
|
28
29
|
segments:
|
|
29
30
|
- 0
|
|
30
|
-
|
|
31
|
+
- 0
|
|
32
|
+
- 11
|
|
33
|
+
version: 0.0.11
|
|
31
34
|
type: :development
|
|
32
35
|
version_requirements: *id001
|
|
33
36
|
- !ruby/object:Gem::Dependency
|
|
34
|
-
name:
|
|
37
|
+
name: shoulda
|
|
35
38
|
prerelease: false
|
|
36
39
|
requirement: &id002 !ruby/object:Gem::Requirement
|
|
40
|
+
none: false
|
|
37
41
|
requirements:
|
|
38
42
|
- - ">="
|
|
39
43
|
- !ruby/object:Gem::Version
|
|
40
44
|
segments:
|
|
41
45
|
- 0
|
|
42
|
-
|
|
43
|
-
- 11
|
|
44
|
-
version: 0.0.11
|
|
46
|
+
version: "0"
|
|
45
47
|
type: :development
|
|
46
48
|
version_requirements: *id002
|
|
47
49
|
- !ruby/object:Gem::Dependency
|
|
48
|
-
name:
|
|
50
|
+
name: jeweler
|
|
49
51
|
prerelease: false
|
|
50
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
|
53
|
+
none: false
|
|
54
|
+
requirements:
|
|
55
|
+
- - ">="
|
|
56
|
+
- !ruby/object:Gem::Version
|
|
57
|
+
segments:
|
|
58
|
+
- 0
|
|
59
|
+
version: "0"
|
|
60
|
+
type: :development
|
|
61
|
+
version_requirements: *id003
|
|
62
|
+
- !ruby/object:Gem::Dependency
|
|
63
|
+
name: blockenspiel
|
|
64
|
+
prerelease: false
|
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
|
66
|
+
none: false
|
|
51
67
|
requirements:
|
|
52
68
|
- - ">="
|
|
53
69
|
- !ruby/object:Gem::Version
|
|
@@ -57,22 +73,37 @@ dependencies:
|
|
|
57
73
|
- 2
|
|
58
74
|
version: 0.3.2
|
|
59
75
|
type: :runtime
|
|
60
|
-
version_requirements: *
|
|
76
|
+
version_requirements: *id004
|
|
61
77
|
- !ruby/object:Gem::Dependency
|
|
62
78
|
name: activesupport
|
|
63
79
|
prerelease: false
|
|
64
|
-
requirement: &
|
|
80
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
|
81
|
+
none: false
|
|
65
82
|
requirements:
|
|
66
|
-
- -
|
|
83
|
+
- - ~>
|
|
67
84
|
- !ruby/object:Gem::Version
|
|
68
85
|
segments:
|
|
69
86
|
- 3
|
|
70
87
|
- 0
|
|
71
88
|
- 0
|
|
72
|
-
|
|
73
|
-
version: 3.0.0.beta2
|
|
89
|
+
version: 3.0.0
|
|
74
90
|
type: :runtime
|
|
75
|
-
version_requirements: *
|
|
91
|
+
version_requirements: *id005
|
|
92
|
+
- !ruby/object:Gem::Dependency
|
|
93
|
+
name: builder
|
|
94
|
+
prerelease: false
|
|
95
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
|
96
|
+
none: false
|
|
97
|
+
requirements:
|
|
98
|
+
- - ~>
|
|
99
|
+
- !ruby/object:Gem::Version
|
|
100
|
+
segments:
|
|
101
|
+
- 2
|
|
102
|
+
- 1
|
|
103
|
+
- 2
|
|
104
|
+
version: 2.1.2
|
|
105
|
+
type: :runtime
|
|
106
|
+
version_requirements: *id006
|
|
76
107
|
description: Leap to conclusions
|
|
77
108
|
email: andy@rossmeissl.net
|
|
78
109
|
executables: []
|
|
@@ -85,6 +116,8 @@ extra_rdoc_files:
|
|
|
85
116
|
files:
|
|
86
117
|
- .document
|
|
87
118
|
- .gitignore
|
|
119
|
+
- Gemfile
|
|
120
|
+
- Gemfile.lock
|
|
88
121
|
- LICENSE
|
|
89
122
|
- README.rdoc
|
|
90
123
|
- Rakefile
|
|
@@ -99,7 +132,11 @@ files:
|
|
|
99
132
|
- lib/leap/quorum.rb
|
|
100
133
|
- lib/leap/report.rb
|
|
101
134
|
- lib/leap/subject.rb
|
|
135
|
+
- lib/leap/xml_serializer.rb
|
|
102
136
|
- test/helper.rb
|
|
137
|
+
- test/leap/test_committee.rb
|
|
138
|
+
- test/leap/test_quorum.rb
|
|
139
|
+
- test/leap/test_report.rb
|
|
103
140
|
- test/test_leap.rb
|
|
104
141
|
has_rdoc: true
|
|
105
142
|
homepage: http://github.com/rossmeissl/leap
|
|
@@ -111,6 +148,7 @@ rdoc_options:
|
|
|
111
148
|
require_paths:
|
|
112
149
|
- lib
|
|
113
150
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
151
|
+
none: false
|
|
114
152
|
requirements:
|
|
115
153
|
- - ">="
|
|
116
154
|
- !ruby/object:Gem::Version
|
|
@@ -118,6 +156,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
118
156
|
- 0
|
|
119
157
|
version: "0"
|
|
120
158
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
159
|
+
none: false
|
|
121
160
|
requirements:
|
|
122
161
|
- - ">="
|
|
123
162
|
- !ruby/object:Gem::Version
|
|
@@ -127,10 +166,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
127
166
|
requirements: []
|
|
128
167
|
|
|
129
168
|
rubyforge_project:
|
|
130
|
-
rubygems_version: 1.3.
|
|
169
|
+
rubygems_version: 1.3.7
|
|
131
170
|
signing_key:
|
|
132
171
|
specification_version: 3
|
|
133
172
|
summary: A heuristics engine for your Ruby objects
|
|
134
173
|
test_files:
|
|
135
|
-
- test/
|
|
174
|
+
- test/leap/test_report.rb
|
|
175
|
+
- test/leap/test_committee.rb
|
|
176
|
+
- test/leap/test_quorum.rb
|
|
136
177
|
- test/test_leap.rb
|
|
178
|
+
- test/helper.rb
|