api-resource 0.7.3 → 0.7.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.
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