active_remote-cached 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f7d2d905a1f2c332e672714d359026c4cdbfbbb8
4
- data.tar.gz: c8d4806770678aa49d193ad6fea044817d763b04
3
+ metadata.gz: 9872e1d79f0ce74478d865b9610ac1f7fbfdca51
4
+ data.tar.gz: 2d0f206d646b9184b916c49a49ff74aabb1eb42a
5
5
  SHA512:
6
- metadata.gz: 0846621184ac0a101620381a333fef148fef114d488d61adb0dada6ba55c8b53f77ba00d38fee49ba63f6ac145a270ab4fbc503c7066f46075687612a7dda39f
7
- data.tar.gz: 946302d6ada16ec640746c057916fe10361a004c14b1d13afdce699070a8e34eb154d545683cecfe7314a1154bba3a977901824e21b0f821882a6de01fc7605a
6
+ metadata.gz: b6b752495900bf6fe139b68321f7b9d725bc54843df72721ef44c719f8d197a774e38a5a2e3d36ff2b0ed3b4ace2d570704228629ceb9d2e1d89420d9593096a
7
+ data.tar.gz: 3ff9109ed522147871f4a93265b6993e333ba42772d703ad81456aff079423d74dbe1f398c3ae6c5222a0456bb9abc0271cf99268d43bdbcbcb95fa1e3844a4c
@@ -7,6 +7,7 @@ module ActiveRemote::Cached
7
7
  def initialize(new_cache_provider)
8
8
  @cache_provider = new_cache_provider
9
9
  validate_provider_method_present(:delete)
10
+ validate_provider_method_present(:exist?)
10
11
  validate_provider_method_present(:fetch)
11
12
  validate_provider_method_present(:read)
12
13
  validate_provider_method_present(:write)
@@ -14,14 +15,6 @@ module ActiveRemote::Cached
14
15
  super(@cache_provider)
15
16
  end
16
17
 
17
- def exist?(key)
18
- if self.cache_provider.respond_to?(:exist?)
19
- self.cache_provider.exist?(key)
20
- else
21
- !self.cache_provider.read(key).nil?
22
- end
23
- end
24
-
25
18
  private
26
19
 
27
20
  def validate_provider_method_present(method_name)
@@ -1,5 +1,5 @@
1
1
  module ActiveRemote
2
2
  module Cached
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -37,6 +37,18 @@ module ActiveRemote
37
37
  cached_finders_for(*keys)
38
38
  end
39
39
 
40
+ def cached_find(argument_hash, options = {})
41
+ method_name = _cached_find_method_name(argument_hash.keys)
42
+ arguments = argument_hash.values
43
+ __send__(method_name, *arguments, options)
44
+ end
45
+
46
+ def cached_search(argument_hash, options = {})
47
+ method_name = _cached_search_method_name(argument_hash.keys)
48
+ arguments = argument_hash.values
49
+ __send__(method_name, *arguments, options)
50
+ end
51
+
40
52
  ##
41
53
  # Underscored Methods
42
54
  #
data/spec/cache_spec.rb CHANGED
@@ -2,28 +2,34 @@ require 'spec_helper'
2
2
 
3
3
  describe ::ActiveRemote::Cached::Cache do
4
4
  describe "API" do
5
- it "validates #write present" do
6
- cache = OpenStruct.new(:read => nil, :delete => nil, :fetch => nil, :exist? => nil)
7
- error = lambda { ::ActiveRemote::Cached.cache(cache)}.must_raise(RuntimeError)
8
- error.message.must_match(/respond_to.*write/i)
9
- end
10
-
11
- it "validates #read present" do
12
- cache = OpenStruct.new(:write => nil, :delete => nil, :fetch => nil, :exist? => nil)
13
- error = lambda { ::ActiveRemote::Cached.cache(cache) }.must_raise(RuntimeError)
14
- error.message.must_match(/respond_to.*read/i)
15
- end
16
-
17
5
  it "validates #delete present" do
18
6
  cache = OpenStruct.new(:write => nil, :fetch => nil, :read => nil, :exist? => nil)
19
7
  error = lambda { ::ActiveRemote::Cached.cache(cache) }.must_raise(RuntimeError)
20
8
  error.message.must_match(/respond_to.*delete/i)
21
9
  end
22
10
 
11
+ it "validates #exist? present" do
12
+ cache = OpenStruct.new(:write => nil, :delete => nil, :read => nil, :fetch => nil)
13
+ error = lambda { ::ActiveRemote::Cached.cache(cache) }.must_raise(RuntimeError)
14
+ error.message.must_match(/respond_to.*exist/i)
15
+ end
16
+
23
17
  it "validates #fetch present" do
24
18
  cache = OpenStruct.new(:write => nil, :delete => nil, :read => nil, :exist? => nil)
25
19
  error = lambda { ::ActiveRemote::Cached.cache(cache) }.must_raise(RuntimeError)
26
20
  error.message.must_match(/respond_to.*fetch/i)
27
21
  end
22
+
23
+ it "validates #read present" do
24
+ cache = OpenStruct.new(:write => nil, :delete => nil, :fetch => nil, :exist? => nil)
25
+ error = lambda { ::ActiveRemote::Cached.cache(cache) }.must_raise(RuntimeError)
26
+ error.message.must_match(/respond_to.*read/i)
27
+ end
28
+
29
+ it "validates #write present" do
30
+ cache = OpenStruct.new(:read => nil, :delete => nil, :fetch => nil, :exist? => nil)
31
+ error = lambda { ::ActiveRemote::Cached.cache(cache)}.must_raise(RuntimeError)
32
+ error.message.must_match(/respond_to.*write/i)
33
+ end
28
34
  end
29
35
  end
@@ -53,6 +53,12 @@ describe FindMethodClass do
53
53
  ::ActiveRemote::Cached.default_options({})
54
54
  end
55
55
 
56
+ it "executes find_by_guid when cached_find with guid called" do
57
+ FindMethodClass.stub(:find, :hello) do
58
+ FindMethodClass.cached_find(:guid => :guid).must_equal(:hello)
59
+ end
60
+ end
61
+
56
62
  it "executes the fetch block if not present in cache" do
57
63
  FindMethodClass.stub(:find, :hello) do
58
64
  FindMethodClass.cached_find_by_guid(:guid).must_equal(:hello)
@@ -53,6 +53,12 @@ describe SearchMethodClass do
53
53
  ::ActiveRemote::Cached.default_options({})
54
54
  end
55
55
 
56
+ it "executes search_by_guid when cached_search with guid called" do
57
+ FindMethodClass.stub(:search, :hello) do
58
+ FindMethodClass.cached_search(:guid => :guid).must_equal(:hello)
59
+ end
60
+ end
61
+
56
62
  it "executes the fetch block if not present in cache" do
57
63
  SearchMethodClass.stub(:search, :hello) do
58
64
  SearchMethodClass.cached_search_by_guid(:guid).must_equal(:hello)
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.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Dewitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-25 00:00:00.000000000 Z
11
+ date: 2013-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_remote
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  version: '0'
137
137
  requirements: []
138
138
  rubyforge_project:
139
- rubygems_version: 2.0.3
139
+ rubygems_version: 2.1.11
140
140
  signing_key:
141
141
  specification_version: 4
142
142
  summary: Provides a configuration for caching mechanisms and finders on ActiveRemote