lawnchair 0.6.8 → 0.6.9
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.
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lawnchair.gemspec +5 -5
- data/lib/active_record_extension.rb +2 -2
- data/lib/storage_engine/abstract.rb +3 -3
- data/spec/speed.rb +37 -5
- metadata +8 -8
data/Rakefile
CHANGED
|
@@ -10,7 +10,7 @@ begin
|
|
|
10
10
|
gem.email = "shanewolf@gmail.com"
|
|
11
11
|
gem.homepage = "http://github.com/gizm0duck/lawnchair"
|
|
12
12
|
gem.authors = ["Shane Wolf"]
|
|
13
|
-
gem.add_dependency "redis", ">=0.
|
|
13
|
+
gem.add_dependency "redis", ">=2.0.0"
|
|
14
14
|
gem.add_dependency "activesupport", ">=2.3.2"
|
|
15
15
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
|
16
16
|
end
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.6.
|
|
1
|
+
0.6.9
|
data/lawnchair.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{lawnchair}
|
|
8
|
-
s.version = "0.6.
|
|
8
|
+
s.version = "0.6.9"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Shane Wolf"]
|
|
12
|
-
s.date = %q{2010-
|
|
12
|
+
s.date = %q{2010-10-08}
|
|
13
13
|
s.description = %q{Fully featured caching mechanism for arbitrary pieces of resource expensive ruby code using Redis while being able to optionally store data in the Ruby process itself for maximum efficiency.}
|
|
14
14
|
s.email = %q{shanewolf@gmail.com}
|
|
15
15
|
s.extra_rdoc_files = [
|
|
@@ -61,14 +61,14 @@ Gem::Specification.new do |s|
|
|
|
61
61
|
s.specification_version = 3
|
|
62
62
|
|
|
63
63
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
64
|
-
s.add_runtime_dependency(%q<redis>, [">= 0.
|
|
64
|
+
s.add_runtime_dependency(%q<redis>, [">= 2.0.0"])
|
|
65
65
|
s.add_runtime_dependency(%q<activesupport>, [">= 2.3.2"])
|
|
66
66
|
else
|
|
67
|
-
s.add_dependency(%q<redis>, [">= 0.
|
|
67
|
+
s.add_dependency(%q<redis>, [">= 2.0.0"])
|
|
68
68
|
s.add_dependency(%q<activesupport>, [">= 2.3.2"])
|
|
69
69
|
end
|
|
70
70
|
else
|
|
71
|
-
s.add_dependency(%q<redis>, [">= 0.
|
|
71
|
+
s.add_dependency(%q<redis>, [">= 2.0.0"])
|
|
72
72
|
s.add_dependency(%q<activesupport>, [">= 2.3.2"])
|
|
73
73
|
end
|
|
74
74
|
end
|
|
@@ -11,8 +11,7 @@ module Lawnchair
|
|
|
11
11
|
def fetch(key, options={}, &block)
|
|
12
12
|
|
|
13
13
|
start_time = Time.now
|
|
14
|
-
if
|
|
15
|
-
value = get(key, options)
|
|
14
|
+
if value = get(key, options)
|
|
16
15
|
log("HIT", key, Time.now-start_time)
|
|
17
16
|
return value
|
|
18
17
|
else
|
|
@@ -27,7 +26,8 @@ module Lawnchair
|
|
|
27
26
|
if options[:raw]
|
|
28
27
|
data_store[computed_key(key)]
|
|
29
28
|
else
|
|
30
|
-
|
|
29
|
+
value = data_store[computed_key(key)]
|
|
30
|
+
value.nil? ? nil : Marshal.load(value)
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
data/spec/speed.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'benchmark'
|
|
2
2
|
require "#{File.dirname(__FILE__)}/../lib/lawnchair"
|
|
3
|
-
|
|
3
|
+
require 'activesupport'
|
|
4
4
|
Lawnchair.connectdb
|
|
5
5
|
Lawnchair.flushdb
|
|
6
6
|
|
|
@@ -18,13 +18,13 @@ puts "*** Performing #{n} iterations ***"
|
|
|
18
18
|
|
|
19
19
|
def expensive_stuff
|
|
20
20
|
a = []
|
|
21
|
-
100.times do
|
|
22
|
-
a <<
|
|
21
|
+
100.times do |i|
|
|
22
|
+
a << Time.parse("Dec 3. 1981")
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
Benchmark.bm(7) do |x|
|
|
27
|
-
x.report("cached:\t\t") do
|
|
27
|
+
x.report("cached:\t\t\t") do
|
|
28
28
|
(1..n).each do |i|
|
|
29
29
|
Lawnchair.cache("redis_cache") do
|
|
30
30
|
expensive_stuff
|
|
@@ -32,7 +32,7 @@ Benchmark.bm(7) do |x|
|
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
x.report("in process cached
|
|
35
|
+
x.report("in process cached:\t") do
|
|
36
36
|
(1..n).each do |i|
|
|
37
37
|
Lawnchair.cache("in_process_cache", :in_process => true) do
|
|
38
38
|
expensive_stuff
|
|
@@ -45,4 +45,36 @@ Benchmark.bm(7) do |x|
|
|
|
45
45
|
expensive_stuff
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
puts "**** GET vs EXISTS ****"
|
|
51
|
+
|
|
52
|
+
Benchmark.bm(7) do |x|
|
|
53
|
+
x.report("get: not in cache:\t\t") do
|
|
54
|
+
(1..n).each do |i|
|
|
55
|
+
Lawnchair::StorageEngine::Redis.get("redis_cache")
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
x.report("exist: not in cache:\t\t") do
|
|
60
|
+
(1..n).each do |i|
|
|
61
|
+
Lawnchair::StorageEngine::Redis.exists?("redis_cache")
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
Lawnchair.cache("redis_cache") do
|
|
66
|
+
expensive_stuff
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
x.report("get: in cache:\t\t\t") do
|
|
70
|
+
(1..n).each do |i|
|
|
71
|
+
Lawnchair::StorageEngine::Redis.get("redis_cache")
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
x.report("exist: in cache:\t\t") do
|
|
76
|
+
(1..n).each do |i|
|
|
77
|
+
Lawnchair::StorageEngine::Redis.exists?("redis_cache")
|
|
78
|
+
end
|
|
79
|
+
end
|
|
48
80
|
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lawnchair
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 21
|
|
5
5
|
prerelease: false
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 6
|
|
9
|
-
-
|
|
10
|
-
version: 0.6.
|
|
9
|
+
- 9
|
|
10
|
+
version: 0.6.9
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Shane Wolf
|
|
@@ -15,7 +15,7 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2010-
|
|
18
|
+
date: 2010-10-08 00:00:00 -07:00
|
|
19
19
|
default_executable:
|
|
20
20
|
dependencies:
|
|
21
21
|
- !ruby/object:Gem::Dependency
|
|
@@ -26,12 +26,12 @@ dependencies:
|
|
|
26
26
|
requirements:
|
|
27
27
|
- - ">="
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
|
-
hash:
|
|
29
|
+
hash: 15
|
|
30
30
|
segments:
|
|
31
|
-
- 0
|
|
32
|
-
- 1
|
|
33
31
|
- 2
|
|
34
|
-
|
|
32
|
+
- 0
|
|
33
|
+
- 0
|
|
34
|
+
version: 2.0.0
|
|
35
35
|
type: :runtime
|
|
36
36
|
version_requirements: *id001
|
|
37
37
|
- !ruby/object:Gem::Dependency
|