active_remote-cached 0.1.0 → 0.1.1

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: 30ab76a72a43662a016c241f8ea069559fbffd2f
4
- data.tar.gz: f5efe169305a48fbc569be896091f64fd265b2d6
3
+ metadata.gz: d0c37d8fe5adf8a1227c97dddf83db2eb5d59fc7
4
+ data.tar.gz: 49690fa347012f5dd569dd1ce175f864adf83b6d
5
5
  SHA512:
6
- metadata.gz: 532fda905ee748ca161c6c04f6bdf6f904697a078eaa724a3557b4f22bbe5c45bd083555fcf32cfcafdc4f6963e09b9c37aa2559532748921897916aa2d7d24e
7
- data.tar.gz: 53767240c5f8dfd8389adc4b9e62c4203fd68ffcdde73072311dc97cd157317e1a4cb6f5ebb7e54168f300ca4e5140a57a87085897039671b1f35efcb0d07da7
6
+ metadata.gz: 553ee8882228bb293410908ef21f4c40b7decc3fa2d0a4f40adfe42d83191c2c0649266b3e7db69782f42943cdeb42dead439ebeeed9461fac2f7da02da1ebfd
7
+ data.tar.gz: 42ca67feb1eddc71a2f679e4ab04453811c12d63810486adb0290d78245b4c2ad0e88ef31fa81ebab5dd7ff4afc7456e4754a9e4aee53cd2131c52a05de06c8f
@@ -83,23 +83,23 @@ module ActiveRemote
83
83
  search_method_name = _cached_search_method_name(arguments)
84
84
 
85
85
  unless self.respond_to?(delete_method_name)
86
- _define_cached_delete_method(delete_method_name, arguments)
86
+ _define_cached_delete_method(delete_method_name, arguments, options)
87
87
  end
88
88
 
89
89
  unless self.respond_to?(exist_find_method_name)
90
- _define_cached_exist_find_method(exist_find_method_name, arguments)
90
+ _define_cached_exist_find_method(exist_find_method_name, arguments, options)
91
91
  end
92
92
 
93
93
  unless self.respond_to?(exist_search_method_name)
94
- _define_cached_exist_search_method(exist_search_method_name, arguments)
94
+ _define_cached_exist_search_method(exist_search_method_name, arguments, options)
95
95
  end
96
96
 
97
97
  unless self.respond_to?(find_method_name)
98
- _define_cached_find_method(find_method_name, arguments)
98
+ _define_cached_find_method(find_method_name, arguments, options)
99
99
  end
100
100
 
101
101
  unless self.respond_to?(search_method_name)
102
- _define_cached_search_method(search_method_name, arguments)
102
+ _define_cached_search_method(search_method_name, arguments, options)
103
103
  end
104
104
  end
105
105
  end
@@ -124,7 +124,7 @@ module ActiveRemote
124
124
  "cached_search_by_#{arguments.join('_and_')}"
125
125
  end
126
126
 
127
- def _define_cached_delete_method(method_name, *method_arguments)
127
+ def _define_cached_delete_method(method_name, *method_arguments, cached_finder_options)
128
128
  method_arguments.flatten!
129
129
  expanded_method_args = method_arguments.join(",")
130
130
  sorted_method_args = method_arguments.sort.join(",")
@@ -134,7 +134,7 @@ module ActiveRemote
134
134
  # ::ActiveRemote::Cached.cache.delete([name, user_guid])
135
135
  # end
136
136
  def self.#{method_name}(#{expanded_method_args}, options = {})
