active_remote-cached 1.0.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +55 -0
- data/Gemfile +2 -0
- data/Rakefile +6 -4
- data/active_remote-cached.gemspec +23 -17
- data/lib/active_remote/cached/argument_keys.rb +49 -46
- data/lib/active_remote/cached/cache.rb +50 -49
- data/lib/active_remote/cached/railtie.rb +5 -5
- data/lib/active_remote/cached/version.rb +3 -1
- data/lib/active_remote/cached.rb +57 -61
- data/lib/active_remote-cached.rb +3 -1
- data/spec/active_remote/cached/argument_keys_spec.rb +12 -10
- data/spec/active_remote/cached/cache_spec.rb +13 -16
- data/spec/active_remote/cached_delete_methods_spec.rb +19 -12
- data/spec/active_remote/cached_exist_methods_spec.rb +40 -33
- data/spec/active_remote/cached_find_methods_spec.rb +64 -51
- data/spec/active_remote/cached_search_methods_spec.rb +153 -102
- data/spec/spec_helper.rb +5 -10
- metadata +36 -7
data/lib/active_remote/cached.rb
CHANGED
@@ -1,33 +1,31 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
1
|
+
require 'active_support'
|
2
|
+
require 'active_support/cache'
|
3
|
+
require 'active_support/concern'
|
4
|
+
require 'active_support/core_ext/array/extract_options'
|
5
5
|
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
6
|
+
require 'active_remote/cached/argument_keys'
|
7
|
+
require 'active_remote/cached/cache'
|
8
|
+
require 'active_remote/cached/version'
|
9
|
+
require 'active_remote/errors'
|
10
10
|
|
11
11
|
module ActiveRemote
|
12
12
|
module Cached
|
13
13
|
extend ::ActiveSupport::Concern
|
14
14
|
|
15
|
-
# When upgrading Rails versions, don't reuse the same cache key,
|
16
|
-
#
|
15
|
+
# When upgrading Rails versions, don't reuse the same cache key,
|
16
|
+
# because you can't rely upon the serialized objects to be consistent across versions.
|
17
|
+
# To fix, this adds a cache key that caches the ruby engine version
|
18
|
+
# and the activesupport version to prevent cache re-use across different versions.
|
17
19
|
RUBY_AND_ACTIVE_SUPPORT_VERSION = "#{RUBY_ENGINE_VERSION}:#{ActiveSupport::VERSION::STRING}".freeze
|
18
20
|
|
19
21
|
def self.cache(cache_provider = nil)
|
20
|
-
if cache_provider
|
21
|
-
@cache_provider = ::ActiveRemote::Cached::Cache.new(cache_provider)
|
22
|
-
end
|
22
|
+
@cache_provider = ::ActiveRemote::Cached::Cache.new(cache_provider) if cache_provider
|
23
23
|
|
24
24
|
@cache_provider
|
25
25
|
end
|
26
26
|
|
27
27
|
def self.default_options(options = nil)
|
28
|
-
if options
|
29
|
-
@default_options = options
|
30
|
-
end
|
28
|
+
@default_options = options if options
|
31
29
|
|
32
30
|
@default_options || {}
|
33
31
|
end
|
@@ -50,27 +48,23 @@ module ActiveRemote
|
|
50
48
|
cached_finders_for(*keys)
|
51
49
|
end
|
52
50
|
|
53
|
-
def cached_find(argument_hash, options = {})
|
51
|
+
def cached_find(argument_hash, options = {}, &block)
|
54
52
|
method_name = _cached_find_method_name(argument_hash.keys)
|
55
53
|
arguments = argument_hash.keys.sort.map { |k| argument_hash[k] }
|
56
54
|
|
57
55
|
if block_given?
|
58
|
-
__send__(method_name, *arguments, options)
|
59
|
-
yield
|
60
|
-
end
|
56
|
+
__send__(method_name, *arguments, options, &block)
|
61
57
|
else
|
62
58
|
__send__(method_name, *arguments, options)
|
63
59
|
end
|
64
60
|
end
|
65
61
|
|
66
|
-
def cached_search(argument_hash, options = {})
|
62
|
+
def cached_search(argument_hash, options = {}, &block)
|
67
63
|
method_name = _cached_search_method_name(argument_hash.keys)
|
68
64
|
arguments = argument_hash.keys.sort.map { |k| argument_hash[k] }
|
69
65
|
|
70
66
|
if block_given?
|
71
|
-
__send__(method_name, *arguments, options)
|
72
|
-
yield
|
73
|
-
end
|
67
|
+
__send__(method_name, *arguments, options, &block)
|
74
68
|
else
|
75
69
|
__send__(method_name, *arguments, options)
|
76
70
|
end
|
@@ -101,18 +95,17 @@ module ActiveRemote
|
|
101
95
|
# Underscored Methods
|
102
96
|
#
|
103
97
|
def _method_missing_name(m)
|
104
|
-
regex = /(cached_(?:delete|exist_search|search|exist_find|find)_by_)([
|
98
|
+
regex = /(cached_(?:delete|exist_search|search|exist_find|find)_by_)([0-9a-zA-Z_]*)(!|\?)?/
|
105
99
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
nil
|
111
|
-
end
|
100
|
+
return unless m.to_s =~ regex
|
101
|
+
|
102
|
+
params = ::Regexp.last_match(2).split('_and_')
|
103
|
+
"#{::Regexp.last_match(1)}#{params.sort.join('_and_')}#{::Regexp.last_match(3)}".to_sym
|
112
104
|
end
|
113
105
|
|
106
|
+
# rubocop:disable Metrics/AbcSize
|
114
107
|
def _args_in_sorted_order(m, args)
|
115
|
-
regex = /cached_(?:delete|exist_search|search|exist_find|find)_by_([
|
108
|
+
regex = /cached_(?:delete|exist_search|search|exist_find|find)_by_([0-9a-zA-Z_]*)(!|\?)?/
|
116
109
|
|
117
110
|
method_name = _method_missing_name(m)
|
118
111
|
|
@@ -122,8 +115,8 @@ module ActiveRemote
|
|
122
115
|
args_in_order = []
|
123
116
|
|
124
117
|
if match_1[1] && match_2[1]
|
125
|
-
orignal_args_name = match_1[1].split(
|
126
|
-
args_names_in_order = match_2[1].split(
|
118
|
+
orignal_args_name = match_1[1].split('_and_')
|
119
|
+
args_names_in_order = match_2[1].split('_and_')
|
127
120
|
|
128
121
|
args_names_in_order.each do |arg_name|
|
129
122
|
index = orignal_args_name.index(arg_name)
|
@@ -140,9 +133,11 @@ module ActiveRemote
|
|
140
133
|
args
|
141
134
|
end
|
142
135
|
end
|
136
|
+
# rubocop:enable Metrics/AbcSize
|
143
137
|
|
138
|
+
# rubocop:disable Metrics/AbcSize
|
144
139
|
def _create_cached_finder_for(cached_finder_key, options = {})
|
145
|
-
cached_finder_key_set = [
|
140
|
+
cached_finder_key_set = [cached_finder_key].flatten.sort
|
146
141
|
|
147
142
|
delete_method_name = _cached_delete_method_name(cached_finder_key_set)
|
148
143
|
exist_find_method_name = _cached_exist_find_method_name(cached_finder_key_set)
|
@@ -154,7 +149,7 @@ module ActiveRemote
|
|
154
149
|
unless cached_methods.include?(delete_method_name)
|
155
150
|
_define_cached_delete_method(delete_method_name, cached_finder_key_set, options)
|
156
151
|
end
|
157
|
-
|
152
|
+
|
158
153
|
unless cached_methods.include?(exist_find_method_name)
|
159
154
|
_define_cached_exist_find_method(exist_find_method_name, cached_finder_key_set, options)
|
160
155
|
end
|
@@ -171,10 +166,11 @@ module ActiveRemote
|
|
171
166
|
_define_cached_search_bang_method(search_bang_method_name, cached_finder_key_set, options)
|
172
167
|
end
|
173
168
|
|
174
|
-
|
175
|
-
|
176
|
-
|
169
|
+
return if cached_methods.include?(search_method_name)
|
170
|
+
|
171
|
+
_define_cached_search_method(search_method_name, cached_finder_key_set, options)
|
177
172
|
end
|
173
|
+
# rubocop:enable Metrics/AbcSize
|
178
174
|
|
179
175
|
def _cached_delete_method_name(arguments)
|
180
176
|
"cached_delete_by_#{arguments.sort.join('_and_')}"
|
@@ -198,11 +194,11 @@ module ActiveRemote
|
|
198
194
|
|
199
195
|
def _define_cached_delete_method(method_name, *method_arguments, cached_finder_options)
|
200
196
|
method_arguments.flatten!
|
201
|
-
expanded_method_args = method_arguments.join(
|
202
|
-
sorted_method_args = method_arguments.sort.join(
|
197
|
+
expanded_method_args = method_arguments.join(',')
|
198
|
+
sorted_method_args = method_arguments.sort.join(',')
|
203
199
|
cached_methods << method_name
|
204
200
|
|
205
|
-
|
201
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
206
202
|
# def self.cached_delete_by_user_guid(user_guid, options = {})
|
207
203
|
# ::ActiveRemote::Cached.cache.delete([name, user_guid])
|
208
204
|
# end
|
@@ -233,12 +229,12 @@ module ActiveRemote
|
|
233
229
|
|
234
230
|
def _define_cached_exist_find_method(method_name, *method_arguments, cached_finder_options)
|
235
231
|
method_arguments.flatten!
|
236
|
-
expanded_method_args = method_arguments.join(
|
237
|
-
sorted_method_args = method_arguments.sort.join(
|
232
|
+
expanded_method_args = method_arguments.join(',')
|
233
|
+
sorted_method_args = method_arguments.sort.join(',')
|
238
234
|
cached_methods << method_name
|
239
235
|
cached_methods << "#{method_name}?"
|
240
236
|
|
241
|
-
|
237
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
242
238
|
# def self.cached_exist_find_by_user_guid(user_guid, options = {})
|
243
239
|
# ::ActiveRemote::Cached.cache.exist?([name, user_guid])
|
244
240
|
# end
|
@@ -262,12 +258,12 @@ module ActiveRemote
|
|
262
258
|
|
263
259
|
def _define_cached_exist_search_method(method_name, *method_arguments, cached_finder_options)
|
264
260
|
method_arguments.flatten!
|
265
|
-
expanded_method_args = method_arguments.join(
|
266
|
-
sorted_method_args = method_arguments.sort.join(
|
261
|
+
expanded_method_args = method_arguments.join(',')
|
262
|
+
sorted_method_args = method_arguments.sort.join(',')
|
267
263
|
cached_methods << method_name
|
268
264
|
cached_methods << "#{method_name}?"
|
269
265
|
|
270
|
-
|
266
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
271
267
|
# def self.cached_exist_search_by_user_guid(user_guid, options = {})
|
272
268
|
# ::ActiveRemote::Cached.cache.exist?([namespace, name, "#search", user_guid])
|
273
269
|
# end
|
@@ -291,16 +287,16 @@ module ActiveRemote
|
|
291
287
|
|
292
288
|
def _define_cached_find_method(method_name, *method_arguments, cached_finder_options)
|
293
289
|
method_arguments.flatten!
|
294
|
-
expanded_method_args = method_arguments.join(
|
295
|
-
sorted_method_args = method_arguments.sort.join(
|
290
|
+
expanded_method_args = method_arguments.join(',')
|
291
|
+
sorted_method_args = method_arguments.sort.join(',')
|
296
292
|
cached_methods << method_name
|
297
293
|
|
298
|
-
expanded_search_args =
|
294
|
+
expanded_search_args = ''
|
299
295
|
method_arguments.each do |method_argument|
|
300
296
|
expanded_search_args << ":#{method_argument} => #{method_argument},"
|
301
297
|
end
|
302
298
|
|
303
|
-
|
299
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
304
300
|
# def self.cached_find_by_user_guid(user_guid, options = {})
|
305
301
|
# options = ::ActiveRemote::Cached.default_options.merge({}).merge(options)
|
306
302
|
#
|
@@ -336,16 +332,16 @@ module ActiveRemote
|
|
336
332
|
|
337
333
|
def _define_cached_search_method(method_name, *method_arguments, cached_finder_options)
|
338
334
|
method_arguments.flatten!
|
339
|
-
expanded_method_args = method_arguments.join(
|
340
|
-
sorted_method_args = method_arguments.sort.join(
|
335
|
+
expanded_method_args = method_arguments.join(',')
|
336
|
+
sorted_method_args = method_arguments.sort.join(',')
|
341
337
|
cached_methods << method_name
|
342
338
|
|
343
|
-
expanded_search_args =
|
339
|
+
expanded_search_args = ''
|
344
340
|
method_arguments.each do |method_argument|
|
345
341
|
expanded_search_args << ":#{method_argument} => #{method_argument},"
|
346
342
|
end
|
347
343
|
|
348
|
-
|
344
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
349
345
|
# def self.cached_search_by_user_guid(user_guid, options = {})
|
350
346
|
# options = ::ActiveRemote::Cached.default_options.merge({}).merge(options)
|
351
347
|
#
|
@@ -385,16 +381,16 @@ module ActiveRemote
|
|
385
381
|
|
386
382
|
def _define_cached_search_bang_method(method_name, *method_arguments, cached_finder_options)
|
387
383
|
method_arguments.flatten!
|
388
|
-
expanded_method_args = method_arguments.join(
|
389
|
-
sorted_method_args = method_arguments.sort.join(
|
384
|
+
expanded_method_args = method_arguments.join(',')
|
385
|
+
sorted_method_args = method_arguments.sort.join(',')
|
390
386
|
cached_methods << method_name
|
391
387
|
|
392
|
-
expanded_search_args =
|
388
|
+
expanded_search_args = ''
|
393
389
|
method_arguments.each do |method_argument|
|
394
390
|
expanded_search_args << ":#{method_argument} => #{method_argument},"
|
395
391
|
end
|
396
392
|
|
397
|
-
|
393
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
398
394
|
# def self.cached_search_by_user_guid!(user_guid, options = {})
|
399
395
|
# options = ::ActiveRemote::Cached.default_options.merge({}).merge(options)
|
400
396
|
#
|
@@ -448,4 +444,4 @@ module ActiveRemote
|
|
448
444
|
end
|
449
445
|
end
|
450
446
|
|
451
|
-
require
|
447
|
+
require 'active_remote/cached/railtie' if defined?(Rails)
|
data/lib/active_remote-cached.rb
CHANGED
@@ -1,25 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe ::ActiveRemote::Cached::ArgumentKeys do
|
4
|
-
it
|
5
|
-
::ActiveRemote::Cached::ArgumentKeys.new(
|
6
|
+
it 'does not mutate a string by default' do
|
7
|
+
expect(::ActiveRemote::Cached::ArgumentKeys.new('hello', {}).cache_key).to eq('hello')
|
6
8
|
end
|
7
9
|
|
8
|
-
it
|
9
|
-
::ActiveRemote::Cached::ArgumentKeys.new(:hello, {}).cache_key.
|
10
|
+
it 'returns a string of a symbol by default' do
|
11
|
+
expect(::ActiveRemote::Cached::ArgumentKeys.new(:hello, {}).cache_key).to eq('hello')
|
10
12
|
end
|
11
13
|
|
12
|
-
it
|
13
|
-
::ActiveRemote::Cached::ArgumentKeys.new(
|
14
|
+
it 'does not mutate a string with special characters by default' do
|
15
|
+
expect(::ActiveRemote::Cached::ArgumentKeys.new('hello {}', {}).cache_key).to eq('hello {}')
|
14
16
|
end
|
15
17
|
|
16
|
-
it
|
18
|
+
it 'removes special characters from string with special characters when :active_remote_cached_remove_characters' do
|
17
19
|
options = { :active_remote_cached_remove_characters => true }
|
18
|
-
::ActiveRemote::Cached::ArgumentKeys.new(
|
20
|
+
expect(::ActiveRemote::Cached::ArgumentKeys.new('hello {}', options).cache_key).to eq('hello')
|
19
21
|
end
|
20
22
|
|
21
|
-
it
|
23
|
+
it 'replaces special characters from string with special characters when :active_remote_cached_replace_characters' do
|
22
24
|
options = { :active_remote_cached_replace_characters => true }
|
23
|
-
::ActiveRemote::Cached::ArgumentKeys.new(
|
25
|
+
expect(::ActiveRemote::Cached::ArgumentKeys.new('hello {}', options).cache_key).to eq('helloSPLBRB')
|
24
26
|
end
|
25
27
|
end
|
@@ -1,35 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe ::ActiveRemote::Cached::Cache do
|
4
|
-
describe
|
5
|
-
it
|
6
|
+
describe 'API' do
|
7
|
+
it 'validates #delete present' do
|
6
8
|
cache = OpenStruct.new(:write => nil, :fetch => nil, :read => nil, :exist? => nil)
|
7
|
-
|
8
|
-
error.message.must_match(/respond_to.*delete/i)
|
9
|
+
expect { ::ActiveRemote::Cached.cache(cache) }.to raise_error(RuntimeError, /respond_to.*delete/i)
|
9
10
|
end
|
10
11
|
|
11
|
-
it
|
12
|
+
it 'validates #exist? present' do
|
12
13
|
cache = OpenStruct.new(:write => nil, :delete => nil, :read => nil, :fetch => nil)
|
13
|
-
|
14
|
-
error.message.must_match(/respond_to.*exist/i)
|
14
|
+
expect { ::ActiveRemote::Cached.cache(cache) }.to raise_error(RuntimeError, /respond_to.*exist/i)
|
15
15
|
end
|
16
16
|
|
17
|
-
it
|
17
|
+
it 'validates #fetch present' do
|
18
18
|
cache = OpenStruct.new(:write => nil, :delete => nil, :read => nil, :exist? => nil)
|
19
|
-
|
20
|
-
error.message.must_match(/respond_to.*fetch/i)
|
19
|
+
expect { ::ActiveRemote::Cached.cache(cache) }.to raise_error(RuntimeError, /respond_to.*fetch/i)
|
21
20
|
end
|
22
21
|
|
23
|
-
it
|
22
|
+
it 'validates #read present' do
|
24
23
|
cache = OpenStruct.new(:write => nil, :delete => nil, :fetch => nil, :exist? => nil)
|
25
|
-
|
26
|
-
error.message.must_match(/respond_to.*read/i)
|
24
|
+
expect { ::ActiveRemote::Cached.cache(cache) }.to raise_error(RuntimeError, /respond_to.*read/i)
|
27
25
|
end
|
28
26
|
|
29
|
-
it
|
27
|
+
it 'validates #write present' do
|
30
28
|
cache = OpenStruct.new(:read => nil, :delete => nil, :fetch => nil, :exist? => nil)
|
31
|
-
|
32
|
-
error.message.must_match(/respond_to.*write/i)
|
29
|
+
expect { ::ActiveRemote::Cached.cache(cache) }.to raise_error(RuntimeError, /respond_to.*write/i)
|
33
30
|
end
|
34
31
|
end
|
35
32
|
end
|
@@ -1,45 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
class DeleteMethodClass
|
4
6
|
include ::ActiveRemote::Cached
|
5
7
|
|
6
|
-
def self.find
|
7
|
-
|
8
|
+
def self.find
|
9
|
+
nil
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.search
|
13
|
+
nil
|
14
|
+
end
|
8
15
|
|
9
16
|
cached_finders_for :guid
|
10
17
|
cached_finders_for :guid, :user_guid
|
11
|
-
cached_finders_for [
|
12
|
-
cached_finders_for [
|
18
|
+
cached_finders_for %i[user_guid client_guid]
|
19
|
+
cached_finders_for %i[derp user_guid client_guid]
|
13
20
|
end
|
14
21
|
|
15
22
|
describe DeleteMethodClass do
|
16
|
-
describe
|
23
|
+
describe 'API' do
|
17
24
|
it "creates 'cached_delete_by_guid'" do
|
18
|
-
DeleteMethodClass.
|
25
|
+
expect(DeleteMethodClass).to respond_to(:cached_delete_by_guid)
|
19
26
|
end
|
20
27
|
|
21
28
|
it "creates 'cached_delete_by_user_guid'" do
|
22
|
-
DeleteMethodClass.
|
29
|
+
expect(DeleteMethodClass).to respond_to(:cached_delete_by_user_guid)
|
23
30
|
end
|
24
31
|
|
25
32
|
it "creates 'cached_delete_by_user_guid_and_client_guid'" do
|
26
|
-
DeleteMethodClass.
|
33
|
+
expect(DeleteMethodClass).to respond_to(:cached_delete_by_user_guid_and_client_guid)
|
27
34
|
end
|
28
35
|
|
29
36
|
it "creates 'cached_delete_by_client_guid_and_user_guid'" do
|
30
|
-
DeleteMethodClass.
|
37
|
+
expect(DeleteMethodClass).to respond_to(:cached_delete_by_client_guid_and_user_guid)
|
31
38
|
end
|
32
39
|
|
33
40
|
it "creates 'cached_delete_by_derp_and_user_guid_and_client_guid'" do
|
34
|
-
DeleteMethodClass.
|
41
|
+
expect(DeleteMethodClass).to respond_to(:cached_delete_by_derp_and_user_guid_and_client_guid)
|
35
42
|
end
|
36
43
|
|
37
44
|
it "creates 'cached_delete_by_client_guid_and_derp_and_user_guid'" do
|
38
|
-
DeleteMethodClass.
|
45
|
+
expect(DeleteMethodClass).to respond_to(:cached_delete_by_client_guid_and_derp_and_user_guid)
|
39
46
|
end
|
40
47
|
|
41
48
|
it "creates 'cached_delete_by_client_guid_and_user_guid_and_derp'" do
|
42
|
-
DeleteMethodClass.
|
49
|
+
expect(DeleteMethodClass).to respond_to(:cached_delete_by_client_guid_and_user_guid_and_derp)
|
43
50
|
end
|
44
51
|
end
|
45
52
|
end
|
@@ -1,130 +1,137 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
class ExistMethodClass
|
4
6
|
include ::ActiveRemote::Cached
|
5
7
|
|
6
|
-
def self.find
|
7
|
-
|
8
|
+
def self.find
|
9
|
+
nil
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.search
|
13
|
+
nil
|
14
|
+
end
|
8
15
|
|
9
16
|
cached_finders_for :guid
|
10
17
|
cached_finders_for :guid, :user_guid
|
11
|
-
cached_finders_for [
|
12
|
-
cached_finders_for [
|
18
|
+
cached_finders_for %i[user_guid client_guid]
|
19
|
+
cached_finders_for %i[derp user_guid client_guid]
|
13
20
|
end
|
14
21
|
|
15
22
|
describe ExistMethodClass do
|
16
|
-
describe
|
23
|
+
describe 'API' do
|
17
24
|
it "creates 'cached_exist_find_by_guid'" do
|
18
|
-
ExistMethodClass.
|
25
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_guid)
|
19
26
|
end
|
20
27
|
|
21
28
|
it "creates 'cached_exist_search_by_guid'" do
|
22
|
-
ExistMethodClass.
|
29
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_guid)
|
23
30
|
end
|
24
31
|
|
25
32
|
it "creates 'cached_exist_find_by_user_guid'" do
|
26
|
-
ExistMethodClass.
|
33
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_user_guid)
|
27
34
|
end
|
28
35
|
|
29
36
|
it "creates 'cached_exist_search_by_user_guid'" do
|
30
|
-
ExistMethodClass.
|
37
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_user_guid)
|
31
38
|
end
|
32
39
|
|
33
40
|
it "creates 'cached_exist_find_by_user_guid_and_client_guid'" do
|
34
|
-
ExistMethodClass.
|
41
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_user_guid_and_client_guid)
|
35
42
|
end
|
36
43
|
|
37
44
|
it "creates 'cached_exist_search_by_user_guid_and_client_guid'" do
|
38
|
-
ExistMethodClass.
|
45
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_user_guid_and_client_guid)
|
39
46
|
end
|
40
47
|
|
41
48
|
it "creates 'cached_exist_find_by_client_guid_and_user_guid'" do
|
42
|
-
ExistMethodClass.
|
49
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_client_guid_and_user_guid)
|
43
50
|
end
|
44
51
|
|
45
52
|
it "creates 'cached_exist_search_by_client_guid_and_user_guid'" do
|
46
|
-
ExistMethodClass.
|
53
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_client_guid_and_user_guid)
|
47
54
|
end
|
48
55
|
|
49
56
|
it "creates 'cached_exist_find_by_derp_and_user_guid_and_client_guid'" do
|
50
|
-
ExistMethodClass.
|
57
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_derp_and_user_guid_and_client_guid)
|
51
58
|
end
|
52
59
|
|
53
60
|
it "creates 'cached_exist_search_by_derp_and_user_guid_and_client_guid'" do
|
54
|
-
ExistMethodClass.
|
61
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_derp_and_user_guid_and_client_guid)
|
55
62
|
end
|
56
63
|
|
57
64
|
it "creates 'cached_exist_find_by_client_guid_and_derp_and_user_guid'" do
|
58
|
-
ExistMethodClass.
|
65
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_client_guid_and_derp_and_user_guid)
|
59
66
|
end
|
60
67
|
|
61
68
|
it "creates 'cached_exist_search_by_client_guid_and_derp_and_user_guid'" do
|
62
|
-
ExistMethodClass.
|
69
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_client_guid_and_derp_and_user_guid)
|
63
70
|
end
|
64
71
|
|
65
72
|
it "creates 'cached_exist_find_by_client_guid_and_user_guid_and_derp'" do
|
66
|
-
ExistMethodClass.
|
73
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_client_guid_and_user_guid_and_derp)
|
67
74
|
end
|
68
75
|
|
69
76
|
it "creates 'cached_exist_search_by_client_guid_and_user_guid_and_derp'" do
|
70
|
-
ExistMethodClass.
|
77
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_client_guid_and_user_guid_and_derp)
|
71
78
|
end
|
72
79
|
|
73
80
|
# ? based methods
|
74
81
|
it "creates 'cached_exist_find_by_guid?'" do
|
75
|
-
ExistMethodClass.
|
82
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_guid?)
|
76
83
|
end
|
77
84
|
|
78
85
|
it "creates 'cached_exist_search_by_guid?'" do
|
79
|
-
ExistMethodClass.
|
86
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_guid?)
|
80
87
|
end
|
81
88
|
|
82
89
|
it "creates 'cached_exist_find_by_user_guid?'" do
|
83
|
-
ExistMethodClass.
|
90
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_user_guid?)
|
84
91
|
end
|
85
92
|
|
86
93
|
it "creates 'cached_exist_search_by_user_guid?'" do
|
87
|
-
ExistMethodClass.
|
94
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_user_guid?)
|
88
95
|
end
|
89
96
|
|
90
97
|
it "creates 'cached_exist_find_by_user_guid_and_client_guid?'" do
|
91
|
-
ExistMethodClass.
|
98
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_user_guid_and_client_guid?)
|
92
99
|
end
|
93
100
|
|
94
101
|
it "creates 'cached_exist_search_by_user_guid_and_client_guid?'" do
|
95
|
-
ExistMethodClass.
|
102
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_user_guid_and_client_guid?)
|
96
103
|
end
|
97
104
|
|
98
105
|
it "creates 'cached_exist_find_by_client_guid_and_user_guid?'" do
|
99
|
-
ExistMethodClass.
|
106
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_client_guid_and_user_guid?)
|
100
107
|
end
|
101
108
|
|
102
109
|
it "creates 'cached_exist_search_by_client_guid_and_user_guid?'" do
|
103
|
-
ExistMethodClass.
|
110
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_client_guid_and_user_guid?)
|
104
111
|
end
|
105
112
|
|
106
113
|
it "creates 'cached_exist_find_by_derp_and_user_guid_and_client_guid?'" do
|
107
|
-
ExistMethodClass.
|
114
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_derp_and_user_guid_and_client_guid?)
|
108
115
|
end
|
109
116
|
|
110
117
|
it "creates 'cached_exist_search_by_derp_and_user_guid_and_client_guid?'" do
|
111
|
-
ExistMethodClass.
|
118
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_derp_and_user_guid_and_client_guid?)
|
112
119
|
end
|
113
120
|
|
114
121
|
it "creates 'cached_exist_find_by_client_guid_and_derp_and_user_guid?'" do
|
115
|
-
ExistMethodClass.
|
122
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_client_guid_and_derp_and_user_guid?)
|
116
123
|
end
|
117
124
|
|
118
125
|
it "creates 'cached_exist_search_by_client_guid_and_derp_and_user_guid?'" do
|
119
|
-
ExistMethodClass.
|
126
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_client_guid_and_derp_and_user_guid?)
|
120
127
|
end
|
121
128
|
|
122
129
|
it "creates 'cached_exist_find_by_client_guid_and_user_guid_and_derp?'" do
|
123
|
-
ExistMethodClass.
|
130
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_find_by_client_guid_and_user_guid_and_derp?)
|
124
131
|
end
|
125
132
|
|
126
133
|
it "creates 'cached_exist_search_by_client_guid_and_user_guid_and_derp?'" do
|
127
|
-
ExistMethodClass.
|
134
|
+
expect(ExistMethodClass).to respond_to(:cached_exist_search_by_client_guid_and_user_guid_and_derp?)
|
128
135
|
end
|
129
136
|
end
|
130
137
|
end
|