api-resource 0.7.5 → 0.7.6

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: 577461c283f96953aef3076ced8bf3eaf8829740
4
- data.tar.gz: 5548e85fe4348fabf7552332090d59a99792e278
3
+ metadata.gz: ff13e586ba5115068b6d745225fedff154edf75e
4
+ data.tar.gz: b0faf9a94735afa8c7ad76808624bc9264fc6105
5
5
  SHA512:
6
- metadata.gz: 9bc0b19da6b68e0e3d3798d8da71799fc86ca4db30c37b46295bdd77d3a25f615384c73476c5eba71573014a033735f6ecfec5ef6c625aad6602bf012ba1b4b8
7
- data.tar.gz: a90ce3817dc00cd73c96c23a4277c5670a1101e361ec0e4c4ac7c524f9de2a3e7dc672a363e82e859f6fe3ecc971b6a5b9d8e8b3ac4974009a6b619b568e1c95
6
+ metadata.gz: f18923f4597e79b3b5afdc67ee9722214344d33b2ff3b31b1de15b6443556ff14333e03c0ae076601378cc730f917ffdd34602fd9ad5652c9e089a35d71e1be8
7
+ data.tar.gz: 125fa114e774163151d071cde9b7d3bb01f844fbf48659fdf355a40342d84102396c16b5e0802ee28f77f4cfdbccd755f7bf421afb92545d691965090c694cb1
@@ -302,11 +302,22 @@ module ApiResource
302
302
 
303
303
  def initialize(data, meta, klass)
304
304
  meta.each { |k, v| self.class.class_eval { define_method(k) { v } } } if meta
305
- @resources = data.map { |e| klass.new(e) }
305
+ @resources = data.map { |e| klass.new(e) }.to_a
306
306
  end
307
307
 
308
- def each(&block)
309
- @resources.each(&block)
308
+ def method_missing(m, *args, &block)
309
+ if @resources.respond_to?(m)
310
+ @resources.send(m,*args, &block)
311
+ else
312
+ super
313
+ end
314
+ end
315
+
316
+ def respond_to_missing?(m, _)
317
+ @resources.respond_to?(m)
318
+ end
319
+
320
+ def acts_like_array?
310
321
  end
311
322
  end
312
323
  end
@@ -1,3 +1,3 @@
1
1
  module ApiResource
2
- VERSION = '0.7.5'
2
+ VERSION = '0.7.6'
3
3
  end
@@ -0,0 +1,13 @@
1
+ require_relative 'blog_api'
2
+
3
+ RSpec.describe ApiResource::ResourceCollection do
4
+
5
+ describe 'duck types array' do
6
+
7
+ subject { ApiResource::ResourceCollection.new(%w(1 2 3 29), nil, String) }
8
+
9
+ it { is_expected.to respond_to :acts_like_array? }
10
+ it { is_expected.to match_array %w(1 2 3 29) }
11
+ it { is_expected.to have_attributes length: 4 }
12
+ end
13
+ 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.5
4
+ version: 0.7.6
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-05-21 00:00:00.000000000 Z
11
+ date: 2015-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: simple-hmac
@@ -137,6 +137,7 @@ files:
137
137
  - lib/api-resource/version.rb
138
138
  - spec/blog_api.rb
139
139
  - spec/model_name_spec.rb
140
+ - spec/resource_collection_spec.rb
140
141
  - spec/resource_path_spec.rb
141
142
  - spec/resource_spec.rb
142
143
  - spec/spec_helper.rb
@@ -168,6 +169,7 @@ summary: A lightweight REST API access library.
168
169
  test_files:
169
170
  - spec/blog_api.rb
170
171
  - spec/model_name_spec.rb
172
+ - spec/resource_collection_spec.rb
171
173
  - spec/resource_path_spec.rb
172
174
  - spec/resource_spec.rb
173
175
  - spec/spec_helper.rb