active_remote-cached 0.0.2 → 0.0.3

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: 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