memcache_mock 0.0.9 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
data/lib/memcache_mock.rb CHANGED
@@ -17,7 +17,8 @@ class MemcacheMock
17
17
  @values.fetch(key, nil)
18
18
  end
19
19
 
20
- def get_multi( keys )
20
+ def get_multi( *keys )
21
+ keys.flatten!
21
22
  @values.select { |k, v| keys.include?( k ) }
22
23
  end
23
24
 
@@ -34,11 +35,21 @@ class MemcacheMock
34
35
  @values[key] += value
35
36
  end
36
37
  end
37
-
38
+
38
39
  def delete(key)
39
40
  @values.delete(key)
40
41
  end
41
42
 
43
+ def fetch( key, ttl=nil, options=nil )
44
+ val = get( key )
45
+
46
+ if val.nil? && block_given?
47
+ val = yield
48
+ set( key, val )
49
+ end
50
+ val
51
+ end
52
+
42
53
  def flush
43
54
  @values.clear
44
55
  end
@@ -1,3 +1,3 @@
1
1
  class MemcacheMock
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.11"
3
3
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_development_dependency "bundler", "1.0.21"
21
+ s.add_development_dependency "bundler", ">= 1.0.21"
22
22
  s.add_development_dependency "rake", "0.9.2.2"
23
23
  s.add_development_dependency "mocha", "0.10.0"
24
24
  end
@@ -43,6 +43,16 @@ class MemcacheMockTest < Test::Unit::TestCase
43
43
  assert_equal( nil, result["key4"] )
44
44
  end
45
45
 
46
+ def test_get_multi_splat_args
47
+ @cache.set( "key1", "value1" )
48
+ @cache.set( "key2", "value2" )
49
+
50
+ result = @cache.get_multi("key1", "key2")
51
+
52
+ assert_equal( "value1", result["key1"] )
53
+ assert_equal( "value2", result["key2"] )
54
+ end
55
+
46
56
  def test_set
47
57
  @cache.set( "key", "value" )
48
58
  assert_equal( "value", @cache.get( "key" ) )
@@ -55,16 +65,29 @@ class MemcacheMockTest < Test::Unit::TestCase
55
65
  assert_equal( "value1|value2", @cache.get( "key" ) )
56
66
  end
57
67
 
68
+ def test_fetch
69
+ assert_equal( nil, @cache.fetch( "key0" ) )
70
+
71
+ @cache.set( "key1", "value1" )
72
+ assert_equal( "value1", @cache.fetch( "key1" ) )
73
+
74
+ assert_equal( "value1", @cache.fetch( "key1" ) { "value2" } )
75
+ assert_equal( "value2", @cache.fetch( "key2" ) { "value2" } )
76
+
77
+ @cache.fetch( "key3" ) { "value3" }
78
+ assert_equal( "value3", @cache.get( "key3" ) )
79
+ end
80
+
58
81
  def test_flush
59
82
  @cache.set( "key", "value1" )
60
83
  @cache.flush
61
84
  assert_equal( nil, @cache.get( "key" ) )
62
85
  end
63
-
86
+
64
87
  def test_delete
65
88
  @cache.set( "key", "value1" )
66
89
  assert_equal( "value1", @cache.get( "key" ) )
67
90
  @cache.delete( "key" )
68
91
  assert_nil( @cache.get( "key" ) )
69
92
  end
70
- end
93
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memcache_mock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,22 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-02-09 00:00:00.000000000Z
13
+ date: 2012-11-20 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
17
- requirement: &70192132092780 !ruby/object:Gem::Requirement
17
+ requirement: &70282321103440 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
- - - =
20
+ - - ! '>='
21
21
  - !ruby/object:Gem::Version
22
22
  version: 1.0.21
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *70192132092780
25
+ version_requirements: *70282321103440
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rake
28
- requirement: &70192132092120 !ruby/object:Gem::Requirement
28
+ requirement: &70282321102940 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - =
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.9.2.2
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *70192132092120
36
+ version_requirements: *70282321102940
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: mocha
39
- requirement: &70192132091500 !ruby/object:Gem::Requirement
39
+ requirement: &70282321102480 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - =
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: 0.10.0
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *70192132091500
47
+ version_requirements: *70282321102480
48
48
  description: Simple key/value mocked storage system
49
49
  email:
50
50
  - fguillen.mail@gmail.com
@@ -76,18 +76,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
76
  - - ! '>='
77
77
  - !ruby/object:Gem::Version
78
78
  version: '0'
79
- segments:
80
- - 0
81
- hash: 2848083593305837614
82
79
  required_rubygems_version: !ruby/object:Gem::Requirement
83
80
  none: false
84
81
  requirements:
85
82
  - - ! '>='
86
83
  - !ruby/object:Gem::Version
87
84
  version: '0'
88
- segments:
89
- - 0
90
- hash: 2848083593305837614
91
85
  requirements: []
92
86
  rubyforge_project: memcache_mock
93
87
  rubygems_version: 1.8.15