api-resource 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b1d4f68c73b748e9e373a849b509537713de2624
4
- data.tar.gz: e1ac6d02449dcf72d0aab6ddb1b1276e66db2a4d
3
+ metadata.gz: ccfd8a47727dc34572b2a7e21a365845b8cdc7da
4
+ data.tar.gz: 902d4b27a357406e429e91bce3ac3b615f38e2d5
5
5
  SHA512:
6
- metadata.gz: fa6f6092e53d70a3c385e005282ad2a52956c751df71e5fbbe88e15f2ae408e15b600643d2cf740e74b12369ee82ed8abead2e0fe6d16bc3159ef615d32f894a
7
- data.tar.gz: 7b107025be8b7168ce697870b1fb313b1de11da396ec979acfc5dd55680d29df254c8c8daf3b5f9a736f41477f9e50ec0186f5cc43400fb2cd2fe83f90979387
6
+ metadata.gz: 4630ec401fdf47c349a6a1284a8c091d59e8601a8d27c1932a5535743263d763a570dee18d2f8047a49ba031a5177988caf2de5e19314af13fa05e642004c301
7
+ data.tar.gz: cb324ec9e9dee294d0d52939cccdee454961c4be0d5b3f8dbb0e329f4a0a29529c383224fbc21a0c9bb62355a36e99bcb1110082658f92ffcc1cbdb5e0fab15d
@@ -89,6 +89,11 @@ module ApiResource
89
89
  create_resource_collection(result)
90
90
  end
91
91
 
92
+ def self.destroy!(id)
93
+ client(:delete, params, resource_path, id)
94
+ self
95
+ end
96
+
92
97
  def save!(options={})
93
98
  submit_resource(resource_path, true, options[:id_attr])
94
99
  self
@@ -161,9 +166,14 @@ module ApiResource
161
166
  def self.method_missing(m, *args, &_)
162
167
  case (m)
163
168
  when /^by_(.+)/
164
- resource_path = build_path($1.pluralize, args[0], self.resource_path)
169
+ my_resource_path = build_path($1.pluralize, args[0], self.resource_path)
170
+ my_model_name = self.model_name
165
171
  Class.new(self) do
166
- self.resource_path = resource_path
172
+ self.resource_path = my_resource_path
173
+ @model_name = my_model_name
174
+ def self.model_name
175
+ @model_name
176
+ end
167
177
  end
168
178
  else
169
179
  super
@@ -180,7 +190,6 @@ module ApiResource
180
190
  end
181
191
  end
182
192
 
183
-
184
193
  def self.create_resource_collection(result)
185
194
  json = JSON.parse(result)
186
195
  ResourceCollection.new(json['data'], json['meta'], self)
@@ -193,7 +202,7 @@ module ApiResource
193
202
  end
194
203
 
195
204
  def submit_resource(path, save_attrs=false, id_attr=nil, method=nil)
196
- raise ResourceError unless valid?
205
+ raise ResourceError unless valid? || method==:delete
197
206
  id_attr = id_attr || default_id_attr
198
207
  path = [path]
199
208
  attrs = attributes
@@ -1,3 +1,3 @@
1
1
  module ApiResource
2
- VERSION = '0.7.3'
2
+ VERSION = '0.7.4'
3
3
  end
@@ -0,0 +1,14 @@
1
+ require_relative 'blog_api'
2
+
3
+ RSpec.describe ApiResource::Resource do
4
+
5
+ class MyResource < ApiResource::Resource; end
6
+
7
+ it 'keeps model name' do
8
+ expect(MyResource.by_foo(3).model_name).to eq(MyResource.model_name)
9
+ end
10
+
11
+ it 'recursively keeps model name' do
12
+ expect(MyResource.by_foo(3).by_bar('sdfasd').by_baz(5).model_name).to eq(MyResource.model_name)
13
+ end
14
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api-resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chaker Nakhli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-22 00:00:00.000000000 Z
11
+ date: 2015-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: simple-hmac
@@ -136,6 +136,7 @@ files:
136
136
  - lib/api-resource/resource.rb
137
137
  - lib/api-resource/version.rb
138
138
  - spec/blog_api.rb
139
+ - spec/model_name_spec.rb
139
140
  - spec/resource_path_spec.rb
140
141
  - spec/resource_spec.rb
141
142
  - spec/spec_helper.rb
@@ -166,6 +167,7 @@ specification_version: 4
166
167
  summary: A lightweight REST API access library.
167
168
  test_files:
168
169
  - spec/blog_api.rb
170
+ - spec/model_name_spec.rb
169
171
  - spec/resource_path_spec.rb
170
172
  - spec/resource_spec.rb
171
173
  - spec/spec_helper.rb