137
- options = ::ActiveRemote::Cached.default_options.merge(options)
137
+ options = ::ActiveRemote::Cached.default_options.merge(#{cached_finder_options}).merge(options)
138
138
  namespace = options.delete(:namespace)
139
139
  find_cache_key = [namespace, name, "#find", #{sorted_method_args}].compact
140
140
  search_cache_key = [namespace, name, "#search", #{sorted_method_args}].compact
@@ -145,7 +145,7 @@ module ActiveRemote
145
145
  RUBY
146
146
  end
147
147
 
148
- def _define_cached_exist_find_method(method_name, *method_arguments)
148
+ def _define_cached_exist_find_method(method_name, *method_arguments, cached_finder_options)
149
149
  method_arguments.flatten!
150
150
  expanded_method_args = method_arguments.join(",")
151
151
  sorted_method_args = method_arguments.sort.join(",")
@@ -155,7 +155,7 @@ module ActiveRemote
155
155
  # ::ActiveRemote::Cached.cache.exist?([name, user_guid])
156
156
  # end
157
157
  def self.#{method_name}(#{expanded_method_args}, options = {})
158
- options = ::ActiveRemote::Cached.default_options.merge(options)
158
+ options = ::ActiveRemote::Cached.default_options.merge(#{cached_finder_options}).merge(options)
159
159
  namespace = options.delete(:namespace)
160
160
  cache_key = [namespace, name, "#find", #{sorted_method_args}].compact
161
161
 
@@ -166,7 +166,7 @@ module ActiveRemote
166
166
  singleton_class.send(:alias_method, "#{method_name}?", method_name)
167
167
  end
168
168
 
169
- def _define_cached_exist_search_method(method_name, *method_arguments)
169
+ def _define_cached_exist_search_method(method_name, *method_arguments, cached_finder_options)
170
170
  method_arguments.flatten!
171
171
  expanded_method_args = method_arguments.join(",")
172
172
  sorted_method_args = method_arguments.sort.join(",")
@@ -176,7 +176,7 @@ module ActiveRemote
176
176
  # ::ActiveRemote::Cached.cache.exist?([namespace, name, "#search", user_guid])
177
177
  # end
178
178
  def self.#{method_name}(#{expanded_method_args}, options = {})
179
- options = ::ActiveRemote::Cached.default_options.merge(options)
179
+ options = ::ActiveRemote::Cached.default_options.merge(#{cached_finder_options}).merge(options)
180
180
  namespace = options.delete(:namespace)
181
181
  cache_key = [namespace, name, "#search", #{sorted_method_args}].compact
182
182
 
@@ -187,7 +187,7 @@ module ActiveRemote
187
187
  singleton_class.send(:alias_method, "#{method_name}?", method_name)
188
188
  end
189
189
 
190
- def _define_cached_find_method(method_name, *method_arguments)
190
+ def _define_cached_find_method(method_name, *method_arguments, cached_finder_options)
191
191
  method_arguments.flatten!
192
192
  expanded_method_args = method_arguments.join(",")
193
193
  sorted_method_args = method_arguments.sort.join(",")
@@ -199,7 +199,7 @@ module ActiveRemote
199
199
 
200
200
  self.class_eval <<-RUBY, __FILE__, __LINE__ + 1
201
201
  # def self.cached_find_by_user_guid(user_guid, options = {})
202
- # options = ::ActiveRemote::Cached.default_options.merge(options)
202
+ # options = ::ActiveRemote::Cached.default_options.merge({}).merge(options)
203
203
  #
204
204
  # ::ActiveRemote::Cached.cache.fetch([namespace, name, "#find", user_guid], options) do
205
205
  # self.find(:user_guid => user_guid)
@@ -210,7 +210,7 @@ module ActiveRemote
210
210
  # of the result object is maintained for requests/responses
211
211
  #
212
212
  def self.#{method_name}(#{expanded_method_args}, options = {})
213
- options = ::ActiveRemote::Cached.default_options.merge(options)
213
+ options = ::ActiveRemote::Cached.default_options.merge(#{cached_finder_options}).merge(options)
214
214
  namespace = options.delete(:namespace)
215
215
  cache_key = [namespace, name, "#find", #{sorted_method_args}].compact
216
216
 
@@ -225,7 +225,7 @@ module ActiveRemote
225
225
  RUBY
226
226
  end
227
227
 
228
- def _define_cached_search_method(method_name, *method_arguments)
228
+ def _define_cached_search_method(method_name, *method_arguments, cached_finder_options)
229
229
  method_arguments.flatten!
230
230
  expanded_method_args = method_arguments.join(",")
231
231
  sorted_method_args = method_arguments.sort.join(",")
@@ -237,7 +237,7 @@ module ActiveRemote
237
237
 
238
238
  self.class_eval <<-RUBY, __FILE__, __LINE__ + 1
239
239
  # def self.cached_search_by_user_guid(user_guid, options = {})
240
- # options = ::ActiveRemote::Cached.default_options.merge(options)
240
+ # options = ::ActiveRemote::Cached.default_options.merge({}).merge(options)
241
241
  #
242
242
  # ::ActiveRemote::Cached.cache.fetch([namespace, name, "#search", user_guid], options) do
243
243
  # self.search(:user_guid => user_guid)
@@ -248,7 +248,7 @@ module ActiveRemote
248
248
  # of the result object is maintained for requests/responses
249
249
  #
250
250
  def self.#{method_name}(#{expanded_method_args}, options = {})
251
- options = ::ActiveRemote::Cached.default_options.merge(options)
251
+ options = ::ActiveRemote::Cached.default_options.merge(#{cached_finder_options}).merge(options)
252
252
  namespace = options.delete(:namespace)
253
253
  cache_key = [namespace, name, "#search", #{sorted_method_args}].compact
254
254
 
@@ -1,5 +1,5 @@
1
1
  module ActiveRemote
2
2
  module Cached
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
@@ -6,6 +6,7 @@ class FindMethodClass
6
6
  def self.find; nil; end
7
7
  def self.search; nil; end
8
8
 
9
+ cached_finders_for :foo, :expires_in => 500
9
10
  cached_finders_for :guid
10
11
  cached_finders_for :guid, :user_guid
11
12
  cached_finders_for [:user_guid, :client_guid]
@@ -14,6 +15,10 @@ end
14
15
 
15
16
  describe FindMethodClass do
16
17
  describe "API" do
18
+ it "creates 'cached_find_by_foo'" do
19
+ FindMethodClass.must_respond_to("cached_find_by_foo")
20
+ end
21
+
17
22
  it "creates 'cached_find_by_guid'" do
18
23
  FindMethodClass.must_respond_to("cached_find_by_guid")
19
24
  end
@@ -95,4 +100,31 @@ describe FindMethodClass do
95
100
  end
96
101
  end
97
102
  end
103
+
104
+ describe "#cached_find_by_foo" do
105
+ before do
106
+ ::ActiveRemote::Cached.cache(HashCache.new)
107
+ ::ActiveRemote::Cached.default_options(:expires_in => 100)
108
+ end
109
+
110
+ after do
111
+ ::ActiveRemote::Cached.default_options({})
112
+ end
113
+
114
+ it "overrides the default options with cached_finder options for the fetch call" do
115
+ ::ActiveRemote::Cached.cache.expects(:fetch).with([FindMethodClass.name, "#find", :foo], :expires_in => 500).returns(:hello)
116
+
117
+ FindMethodClass.stub(:find, :hello) do
118
+ FindMethodClass.cached_find_by_foo(:foo).must_equal(:hello)
119
+ end
120
+ end
121
+
122
+ it "overrides the cached_finder options with local options for the fetch call" do
123
+ ::ActiveRemote::Cached.cache.expects(:fetch).with([FindMethodClass.name, "#find", :foo], :expires_in => 200).returns(:hello)
124
+
125
+ FindMethodClass.stub(:find, :hello) do
126
+ FindMethodClass.cached_find_by_foo(:foo, :expires_in => 200).must_equal(:hello)
127
+ end
128
+ end
129
+ end
98
130
  end
@@ -7,6 +7,7 @@ class SearchMethodClass
7
7
  def self.find; nil; end
8
8
  def self.search; nil; end
9
9
 
10
+ cached_finders_for :foo, :expires_in => 500
10
11
  cached_finders_for :guid
11
12
  cached_finders_for :guid, :user_guid
12
13
  cached_finders_for [:user_guid, :client_guid]
@@ -15,6 +16,10 @@ end
15
16
 
16
17
  describe SearchMethodClass do
17
18
  describe "API" do
19
+ it "creates 'cached_search_by_foo'" do
20
+ SearchMethodClass.must_respond_to("cached_search_by_foo")
21
+ end
22
+
18
23
  it "creates 'cached_search_by_guid'" do
19
24
  SearchMethodClass.must_respond_to("cached_search_by_guid")
20
25
  end
@@ -144,4 +149,31 @@ describe SearchMethodClass do
144
149
  end
145
150
  end
146
151
  end
152
+
153
+ describe "#cached_search_by_foo" do
154
+ before do
155
+ ::ActiveRemote::Cached.cache(HashCache.new)
156
+ ::ActiveRemote::Cached.default_options(:expires_in => 100)
157
+ end
158
+
159
+ after do
160
+ ::ActiveRemote::Cached.default_options({})
161
+ end
162
+
163
+ it "overrides the default options with cached_finder options for the fetch call" do
164
+ ::ActiveRemote::Cached.cache.expects(:fetch).with([SearchMethodClass.name, "#search", :foo], :expires_in => 500).returns(:hello)
165
+
166
+ SearchMethodClass.stub(:find, :hello) do
167
+ SearchMethodClass.cached_search_by_foo(:foo).must_equal(:hello)
168
+ end
169
+ end
170
+
171
+ it "overrides the cached_finder options with local options for the fetch call" do
172
+ ::ActiveRemote::Cached.cache.expects(:fetch).with([SearchMethodClass.name, "#search", :foo], :expires_in => 200).returns(:hello)
173
+
174
+ SearchMethodClass.stub(:find, :hello) do
175
+ SearchMethodClass.cached_search_by_foo(:foo, :expires_in => 200).must_equal(:hello)
176
+ end
177
+ end
178
+ end
147
179
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_remote-cached
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Dewitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-05 00:00:00.000000000 Z
11
+ date: 2016-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_remote