lawnchair 0.6.8 → 0.6.9

Sign up to get free protection for your applications and to get access to all the features.
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.1.2"
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.8
1
+ 0.6.9
@@ -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"
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-09-14}
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.1.2"])
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.1.2"])
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.1.2"])
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
@@ -1,5 +1,5 @@
1
- require 'activesupport'
2
- require 'activerecord'
1
+ require 'active_support'
2
+ require 'active_record'
3
3
  module ActiveRecord
4
4
  module LawnchairExtension
5
5
 
@@ -11,8 +11,7 @@ module Lawnchair
11
11
  def fetch(key, options={}, &block)
12
12
 
13
13
  start_time = Time.now
14
- if exists?(key)
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
- exists?(key) ? Marshal.load(data_store[computed_key(key)]) : nil
29
+ value = data_store[computed_key(key)]
30
+ value.nil? ? nil : Marshal.load(value)
31
31
  end
32
32
  end
33
33
 
@@ -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 << Date.parse("Dec 3. 1981")
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:") do
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: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 8
10
- version: 0.6.8
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-09-14 00:00:00 -07:00
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: 31
29
+ hash: 15
30
30
  segments:
31
- - 0
32
- - 1
33
31
  - 2
34
- version: 0.1.2
32
+ - 0
33
+ - 0
34
+ version: 2.0.0
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency