api_resource 0.2.2 → 0.2.3
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 +8 -8
- data/lib/api_resource/associations/association_proxy.rb +6 -12
- data/lib/api_resource/associations/multi_object_proxy.rb +5 -4
- data/lib/api_resource/associations/relation_scope.rb +0 -7
- data/lib/api_resource/associations/scope.rb +4 -2
- data/lib/api_resource/associations/single_object_proxy.rb +3 -4
- data/spec/lib/associations_spec.rb +0 -12
- metadata +165 -163
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.3
|
data/api_resource.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.2.
|
7
|
+
s.name = "api_resource"
|
8
|
+
s.version = "0.2.3"
|
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 =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
12
|
+
s.date = "2012-01-08"
|
13
|
+
s.description = "A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources"
|
14
|
+
s.email = "ejl6266@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.rdoc"
|
@@ -76,11 +76,11 @@ Gem::Specification.new do |s|
|
|
76
76
|
"spec/support/requests/test_resource_requests.rb",
|
77
77
|
"spec/support/test_resource.rb"
|
78
78
|
]
|
79
|
-
s.homepage =
|
79
|
+
s.homepage = "http://github.com/ejlangev/resource"
|
80
80
|
s.licenses = ["MIT"]
|
81
81
|
s.require_paths = ["lib"]
|
82
|
-
s.rubygems_version =
|
83
|
-
s.summary =
|
82
|
+
s.rubygems_version = "1.8.11"
|
83
|
+
s.summary = "A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources"
|
84
84
|
|
85
85
|
if s.respond_to? :specification_version then
|
86
86
|
s.specification_version = 3
|
@@ -3,7 +3,8 @@ module ApiResource
|
|
3
3
|
module Associations
|
4
4
|
|
5
5
|
class AssociationProxy
|
6
|
-
|
6
|
+
|
7
|
+
|
7
8
|
cattr_accessor :remote_path_element; self.remote_path_element = :service_uri
|
8
9
|
cattr_accessor :include_class_scopes; self.include_class_scopes = true
|
9
10
|
|
@@ -23,9 +24,10 @@ module ApiResource
|
|
23
24
|
end
|
24
25
|
# Now that we have set up all the scopes with the load method we need to create methods
|
25
26
|
self.scopes.each do |key, _|
|
27
|
+
next if self.respond_to?(key)
|
26
28
|
self.instance_eval <<-EOE, __FILE__, __LINE__ + 1
|
27
29
|
def #{key}(opts = {})
|
28
|
-
ApiResource::Associations::RelationScope.new(self, :#{key}, opts)
|
30
|
+
@#{key} ||= ApiResource::Associations::RelationScope.new(self, :#{key}, opts)
|
29
31
|
end
|
30
32
|
EOE
|
31
33
|
end
|
@@ -56,16 +58,8 @@ module ApiResource
|
|
56
58
|
self.internal_object.send(method, *args, &block)
|
57
59
|
end
|
58
60
|
|
59
|
-
def reload
|
60
|
-
if
|
61
|
-
self.loaded.clear
|
62
|
-
self.times_loaded = 0
|
63
|
-
# Remove the loaded object to force it to reload
|
64
|
-
remove_instance_variable(:@internal_object) if instance_variable_defined?(:@internal_object)
|
65
|
-
else
|
66
|
-
# Delete this key from the loaded hash which will cause it to be reloaded
|
67
|
-
self.loaded.delete(self.loaded_hash_key(scope, opts))
|
68
|
-
end
|
61
|
+
def reload
|
62
|
+
remove_instance_variable(:@internal_object) if instance_variable_defined?(:@internal_object)
|
69
63
|
self
|
70
64
|
end
|
71
65
|
|
@@ -34,11 +34,12 @@ module ApiResource
|
|
34
34
|
def load_scope_with_options(scope, options)
|
35
35
|
scope = self.loaded_hash_key(scope.to_s, options)
|
36
36
|
return [] if self.remote_path.blank?
|
37
|
-
|
37
|
+
|
38
|
+
self.loaded[scope] ||= begin
|
38
39
|
self.times_loaded += 1
|
39
|
-
self.
|
40
|
+
self.load_from_remote(options).collect{|item| self.klass.new(item)}
|
40
41
|
end
|
41
|
-
|
42
|
+
|
42
43
|
end
|
43
44
|
|
44
45
|
def load(contents)
|
@@ -57,7 +58,7 @@ module ApiResource
|
|
57
58
|
raise "Expected the scope #{key} to point to a hash, to #{value}" unless value.is_a?(Hash)
|
58
59
|
self.instance_eval <<-EOE, __FILE__, __LINE__ + 1
|
59
60
|
def #{key}(opts = {})
|
60
|
-
ApiResource::Associations::RelationScope.new(self, :#{key}, opts)
|
61
|
+
@#{key} ||= ApiResource::Associations::RelationScope.new(self, :#{key}, opts)
|
61
62
|
end
|
62
63
|
EOE
|
63
64
|
self.scopes[key.to_s] = value
|
@@ -6,17 +6,10 @@ module ApiResource
|
|
6
6
|
|
7
7
|
class RelationScope < Scope
|
8
8
|
|
9
|
-
def reload
|
10
|
-
remove_instance_variable(:@internal_object) if instance_variable_defined?(:@internal_object)
|
11
|
-
self.klass.reload(self.current_scope, self.scopes[self.current_scope])
|
12
|
-
self
|
13
|
-
end
|
14
|
-
|
15
9
|
# Use this method to access the internal data, this guarantees that loading only occurs once per object
|
16
10
|
def internal_object
|
17
11
|
@internal_object ||= self.klass.send(:load_scope_with_options, self.current_scope, self.to_hash)
|
18
12
|
end
|
19
|
-
|
20
13
|
#
|
21
14
|
# class factory
|
22
15
|
def self.class_factory(hsh)
|
@@ -93,8 +93,10 @@ module ApiResource
|
|
93
93
|
end
|
94
94
|
def enhance_current_scope(scp, *args)
|
95
95
|
opts = args.extract_options!
|
96
|
-
check_scope(scp)
|
97
|
-
|
96
|
+
check_scope(scp)
|
97
|
+
cache_key = "a#{Digest::MD5.hexdigest((args.sort + [scp]).to_s)}"
|
98
|
+
return instance_variable_get("@#{cache_key}") if instance_variable_defined?("@#{cache_key}")
|
99
|
+
return instance_variable_set("@#{cache_key}", self.class.class_factory(self.scopes[scp]).new(self.klass, scp, *args, opts.merge(:parent => self)))
|
98
100
|
end
|
99
101
|
# make sure we have a valid scope
|
100
102
|
def check_scope(scp)
|
@@ -30,11 +30,10 @@ module ApiResource
|
|
30
30
|
scope = self.loaded_hash_key(scope.to_s, options)
|
31
31
|
# If the service uri is blank you can't load
|
32
32
|
return nil if self.remote_path.blank?
|
33
|
-
|
33
|
+
self.loaded[scope] ||= begin
|
34
34
|
self.times_loaded += 1
|
35
|
-
self.
|
35
|
+
self.klass.new(self.load_from_remote(options))
|
36
36
|
end
|
37
|
-
self.klass.new(self.loaded[scope])
|
38
37
|
end
|
39
38
|
|
40
39
|
def load(contents)
|
@@ -65,7 +64,7 @@ module ApiResource
|
|
65
64
|
raise "Expected the scope #{key} to have a hash for a value, got #{val}" unless val.is_a?(Hash)
|
66
65
|
self.instance_eval <<-EOE, __FILE__, __LINE__ + 1
|
67
66
|
def #{key}(opts = {})
|
68
|
-
ApiResource::Associations::RelationScope.new(self, :#{key}, opts)
|
67
|
+
@#{key} ||= ApiResource::Associations::RelationScope.new(self, :#{key}, opts)
|
69
68
|
end
|
70
69
|
EOE
|
71
70
|
self.scopes[key.to_s] = val
|
@@ -374,18 +374,6 @@ describe "Associations" do
|
|
374
374
|
ap.active.with_birthday.birthday.should_not be_blank
|
375
375
|
end
|
376
376
|
|
377
|
-
it "should be able to load a chain of scopes with substitution" do
|
378
|
-
ap = Associations::SingleObjectProxy.new("TestResource",{:service_uri => '/single_object_association', :active => {:active => false}, :with_birthday => {:birthday => true}, :scopes_only => true})
|
379
|
-
item = ap.active(:active => true).internal_object
|
380
|
-
item.active.should be_true
|
381
|
-
ap.times_loaded.should eql(1)
|
382
|
-
# This error and incrementing times_loaded means it tried to load again
|
383
|
-
lambda {
|
384
|
-
ap.active.internal_object
|
385
|
-
}.should raise_error
|
386
|
-
ap.times_loaded.should eql(2)
|
387
|
-
end
|
388
|
-
|
389
377
|
it "should proxy unknown methods to the object loading if it hasn't already" do
|
390
378
|
ap = Associations::SingleObjectProxy.new("TestResource",{:service_uri => '/single_object_association', :active => {:active => false}, :with_birthday => {:birthday => true}, :scopes_only => true})
|
391
379
|
ap.times_loaded.should eql(0)
|
metadata
CHANGED
@@ -1,246 +1,247 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: api_resource
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.2
|
3
|
+
version: !ruby/object:Gem::Version
|
5
4
|
prerelease:
|
5
|
+
version: 0.2.3
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Ethan Langevin
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
|
13
|
+
date: 2012-01-08 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
|
-
requirement: &
|
17
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
|
-
requirements:
|
20
|
-
- - =
|
21
|
-
- !ruby/object:Gem::Version
|
19
|
+
requirements:
|
20
|
+
- - "="
|
21
|
+
- !ruby/object:Gem::Version
|
22
22
|
version: 3.0.9
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
26
|
-
- !ruby/object:Gem::Dependency
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
27
|
name: hash_dealer
|
28
|
-
requirement: &
|
28
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
|
-
requirements:
|
31
|
-
- -
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version:
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
37
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
38
|
name: rest-client
|
39
|
-
requirement: &
|
39
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version:
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: "0"
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
48
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
49
|
name: log4r
|
50
|
-
requirement: &
|
50
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
|
-
requirements:
|
53
|
-
- -
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version:
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: "0"
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
59
|
-
- !ruby/object:Gem::Dependency
|
58
|
+
version_requirements: *id004
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
60
|
name: differ
|
61
|
-
requirement: &
|
61
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
|
-
requirements:
|
64
|
-
- -
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version:
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: "0"
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
70
|
-
- !ruby/object:Gem::Dependency
|
69
|
+
version_requirements: *id005
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
71
|
name: colorize
|
72
|
-
requirement: &
|
72
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version:
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: "0"
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
81
|
-
- !ruby/object:Gem::Dependency
|
80
|
+
version_requirements: *id006
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
82
|
name: rspec
|
83
|
-
requirement: &
|
83
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
|
-
requirements:
|
86
|
-
- -
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version:
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: "0"
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
92
|
-
- !ruby/object:Gem::Dependency
|
91
|
+
version_requirements: *id007
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
93
|
name: ruby-debug19
|
94
|
-
requirement: &
|
94
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
|
-
requirements:
|
97
|
-
- -
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version:
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: "0"
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
103
|
-
- !ruby/object:Gem::Dependency
|
102
|
+
version_requirements: *id008
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
104
|
name: growl
|
105
|
-
requirement: &
|
105
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
|
-
requirements:
|
108
|
-
- -
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version:
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: "0"
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
114
|
-
- !ruby/object:Gem::Dependency
|
113
|
+
version_requirements: *id009
|
114
|
+
- !ruby/object:Gem::Dependency
|
115
115
|
name: rspec-rails
|
116
|
-
requirement: &
|
116
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
|
-
requirements:
|
119
|
-
- -
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version:
|
118
|
+
requirements:
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: "0"
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
125
|
-
- !ruby/object:Gem::Dependency
|
124
|
+
version_requirements: *id010
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
126
|
name: factory_girl
|
127
|
-
requirement: &
|
127
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
|
-
requirements:
|
130
|
-
- -
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version:
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: "0"
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
|
-
version_requirements: *
|
136
|
-
- !ruby/object:Gem::Dependency
|
135
|
+
version_requirements: *id011
|
136
|
+
- !ruby/object:Gem::Dependency
|
137
137
|
name: simplecov
|
138
|
-
requirement: &
|
138
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version:
|
140
|
+
requirements:
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: "0"
|
144
144
|
type: :development
|
145
145
|
prerelease: false
|
146
|
-
version_requirements: *
|
147
|
-
- !ruby/object:Gem::Dependency
|
146
|
+
version_requirements: *id012
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
148
|
name: faker
|
149
|
-
requirement: &
|
149
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
150
150
|
none: false
|
151
|
-
requirements:
|
152
|
-
- -
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
version:
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: "0"
|
155
155
|
type: :development
|
156
156
|
prerelease: false
|
157
|
-
version_requirements: *
|
158
|
-
- !ruby/object:Gem::Dependency
|
157
|
+
version_requirements: *id013
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
159
|
name: guard
|
160
|
-
requirement: &
|
160
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
161
161
|
none: false
|
162
|
-
requirements:
|
163
|
-
- -
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version:
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: "0"
|
166
166
|
type: :development
|
167
167
|
prerelease: false
|
168
|
-
version_requirements: *
|
169
|
-
- !ruby/object:Gem::Dependency
|
168
|
+
version_requirements: *id014
|
169
|
+
- !ruby/object:Gem::Dependency
|
170
170
|
name: guard-rspec
|
171
|
-
requirement: &
|
171
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
172
172
|
none: false
|
173
|
-
requirements:
|
174
|
-
- -
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version:
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: "0"
|
177
177
|
type: :development
|
178
178
|
prerelease: false
|
179
|
-
version_requirements: *
|
180
|
-
- !ruby/object:Gem::Dependency
|
179
|
+
version_requirements: *id015
|
180
|
+
- !ruby/object:Gem::Dependency
|
181
181
|
name: mocha
|
182
|
-
requirement: &
|
182
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
183
183
|
none: false
|
184
|
-
requirements:
|
185
|
-
- -
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version:
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: "0"
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
|
-
version_requirements: *
|
191
|
-
- !ruby/object:Gem::Dependency
|
190
|
+
version_requirements: *id016
|
191
|
+
- !ruby/object:Gem::Dependency
|
192
192
|
name: bundler
|
193
|
-
requirement: &
|
193
|
+
requirement: &id017 !ruby/object:Gem::Requirement
|
194
194
|
none: false
|
195
|
-
requirements:
|
195
|
+
requirements:
|
196
196
|
- - ~>
|
197
|
-
- !ruby/object:Gem::Version
|
197
|
+
- !ruby/object:Gem::Version
|
198
198
|
version: 1.0.0
|
199
199
|
type: :development
|
200
200
|
prerelease: false
|
201
|
-
version_requirements: *
|
202
|
-
- !ruby/object:Gem::Dependency
|
201
|
+
version_requirements: *id017
|
202
|
+
- !ruby/object:Gem::Dependency
|
203
203
|
name: jeweler
|
204
|
-
requirement: &
|
204
|
+
requirement: &id018 !ruby/object:Gem::Requirement
|
205
205
|
none: false
|
206
|
-
requirements:
|
206
|
+
requirements:
|
207
207
|
- - ~>
|
208
|
-
- !ruby/object:Gem::Version
|
208
|
+
- !ruby/object:Gem::Version
|
209
209
|
version: 1.6.4
|
210
210
|
type: :development
|
211
211
|
prerelease: false
|
212
|
-
version_requirements: *
|
213
|
-
- !ruby/object:Gem::Dependency
|
212
|
+
version_requirements: *id018
|
213
|
+
- !ruby/object:Gem::Dependency
|
214
214
|
name: activerecord
|
215
|
-
requirement: &
|
215
|
+
requirement: &id019 !ruby/object:Gem::Requirement
|
216
216
|
none: false
|
217
|
-
requirements:
|
218
|
-
- - =
|
219
|
-
- !ruby/object:Gem::Version
|
217
|
+
requirements:
|
218
|
+
- - "="
|
219
|
+
- !ruby/object:Gem::Version
|
220
220
|
version: 3.0.9
|
221
221
|
type: :development
|
222
222
|
prerelease: false
|
223
|
-
version_requirements: *
|
224
|
-
- !ruby/object:Gem::Dependency
|
223
|
+
version_requirements: *id019
|
224
|
+
- !ruby/object:Gem::Dependency
|
225
225
|
name: sqlite3
|
226
|
-
requirement: &
|
226
|
+
requirement: &id020 !ruby/object:Gem::Requirement
|
227
227
|
none: false
|
228
|
-
requirements:
|
229
|
-
- -
|
230
|
-
- !ruby/object:Gem::Version
|
231
|
-
version:
|
228
|
+
requirements:
|
229
|
+
- - ">="
|
230
|
+
- !ruby/object:Gem::Version
|
231
|
+
version: "0"
|
232
232
|
type: :development
|
233
233
|
prerelease: false
|
234
|
-
version_requirements: *
|
235
|
-
description: A replacement for ActiveResource for RESTful APIs that handles associated
|
236
|
-
object and multiple data sources
|
234
|
+
version_requirements: *id020
|
235
|
+
description: A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources
|
237
236
|
email: ejl6266@gmail.com
|
238
237
|
executables: []
|
238
|
+
|
239
239
|
extensions: []
|
240
|
-
|
240
|
+
|
241
|
+
extra_rdoc_files:
|
241
242
|
- LICENSE.txt
|
242
243
|
- README.rdoc
|
243
|
-
files:
|
244
|
+
files:
|
244
245
|
- .document
|
245
246
|
- .rspec
|
246
247
|
- Gemfile
|
@@ -299,34 +300,35 @@ files:
|
|
299
300
|
- spec/support/requests/error_resource_requests.rb
|
300
301
|
- spec/support/requests/test_resource_requests.rb
|
301
302
|
- spec/support/test_resource.rb
|
302
|
-
has_rdoc: true
|
303
303
|
homepage: http://github.com/ejlangev/resource
|
304
|
-
licenses:
|
304
|
+
licenses:
|
305
305
|
- MIT
|
306
306
|
post_install_message:
|
307
307
|
rdoc_options: []
|
308
|
-
|
308
|
+
|
309
|
+
require_paths:
|
309
310
|
- lib
|
310
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
311
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
311
312
|
none: false
|
312
|
-
requirements:
|
313
|
-
- -
|
314
|
-
- !ruby/object:Gem::Version
|
315
|
-
|
316
|
-
segments:
|
313
|
+
requirements:
|
314
|
+
- - ">="
|
315
|
+
- !ruby/object:Gem::Version
|
316
|
+
hash: 4425739189866565812
|
317
|
+
segments:
|
317
318
|
- 0
|
318
|
-
|
319
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
319
|
+
version: "0"
|
320
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
320
321
|
none: false
|
321
|
-
requirements:
|
322
|
-
- -
|
323
|
-
- !ruby/object:Gem::Version
|
324
|
-
version:
|
322
|
+
requirements:
|
323
|
+
- - ">="
|
324
|
+
- !ruby/object:Gem::Version
|
325
|
+
version: "0"
|
325
326
|
requirements: []
|
327
|
+
|
326
328
|
rubyforge_project:
|
327
|
-
rubygems_version: 1.
|
329
|
+
rubygems_version: 1.8.11
|
328
330
|
signing_key:
|
329
331
|
specification_version: 3
|
330
|
-
summary: A replacement for ActiveResource for RESTful APIs that handles associated
|
331
|
-
object and multiple data sources
|
332
|
+
summary: A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources
|
332
333
|
test_files: []
|
334
|
+
|