api_resource 0.3.8 → 0.3.10
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/VERSION +1 -1
- data/api_resource.gemspec +3 -3
- data/lib/api_resource/associations/association_proxy.rb +1 -0
- data/lib/api_resource/attributes.rb +32 -0
- data/lib/api_resource/base.rb +12 -1
- data/spec/lib/associations_spec.rb +53 -2
- data/spec/lib/attributes_spec.rb +8 -0
- data/spec/lib/base_spec.rb +43 -0
- data/spec/support/mocks/test_resource_mocks.rb +1 -1
- data/spec/support/requests/association_requests.rb +9 -0
- data/spec/support/requests/test_resource_requests.rb +5 -0
- metadata +54 -179
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.10
|
data/api_resource.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "api_resource"
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.10"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ethan Langevin"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-08-22"
|
13
13
|
s.description = "A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources"
|
14
14
|
s.email = "ejl6266@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -83,7 +83,7 @@ Gem::Specification.new do |s|
|
|
83
83
|
s.homepage = "http://github.com/ejlangev/resource"
|
84
84
|
s.licenses = ["MIT"]
|
85
85
|
s.require_paths = ["lib"]
|
86
|
-
s.rubygems_version = "1.8.
|
86
|
+
s.rubygems_version = "1.8.17"
|
87
87
|
s.summary = "A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources"
|
88
88
|
|
89
89
|
if s.respond_to? :specification_version then
|
@@ -30,6 +30,38 @@ module ApiResource
|
|
30
30
|
end
|
31
31
|
@attributes
|
32
32
|
end
|
33
|
+
|
34
|
+
|
35
|
+
# This method is important for reloading an object. If the
|
36
|
+
# object has already been loaded, its associations will trip
|
37
|
+
# up the load method unless we pass in the internal objects.
|
38
|
+
|
39
|
+
define_method(:attributes_without_proxies) do
|
40
|
+
attributes = @attributes
|
41
|
+
|
42
|
+
if attributes.nil?
|
43
|
+
attributes = self.class.attribute_names.each do |attr|
|
44
|
+
attributes[attr] = self.send("#{attr}")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
attributes.each do |k,v|
|
49
|
+
if v.respond_to?(:internal_object)
|
50
|
+
if v.internal_object.present?
|
51
|
+
internal = v.internal_object
|
52
|
+
if internal.is_a?(Array)
|
53
|
+
attributes[k] = internal.collect{|item| item.attributes}
|
54
|
+
else
|
55
|
+
attributes[k] = internal.attributes
|
56
|
+
end
|
57
|
+
else
|
58
|
+
attributes[k] = nil
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
attributes
|
64
|
+
end
|
33
65
|
|
34
66
|
end
|
35
67
|
|
data/lib/api_resource/base.rb
CHANGED
@@ -112,6 +112,16 @@ module ApiResource
|
|
112
112
|
def reset_connection
|
113
113
|
remove_instance_variable(:@connection) if @connection.present?
|
114
114
|
end
|
115
|
+
|
116
|
+
# load our resource definition to make sure we know what this class
|
117
|
+
# responds to
|
118
|
+
def respond_to?(*args)
|
119
|
+
unless self.instance_variable_defined?(:@class_data)
|
120
|
+
self.instance_variable_set(:@class_data, true)
|
121
|
+
self.set_class_attributes_upon_load
|
122
|
+
end
|
123
|
+
super
|
124
|
+
end
|
115
125
|
|
116
126
|
def reload_class_attributes
|
117
127
|
# clear the public_attribute_names, protected_attribute_names
|
@@ -473,7 +483,8 @@ module ApiResource
|
|
473
483
|
end
|
474
484
|
|
475
485
|
def reload
|
476
|
-
|
486
|
+
remove_instance_variable(:@assoc_attributes) if instance_variable_defined?(:@assoc_attributes)
|
487
|
+
self.load(self.class.find(to_param, :params => @prefix_options).attributes_without_proxies)
|
477
488
|
end
|
478
489
|
|
479
490
|
def to_param
|
@@ -411,6 +411,35 @@ describe "Associations" do
|
|
411
411
|
end
|
412
412
|
|
413
413
|
end
|
414
|
+
|
415
|
+
it "should be able to reload a single-object association" do
|
416
|
+
ap = Associations::SingleObjectProxy.new("TestResource",{:service_uri => '/single_object_association', :active => {:active => true}, :scopes_only => true})
|
417
|
+
|
418
|
+
old_name = ap.name
|
419
|
+
|
420
|
+
str = "krdflkjsd"
|
421
|
+
|
422
|
+
ap.name = str
|
423
|
+
ap.name.should eql str
|
424
|
+
ap.reload
|
425
|
+
|
426
|
+
ap.name.should eql old_name
|
427
|
+
end
|
428
|
+
|
429
|
+
it "should be able to reload a multi-object association" do
|
430
|
+
ap = Associations::MultiObjectProxy.new("TestResource",{:service_uri => '/multi_object_association', :active => {:active => false}, :inactive => {:active => false}, :with_birthday => {:birthday => true}})
|
431
|
+
|
432
|
+
old_name = ap.first.name
|
433
|
+
|
434
|
+
str = "krdflkjsd"
|
435
|
+
|
436
|
+
ap.first.name = str
|
437
|
+
ap.first.name.should eql str
|
438
|
+
|
439
|
+
ap.reload
|
440
|
+
|
441
|
+
ap.first.name.should eql old_name
|
442
|
+
end
|
414
443
|
|
415
444
|
context "Multi Object" do
|
416
445
|
|
@@ -547,10 +576,22 @@ describe "Associations" do
|
|
547
576
|
tr.belongs_to_object.internal_object.should be_instance_of BelongsToObject
|
548
577
|
end
|
549
578
|
|
579
|
+
it "should be able to reload a single-object association" do
|
580
|
+
ApiResource::Associations::SingleObjectProxy.any_instance.stubs(:remote_path => "/has_one_objects")
|
581
|
+
HasOneObject.connection.stubs(:get => nil)
|
582
|
+
|
583
|
+
tr = TestResource.new()
|
584
|
+
|
585
|
+
tr.has_one_object = {:color => "Blue"}
|
586
|
+
|
587
|
+
tr.has_one_object.reload
|
588
|
+
|
589
|
+
tr.has_one_object.should be_blank
|
590
|
+
end
|
550
591
|
|
551
592
|
end
|
552
593
|
|
553
|
-
context "
|
594
|
+
context "Multi Object Association" do
|
554
595
|
before(:all) do
|
555
596
|
TestResource.has_many(:has_many_objects)
|
556
597
|
end
|
@@ -570,7 +611,17 @@ describe "Associations" do
|
|
570
611
|
tr.has_many_objects.internal_object.first.should be_instance_of HasManyObject
|
571
612
|
end
|
572
613
|
|
573
|
-
|
614
|
+
it "should be able to reload a multi-object association" do
|
615
|
+
ApiResource::Associations::MultiObjectProxy.any_instance.stubs(:remote_path => "/has_many_objects")
|
616
|
+
ApiResource::Connection.any_instance.stubs(:get => [])
|
617
|
+
|
618
|
+
tr = TestResource.new(:has_many_objects => [{:color => "blue"}])
|
619
|
+
|
620
|
+
tr.has_many_objects.reload
|
621
|
+
|
622
|
+
tr.has_many_objects.should be_blank
|
623
|
+
end
|
624
|
+
|
574
625
|
end
|
575
626
|
|
576
627
|
context "ActiveModel" do
|
data/spec/lib/attributes_spec.rb
CHANGED
@@ -51,6 +51,14 @@ describe "Attributes" do
|
|
51
51
|
tst.scope?(:active).should be_true
|
52
52
|
end
|
53
53
|
|
54
|
+
it "should provide attributes without proxies if attributes_without_proxies is called" do
|
55
|
+
tst = TestResource.new({:has_many_objects => []})
|
56
|
+
tst.attributes_without_proxies.each do |k,v|
|
57
|
+
[ApiResource::Associations::SingleObjectProxy, ApiResource::Associations::MultiObjectProxy]
|
58
|
+
.include?(v.class).should be_false
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
54
62
|
end
|
55
63
|
|
56
64
|
context "Attributes" do
|
data/spec/lib/base_spec.rb
CHANGED
@@ -549,6 +549,33 @@ describe "Base" do
|
|
549
549
|
tr = TestResource.new(:name => "Ethan")
|
550
550
|
tr.persisted?.should be_false
|
551
551
|
end
|
552
|
+
|
553
|
+
it "should know how to reload attributes" do
|
554
|
+
tr = TestResource.find(1)
|
555
|
+
|
556
|
+
tr.age = 47
|
557
|
+
tr.name = "Ethan"
|
558
|
+
|
559
|
+
tr.reload
|
560
|
+
|
561
|
+
tr.age.should eql "age"
|
562
|
+
tr.name.should eql "name"
|
563
|
+
end
|
564
|
+
|
565
|
+
it "should know how to reload associations" do
|
566
|
+
tr = TestResource.find(1)
|
567
|
+
|
568
|
+
tr.has_one_object.size = "small"
|
569
|
+
tr.has_many_objects.first.name = "Ethan"
|
570
|
+
|
571
|
+
tr.has_one_object.size.should eql "small"
|
572
|
+
tr.has_many_objects.first.name.should eql "Ethan"
|
573
|
+
|
574
|
+
tr.reload
|
575
|
+
|
576
|
+
tr.has_one_object.size.should eql "large"
|
577
|
+
tr.has_many_objects.first.name.should eql "name"
|
578
|
+
end
|
552
579
|
|
553
580
|
end
|
554
581
|
|
@@ -597,5 +624,21 @@ describe "Base" do
|
|
597
624
|
end
|
598
625
|
|
599
626
|
end
|
627
|
+
|
628
|
+
context ".respond_to?" do
|
629
|
+
|
630
|
+
it "should load the resouce definition when respond_to? is called" do
|
631
|
+
# remove our attribute that denotes that the definition was loaded
|
632
|
+
TestResource.send(:remove_instance_variable, :@class_data)
|
633
|
+
TestResource.expects(:set_class_attributes_upon_load)
|
634
|
+
TestResource.respond_to?(:test)
|
635
|
+
end
|
636
|
+
|
637
|
+
it "should not load the resource definition when respond_to? is called
|
638
|
+
if the definition has already been loaded"
|
639
|
+
|
640
|
+
end
|
641
|
+
|
642
|
+
|
600
643
|
|
601
644
|
end
|
@@ -11,4 +11,13 @@ end
|
|
11
11
|
|
12
12
|
HashDealer.define(:active_birthday_test_association_resource, :parent => :active_test_association_resource) do
|
13
13
|
birthday{Date.today}
|
14
|
+
end
|
15
|
+
|
16
|
+
HashDealer.define(:has_one_object) do
|
17
|
+
size("large")
|
18
|
+
color("blue")
|
19
|
+
end
|
20
|
+
|
21
|
+
HashDealer.define(:has_many_object) do
|
22
|
+
name("name")
|
14
23
|
end
|
@@ -25,6 +25,11 @@ HashDealer.define(:test_resource_with_roles) do
|
|
25
25
|
roles([])
|
26
26
|
end
|
27
27
|
|
28
|
+
HashDealer.define(:test_resource_with_proxies, :parent => :test_resource) do
|
29
|
+
has_one_object{HashDealer.roll(:has_one_object)}
|
30
|
+
has_many_objects{(0..4).to_a.collect{HashDealer.roll(:has_many_object)}}
|
31
|
+
end
|
32
|
+
|
28
33
|
HashDealer.define(:test_resource_errors) do
|
29
34
|
errors({
|
30
35
|
:name => ["can't be blank"],
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70140337780380 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: '3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '3'
|
24
|
+
version_requirements: *70140337780380
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: hash_dealer
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &70140337778740 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ! '>='
|
@@ -37,15 +32,10 @@ dependencies:
|
|
37
32
|
version: '0'
|
38
33
|
type: :runtime
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
35
|
+
version_requirements: *70140337778740
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: rest-client
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &70140337777260 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
41
|
- - ! '>='
|
@@ -53,15 +43,10 @@ dependencies:
|
|
53
43
|
version: '0'
|
54
44
|
type: :runtime
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
46
|
+
version_requirements: *70140337777260
|
62
47
|
- !ruby/object:Gem::Dependency
|
63
48
|
name: log4r
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &70140337776140 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
51
|
requirements:
|
67
52
|
- - ! '>='
|
@@ -69,15 +54,10 @@ dependencies:
|
|
69
54
|
version: '0'
|
70
55
|
type: :runtime
|
71
56
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ! '>='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
57
|
+
version_requirements: *70140337776140
|
78
58
|
- !ruby/object:Gem::Dependency
|
79
59
|
name: differ
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirement: &70140337774520 !ruby/object:Gem::Requirement
|
81
61
|
none: false
|
82
62
|
requirements:
|
83
63
|
- - ! '>='
|
@@ -85,15 +65,10 @@ dependencies:
|
|
85
65
|
version: '0'
|
86
66
|
type: :runtime
|
87
67
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
68
|
+
version_requirements: *70140337774520
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
70
|
name: colorize
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirement: &70140337772480 !ruby/object:Gem::Requirement
|
97
72
|
none: false
|
98
73
|
requirements:
|
99
74
|
- - ! '>='
|
@@ -101,15 +76,10 @@ dependencies:
|
|
101
76
|
version: '0'
|
102
77
|
type: :runtime
|
103
78
|
prerelease: false
|
104
|
-
version_requirements:
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
79
|
+
version_requirements: *70140337772480
|
110
80
|
- !ruby/object:Gem::Dependency
|
111
81
|
name: json
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
82
|
+
requirement: &70140337771460 !ruby/object:Gem::Requirement
|
113
83
|
none: false
|
114
84
|
requirements:
|
115
85
|
- - ! '>='
|
@@ -117,15 +87,10 @@ dependencies:
|
|
117
87
|
version: '0'
|
118
88
|
type: :runtime
|
119
89
|
prerelease: false
|
120
|
-
version_requirements:
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ! '>='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
90
|
+
version_requirements: *70140337771460
|
126
91
|
- !ruby/object:Gem::Dependency
|
127
92
|
name: pry
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirement: &70140337767900 !ruby/object:Gem::Requirement
|
129
94
|
none: false
|
130
95
|
requirements:
|
131
96
|
- - ! '>='
|
@@ -133,15 +98,10 @@ dependencies:
|
|
133
98
|
version: '0'
|
134
99
|
type: :development
|
135
100
|
prerelease: false
|
136
|
-
version_requirements:
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ! '>='
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '0'
|
101
|
+
version_requirements: *70140337767900
|
142
102
|
- !ruby/object:Gem::Dependency
|
143
103
|
name: pry-doc
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirement: &70140337763860 !ruby/object:Gem::Requirement
|
145
105
|
none: false
|
146
106
|
requirements:
|
147
107
|
- - ! '>='
|
@@ -149,15 +109,10 @@ dependencies:
|
|
149
109
|
version: '0'
|
150
110
|
type: :development
|
151
111
|
prerelease: false
|
152
|
-
version_requirements:
|
153
|
-
none: false
|
154
|
-
requirements:
|
155
|
-
- - ! '>='
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '0'
|
112
|
+
version_requirements: *70140337763860
|
158
113
|
- !ruby/object:Gem::Dependency
|
159
114
|
name: pry-nav
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirement: &70140337760840 !ruby/object:Gem::Requirement
|
161
116
|
none: false
|
162
117
|
requirements:
|
163
118
|
- - ! '>='
|
@@ -165,15 +120,10 @@ dependencies:
|
|
165
120
|
version: '0'
|
166
121
|
type: :development
|
167
122
|
prerelease: false
|
168
|
-
version_requirements:
|
169
|
-
none: false
|
170
|
-
requirements:
|
171
|
-
- - ! '>='
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
123
|
+
version_requirements: *70140337760840
|
174
124
|
- !ruby/object:Gem::Dependency
|
175
125
|
name: rspec
|
176
|
-
requirement: !ruby/object:Gem::Requirement
|
126
|
+
requirement: &70140337739640 !ruby/object:Gem::Requirement
|
177
127
|
none: false
|
178
128
|
requirements:
|
179
129
|
- - ! '>='
|
@@ -181,15 +131,10 @@ dependencies:
|
|
181
131
|
version: '0'
|
182
132
|
type: :development
|
183
133
|
prerelease: false
|
184
|
-
version_requirements:
|
185
|
-
none: false
|
186
|
-
requirements:
|
187
|
-
- - ! '>='
|
188
|
-
- !ruby/object:Gem::Version
|
189
|
-
version: '0'
|
134
|
+
version_requirements: *70140337739640
|
190
135
|
- !ruby/object:Gem::Dependency
|
191
136
|
name: ruby-debug19
|
192
|
-
requirement: !ruby/object:Gem::Requirement
|
137
|
+
requirement: &70140337737220 !ruby/object:Gem::Requirement
|
193
138
|
none: false
|
194
139
|
requirements:
|
195
140
|
- - ! '>='
|
@@ -197,15 +142,10 @@ dependencies:
|
|
197
142
|
version: '0'
|
198
143
|
type: :development
|
199
144
|
prerelease: false
|
200
|
-
version_requirements:
|
201
|
-
none: false
|
202
|
-
requirements:
|
203
|
-
- - ! '>='
|
204
|
-
- !ruby/object:Gem::Version
|
205
|
-
version: '0'
|
145
|
+
version_requirements: *70140337737220
|
206
146
|
- !ruby/object:Gem::Dependency
|
207
147
|
name: growl
|
208
|
-
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirement: &70140337735220 !ruby/object:Gem::Requirement
|
209
149
|
none: false
|
210
150
|
requirements:
|
211
151
|
- - ! '>='
|
@@ -213,15 +153,10 @@ dependencies:
|
|
213
153
|
version: '0'
|
214
154
|
type: :development
|
215
155
|
prerelease: false
|
216
|
-
version_requirements:
|
217
|
-
none: false
|
218
|
-
requirements:
|
219
|
-
- - ! '>='
|
220
|
-
- !ruby/object:Gem::Version
|
221
|
-
version: '0'
|
156
|
+
version_requirements: *70140337735220
|
222
157
|
- !ruby/object:Gem::Dependency
|
223
158
|
name: rspec-rails
|
224
|
-
requirement: !ruby/object:Gem::Requirement
|
159
|
+
requirement: &70140337733580 !ruby/object:Gem::Requirement
|
225
160
|
none: false
|
226
161
|
requirements:
|
227
162
|
- - ! '>='
|
@@ -229,15 +164,10 @@ dependencies:
|
|
229
164
|
version: '0'
|
230
165
|
type: :development
|
231
166
|
prerelease: false
|
232
|
-
version_requirements:
|
233
|
-
none: false
|
234
|
-
requirements:
|
235
|
-
- - ! '>='
|
236
|
-
- !ruby/object:Gem::Version
|
237
|
-
version: '0'
|
167
|
+
version_requirements: *70140337733580
|
238
168
|
- !ruby/object:Gem::Dependency
|
239
169
|
name: factory_girl
|
240
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirement: &70140337732020 !ruby/object:Gem::Requirement
|
241
171
|
none: false
|
242
172
|
requirements:
|
243
173
|
- - ! '>='
|
@@ -245,15 +175,10 @@ dependencies:
|
|
245
175
|
version: '0'
|
246
176
|
type: :development
|
247
177
|
prerelease: false
|
248
|
-
version_requirements:
|
249
|
-
none: false
|
250
|
-
requirements:
|
251
|
-
- - ! '>='
|
252
|
-
- !ruby/object:Gem::Version
|
253
|
-
version: '0'
|
178
|
+
version_requirements: *70140337732020
|
254
179
|
- !ruby/object:Gem::Dependency
|
255
180
|
name: simplecov
|
256
|
-
requirement: !ruby/object:Gem::Requirement
|
181
|
+
requirement: &70140337730580 !ruby/object:Gem::Requirement
|
257
182
|
none: false
|
258
183
|
requirements:
|
259
184
|
- - ! '>='
|
@@ -261,15 +186,10 @@ dependencies:
|
|
261
186
|
version: '0'
|
262
187
|
type: :development
|
263
188
|
prerelease: false
|
264
|
-
version_requirements:
|
265
|
-
none: false
|
266
|
-
requirements:
|
267
|
-
- - ! '>='
|
268
|
-
- !ruby/object:Gem::Version
|
269
|
-
version: '0'
|
189
|
+
version_requirements: *70140337730580
|
270
190
|
- !ruby/object:Gem::Dependency
|
271
191
|
name: faker
|
272
|
-
requirement: !ruby/object:Gem::Requirement
|
192
|
+
requirement: &70140337729080 !ruby/object:Gem::Requirement
|
273
193
|
none: false
|
274
194
|
requirements:
|
275
195
|
- - ! '>='
|
@@ -277,15 +197,10 @@ dependencies:
|
|
277
197
|
version: '0'
|
278
198
|
type: :development
|
279
199
|
prerelease: false
|
280
|
-
version_requirements:
|
281
|
-
none: false
|
282
|
-
requirements:
|
283
|
-
- - ! '>='
|
284
|
-
- !ruby/object:Gem::Version
|
285
|
-
version: '0'
|
200
|
+
version_requirements: *70140337729080
|
286
201
|
- !ruby/object:Gem::Dependency
|
287
202
|
name: guard-bundler
|
288
|
-
requirement: !ruby/object:Gem::Requirement
|
203
|
+
requirement: &70140337726760 !ruby/object:Gem::Requirement
|
289
204
|
none: false
|
290
205
|
requirements:
|
291
206
|
- - ! '>='
|
@@ -293,15 +208,10 @@ dependencies:
|
|
293
208
|
version: '0'
|
294
209
|
type: :development
|
295
210
|
prerelease: false
|
296
|
-
version_requirements:
|
297
|
-
none: false
|
298
|
-
requirements:
|
299
|
-
- - ! '>='
|
300
|
-
- !ruby/object:Gem::Version
|
301
|
-
version: '0'
|
211
|
+
version_requirements: *70140337726760
|
302
212
|
- !ruby/object:Gem::Dependency
|
303
213
|
name: guard-rspec
|
304
|
-
requirement: !ruby/object:Gem::Requirement
|
214
|
+
requirement: &70140337716360 !ruby/object:Gem::Requirement
|
305
215
|
none: false
|
306
216
|
requirements:
|
307
217
|
- - ! '>='
|
@@ -309,15 +219,10 @@ dependencies:
|
|
309
219
|
version: '0'
|
310
220
|
type: :development
|
311
221
|
prerelease: false
|
312
|
-
version_requirements:
|
313
|
-
none: false
|
314
|
-
requirements:
|
315
|
-
- - ! '>='
|
316
|
-
- !ruby/object:Gem::Version
|
317
|
-
version: '0'
|
222
|
+
version_requirements: *70140337716360
|
318
223
|
- !ruby/object:Gem::Dependency
|
319
224
|
name: guard-spork
|
320
|
-
requirement: !ruby/object:Gem::Requirement
|
225
|
+
requirement: &70140337713780 !ruby/object:Gem::Requirement
|
321
226
|
none: false
|
322
227
|
requirements:
|
323
228
|
- - ! '>='
|
@@ -325,15 +230,10 @@ dependencies:
|
|
325
230
|
version: '0'
|
326
231
|
type: :development
|
327
232
|
prerelease: false
|
328
|
-
version_requirements:
|
329
|
-
none: false
|
330
|
-
requirements:
|
331
|
-
- - ! '>='
|
332
|
-
- !ruby/object:Gem::Version
|
333
|
-
version: '0'
|
233
|
+
version_requirements: *70140337713780
|
334
234
|
- !ruby/object:Gem::Dependency
|
335
235
|
name: mocha
|
336
|
-
requirement: !ruby/object:Gem::Requirement
|
236
|
+
requirement: &70140337711860 !ruby/object:Gem::Requirement
|
337
237
|
none: false
|
338
238
|
requirements:
|
339
239
|
- - ! '>='
|
@@ -341,15 +241,10 @@ dependencies:
|
|
341
241
|
version: '0'
|
342
242
|
type: :development
|
343
243
|
prerelease: false
|
344
|
-
version_requirements:
|
345
|
-
none: false
|
346
|
-
requirements:
|
347
|
-
- - ! '>='
|
348
|
-
- !ruby/object:Gem::Version
|
349
|
-
version: '0'
|
244
|
+
version_requirements: *70140337711860
|
350
245
|
- !ruby/object:Gem::Dependency
|
351
246
|
name: bundler
|
352
|
-
requirement: !ruby/object:Gem::Requirement
|
247
|
+
requirement: &70140337710340 !ruby/object:Gem::Requirement
|
353
248
|
none: false
|
354
249
|
requirements:
|
355
250
|
- - ! '>='
|
@@ -357,15 +252,10 @@ dependencies:
|
|
357
252
|
version: '0'
|
358
253
|
type: :development
|
359
254
|
prerelease: false
|
360
|
-
version_requirements:
|
361
|
-
none: false
|
362
|
-
requirements:
|
363
|
-
- - ! '>='
|
364
|
-
- !ruby/object:Gem::Version
|
365
|
-
version: '0'
|
255
|
+
version_requirements: *70140337710340
|
366
256
|
- !ruby/object:Gem::Dependency
|
367
257
|
name: jeweler
|
368
|
-
requirement: !ruby/object:Gem::Requirement
|
258
|
+
requirement: &70140337702880 !ruby/object:Gem::Requirement
|
369
259
|
none: false
|
370
260
|
requirements:
|
371
261
|
- - ~>
|
@@ -373,15 +263,10 @@ dependencies:
|
|
373
263
|
version: 1.6.4
|
374
264
|
type: :development
|
375
265
|
prerelease: false
|
376
|
-
version_requirements:
|
377
|
-
none: false
|
378
|
-
requirements:
|
379
|
-
- - ~>
|
380
|
-
- !ruby/object:Gem::Version
|
381
|
-
version: 1.6.4
|
266
|
+
version_requirements: *70140337702880
|
382
267
|
- !ruby/object:Gem::Dependency
|
383
268
|
name: activerecord
|
384
|
-
requirement: !ruby/object:Gem::Requirement
|
269
|
+
requirement: &70140337701600 !ruby/object:Gem::Requirement
|
385
270
|
none: false
|
386
271
|
requirements:
|
387
272
|
- - ~>
|
@@ -389,15 +274,10 @@ dependencies:
|
|
389
274
|
version: '3'
|
390
275
|
type: :development
|
391
276
|
prerelease: false
|
392
|
-
version_requirements:
|
393
|
-
none: false
|
394
|
-
requirements:
|
395
|
-
- - ~>
|
396
|
-
- !ruby/object:Gem::Version
|
397
|
-
version: '3'
|
277
|
+
version_requirements: *70140337701600
|
398
278
|
- !ruby/object:Gem::Dependency
|
399
279
|
name: sqlite3
|
400
|
-
requirement: !ruby/object:Gem::Requirement
|
280
|
+
requirement: &70140337700580 !ruby/object:Gem::Requirement
|
401
281
|
none: false
|
402
282
|
requirements:
|
403
283
|
- - ! '>='
|
@@ -405,12 +285,7 @@ dependencies:
|
|
405
285
|
version: '0'
|
406
286
|
type: :development
|
407
287
|
prerelease: false
|
408
|
-
version_requirements:
|
409
|
-
none: false
|
410
|
-
requirements:
|
411
|
-
- - ! '>='
|
412
|
-
- !ruby/object:Gem::Version
|
413
|
-
version: '0'
|
288
|
+
version_requirements: *70140337700580
|
414
289
|
description: A replacement for ActiveResource for RESTful APIs that handles associated
|
415
290
|
object and multiple data sources
|
416
291
|
email: ejl6266@gmail.com
|
@@ -497,7 +372,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
497
372
|
version: '0'
|
498
373
|
segments:
|
499
374
|
- 0
|
500
|
-
hash:
|
375
|
+
hash: -1273974691501291187
|
501
376
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
502
377
|
none: false
|
503
378
|
requirements:
|
@@ -506,7 +381,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
506
381
|
version: '0'
|
507
382
|
requirements: []
|
508
383
|
rubyforge_project:
|
509
|
-
rubygems_version: 1.8.
|
384
|
+
rubygems_version: 1.8.17
|
510
385
|
signing_key:
|
511
386
|
specification_version: 3
|
512
387
|
summary: A replacement for ActiveResource for RESTful APIs that handles associated
|