hookercookerman-amee 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -25,7 +25,14 @@
25
25
  will populated the fridge category automagically;
26
26
 
27
27
  Cache - Simple to Start (using Moneta)
28
- Therefore if u wish you can choose your cache store even memcache via leveraging Moneta
28
+ Therefore if u wish you can choose your cache store even memcache via leveraging Moneta
29
+
30
+ Pagination on data_items
31
+
32
+ @data_category = session.get_data_category("/data/whatever_path", :query => {:itemsPerPage => 30, :page => 1})
33
+ @data_items = @data_category.paginate_data_items(:per_page => 30,:page => params[:page])
34
+
35
+ You know have a pagintated data_items
29
36
 
30
37
  = TODOS
31
38
 
data/lib/amee.rb CHANGED
@@ -33,5 +33,5 @@ require "amee/profile_api/profile_category"
33
33
  require "amee/profile_api/profile"
34
34
 
35
35
  module Amee
36
- VERSION = '0.0.4'
36
+ VERSION = '0.0.5'
37
37
  end
@@ -41,12 +41,7 @@ module Amee
41
41
  options[:per_page] || 10,
42
42
  options[:total] || self.pager["items"]
43
43
  ) do |pager|
44
- result = session.api_call(:get, "data_category", self.full_path,
45
- :query => {:itemsPerPage => pager.per_page, :page => pager.current_page}
46
- ) do |response|
47
- populate_from_hash!(response)
48
- end
49
- pager.replace(result.data_items)
44
+ pager.replace(self.data_items || [])
50
45
  end
51
46
  end
52
47
 
@@ -7,7 +7,7 @@ module Amee
7
7
  self.path_prefix = "/profiles"
8
8
 
9
9
 
10
- attr_accessor :profile, :total_amount_per_month, :total_amount
10
+ attr_accessor :profile, :total_amount_per_month, :total_amount, :pager
11
11
 
12
12
  list_populators :profile_items => {:class => Amee::ProfileApi::ProfileItem},
13
13
  :profile_categories => {:class => Amee::ProfileApi::ProfileCategory}
@@ -37,6 +37,16 @@ module Amee
37
37
  "#{self.class.path_prefix}/#{profile_uid}" + resource_path
38
38
  end
39
39
 
40
+ def paginate_profile_items(options = {})
41
+ profile_items = WillPaginate::Collection.create(
42
+ options[:page] || 1,
43
+ options[:per_page] || 10,
44
+ options[:total] || self.pager["items"]
45
+ ) do |pager|
46
+ pager.replace(self.profile_items || [])
47
+ end
48
+ end
49
+
40
50
  end
41
51
 
42
52
  end
data/lib/amee/session.rb CHANGED
@@ -65,7 +65,7 @@ module Amee
65
65
  def api_call_without_logging(method, parser_name, path, options, use_auth_token =true, &proc)
66
66
  result = service.send(method, parser_name, path, options)
67
67
  result = yield result if block_given?
68
- store_resource(path,result, options[:cache]||{}) if method == :get && caching?
68
+ store_resource(path,result, options||{}) if method == :get && caching?
69
69
  result
70
70
  end
71
71
 
@@ -74,7 +74,7 @@ module Amee
74
74
  # or actually call the amee api; if the session has expired we will try
75
75
  # to get a new one
76
76
  def api_call(method, parser_name, path, options ={}, use_auth_token =true, &proc)
77
- if (cache = @cache[path]) && caching?
77
+ if (cache = @cache[cache_key(path, options[:query] || {})]) && caching?
78
78
  return cache
79
79
  else
80
80
  attempts = 0
@@ -214,8 +214,15 @@ module Amee
214
214
 
215
215
  # @param [String] path the path of the resource
216
216
  # @param [Hash] cache_options this is the cache options
217
- def store_resource(path, result, cache_options = {})
218
- @cache.store(path, result, :expires_in => cache_options[:expires_in] || Amee::Config[:expires_in])
217
+ def store_resource(path, result, options = {})
218
+ key = cache_key(path, options[:query] ||{})
219
+ cache_options = options[:cache] || {}
220
+ @cache.store(key, result, :expires_in => cache_options[:expires_in] || Amee::Config[:expires_in])
221
+ end
222
+
223
+ protected
224
+ def cache_key(path, params = {})
225
+ path + params.map { |key,value| "#{key}=#{value}" }.join('/')
219
226
  end
220
227
 
221
228
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hookercookerman-amee
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Hooker
@@ -62,6 +62,16 @@ dependencies:
62
62
  - !ruby/object:Gem::Version
63
63
  version: "0"
64
64
  version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: mislav-will_paginate
67
+ type: :runtime
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 2.2.3
74
+ version:
65
75
  description: Its a gem to interact with the amee api
66
76
  email:
67
77
  - richard.hooker@dynamic50.com