api_bee 0.0.4 → 0.1.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.
data/lib/api_bee/node.rb CHANGED
@@ -71,9 +71,7 @@ module ApiBee
71
71
  # node[:price] # new request to /products/6
72
72
  #
73
73
  def [](attribute_name)
74
- if respond_to?(attribute_name)
75
- send attribute_name
76
- elsif value = @attributes[attribute_name]
74
+ if value = @attributes[attribute_name]
77
75
  resolve_values_to_nodes value
78
76
  elsif has_more? # check whether there's more info in API
79
77
  load_more!
@@ -153,6 +151,8 @@ module ApiBee
153
151
  #
154
152
  class List < Node
155
153
 
154
+ include Enumerable
155
+
156
156
  DEFAULT_PER_PAGE = 100
157
157
 
158
158
  # Get one resource from this list
@@ -216,10 +216,6 @@ module ApiBee
216
216
  __entries.each(&block)
217
217
  end
218
218
 
219
- def each_with_index(&block)
220
- __entries.each_with_index(&block)
221
- end
222
-
223
219
  def paginate(options = {})
224
220
  data = @adapter.get(@attributes[@config.uri_property_name], options)
225
221
  Node.resolve @adapter, @config, data, @href
@@ -1,3 +1,3 @@
1
1
  module ApiBee
2
- VERSION = "0.0.4"
2
+ VERSION = "0.1.4"
3
3
  end
data/spec/node_spec.rb CHANGED
@@ -235,6 +235,19 @@ describe ApiBee do
235
235
  @products.last[:title].should == 'Foo 2'
236
236
  end
237
237
 
238
+ it 'should implement #map' do
239
+ @products.map {|p| p[:title]}.should == ['Foo 1', 'Foo 2']
240
+ end
241
+
242
+ it 'should implement #each_with_index' do
243
+ idx = []
244
+ titles = []
245
+ @products.each_with_index {|p,i| idx << i; titles << p[:title]}
246
+
247
+ idx.should == [0,1]
248
+ titles.should == ['Foo 1', 'Foo 2']
249
+ end
250
+
238
251
  it 'should navigate to the second page' do
239
252
  @products = @products.paginate(:page => 2, :per_page => 2)
240
253
  titles = []
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: api_bee
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.4
5
+ version: 0.1.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ismael Celis
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-09-26 00:00:00 Z
13
+ date: 2012-01-10 00:00:00 Z
14
14
  dependencies: []
15
15
 
16
16
  description: Small Ruby client for discoverable, lazily-loaded, paginated JSON APIs