layercake 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.2.0
data/layercake.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{layercake}
8
- s.version = "0.1.2"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Peter Haza"]
12
- s.date = %q{2010-10-08}
12
+ s.date = %q{2010-10-11}
13
13
  s.description = %q{LayerCake is a simple gem that allows you to specify more than one cache store in rails.
14
14
  It is built on the idea that memory store is the most efficient store with no network or file overhead, but serves multi-process or multi-server architectures, hence a fallback like filestore or memcached store is necessary.}
15
15
  s.email = %q{peter.haza@gmail.com}
@@ -40,7 +40,8 @@ module Layercake
40
40
  missed = []
41
41
 
42
42
  @stores.each do |store|
43
- value = store.send(:read_entry, key, options)
43
+ method = choose_method(store, :read_entry, :read)
44
+ value = store.send(method, key, options)
44
45
  unless value.nil?
45
46
  # Rails.logger.debug "Read from: #{store.class}"
46
47
  break
@@ -51,7 +52,8 @@ module Layercake
51
52
 
52
53
  if value
53
54
  missed.each do |store|
54
- store.send(:write_entry, key, value, options)
55
+ method = choose_method(store, :write_entry, :write)
56
+ store.send(method, key, value, options)
55
57
  end
56
58
  end
57
59
 
@@ -59,17 +61,28 @@ module Layercake
59
61
  end
60
62
 
61
63
  def write_entry(key, entry, options)
62
- @stores.each{|store| store.send(:write_entry, key, entry, options) }
64
+ @stores.each do |store|
65
+ method = choose_method(store, :write_entry, :write)
66
+ store.send(method, key, entry, options)
67
+ end
63
68
  true
64
69
  end
65
70
 
66
71
  def delete_entry(key, options)
67
72
  @stores.map do |store|
68
- store.send(:delete_entry, key, options)
73
+ method = choose_method(store, :delete_entry, :delete)
74
+ store.send(method, key, options)
69
75
  end.include? true
70
76
  end
71
77
 
72
78
  private
79
+
80
+ def choose_method(store, method1, method2)
81
+ return method1 if store.respond_to? method1.to_sym
82
+ return method2 if store.respond_to? method2.to_sym
83
+ nil
84
+ end
85
+
73
86
  def initialize_store(arg)
74
87
  parameters = arg
75
88
  *parameters = *[arg.keys.first, arg.values].flatten if arg.is_a?(Hash)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: layercake
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
9
8
  - 2
10
- version: 0.1.2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Peter Haza
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-08 00:00:00 +02:00
18
+ date: 2010-10-11 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies: []
21
21