api-resource 0.7.5 → 0.7.6

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: 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