cached_singleton 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MTYxMWFjZWIyOTk5ODhkODI0ZTMzYmEzMzQwNTU5OWI1ZTdhYjJkOA==
5
- data.tar.gz: !binary |-
6
- OTEyYmRiNWM1ODJhZjdjN2FhN2UyYzQwYjAwYzdmNWE1ZjY2NTcyNA==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- YjU0YWI2ZjNjYTU5MjA4MTlhNGExNGQyY2ZiNDg4NTYxNWNmODI4YTAwYWJj
10
- YjUzZTFkOWM1NGIxMDJhZDlhOWM3YTZkOTg2MzNmODVhMDA2YjA5NTYxN2Fh
11
- MDRkMDdhOWM4MzUyN2ZjYmM1NGY2MzZkNzdmZGVlYTUwNGRlMDg=
12
- data.tar.gz: !binary |-
13
- YmQ0ZGM3ZmFkNzY1MjlmZDMzMGJmOWYxZWZjZmYxNTU4NWFhYzFmNTM5NWNl
14
- ZjY1NjNkMDUyNTdjOTY5NGNkZmJiMzcxMWRiYjRmNDc5YmMxZmE4MGRkMWFh
15
- NGVhYzNhYjM5ZjE4ZGQ3NGNiYjllODZmZjQ2Mzc0MDI1YmY2MTk=
2
+ SHA1:
3
+ metadata.gz: 6f0ed962c247686865ce45844fd8beafd086e102
4
+ data.tar.gz: 503572f511cfdd8d0311fc3021cd14cdda98180e
5
+ SHA512:
6
+ metadata.gz: 30ba9853cb7349a8f6ea944afddc080e2f0e60a9dd97af1c4bea03fde16d3394ee360f813fe1db8d4675733d404b8c3e267ae9975ddcf7e3f80cecc427a7b365
7
+ data.tar.gz: 8a79964da19427d4a02494a541e790daa12162695a0c5930108e7ae10e47fad8d2fab669cd1bb6b7e94a3be27b82db9606d7f650a1081f3eed613f06ac845ff0
@@ -44,6 +44,10 @@ module CachedSingleton
44
44
 
45
45
  m
46
46
  end
47
+
48
+ def remove_from_cache
49
+ cache.delete(singleton_cache_key)
50
+ end
47
51
  end
48
52
 
49
53
  after_commit :expire_cache
@@ -51,6 +55,6 @@ module CachedSingleton
51
55
  end
52
56
 
53
57
  def expire_cache
54
- self.class.cache.delete(self.class.singleton_cache_key) if (!new_record? || destroyed?)
58
+ self.class.remove_from_cache if (!new_record? || destroyed?)
55
59
  end
56
60
  end
@@ -1,3 +1,3 @@
1
1
  module CachedSingleton
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -1,7 +1,6 @@
1
1
  lib = File.expand_path('../../lib', __FILE__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
- require 'rack/test'
5
4
  require 'minitest/autorun'
6
5
  require 'cached_singleton'
7
6
 
@@ -30,6 +29,14 @@ class FakeModel
30
29
  'table_name'
31
30
  end
32
31
 
32
+ def new_record?
33
+ false
34
+ end
35
+
36
+ def destroyed?
37
+ false
38
+ end
39
+
33
40
  include CachedSingleton
34
41
  end
35
42
 
@@ -52,7 +59,6 @@ class FakeCache
52
59
  end
53
60
 
54
61
  class CachedSingletonTest < MiniTest::Unit::TestCase
55
- include Rack::Test::Methods
56
62
 
57
63
  def test_singleton_cache_key
58
64
  assert_equal FakeModel.singleton_cache_key, '/FakeModel'
@@ -73,8 +79,17 @@ class CachedSingletonTest < MiniTest::Unit::TestCase
73
79
  def test_single_instance_from_db
74
80
  CachedSingleton.default_cache_strategy = FakeCache
75
81
  FakeModel.stub :first, FakeModel.new do
76
- assert_same FakeModel.instance, FakeModel.instance
82
+ assert_same FakeModel.instance, FakeModel.instance
77
83
  end
78
84
  end
79
85
 
86
+ def test_expire_cache
87
+ cache = Minitest::Mock.new
88
+ model = FakeModel.new
89
+ cache.expect :read, model, [FakeModel.singleton_cache_key]
90
+ cache.expect :delete, nil, [FakeModel.singleton_cache_key]
91
+ CachedSingleton.default_cache_strategy = cache
92
+ FakeModel.instance.expire_cache
93
+ cache.verify
94
+ end
80
95
  end
metadata CHANGED
@@ -1,47 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cached_singleton
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
  - Thibault El Zamek, Cédric Darné, Lionel Oto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-03 00:00:00.000000000 Z
11
+ date: 2014-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description: ! ' CachedSingleton makes a single instance ActiveRecord object behave
42
- fully like a singleton.
43
-
44
- '
41
+ description: |2
42
+ CachedSingleton makes a single instance ActiveRecord object behave fully like a singleton.
45
43
  email:
46
44
  - thibault.elzamek@c4mprod.com, cedric.darne@c4mprod.com, lionel.oto@c4mprod.com
47
45
  executables: []
@@ -50,9 +48,9 @@ extra_rdoc_files: []
50
48
  files:
51
49
  - LICENSE.txt
52
50
  - README.md
51
+ - lib/cached_singleton.rb
53
52
  - lib/cached_singleton/cached_singleton.rb
54
53
  - lib/cached_singleton/version.rb
55
- - lib/cached_singleton.rb
56
54
  - spec/cached_singleton_spec.rb
57
55
  homepage: https://github.com/c4mprod/cached_singleton
58
56
  licenses:
@@ -64,17 +62,17 @@ require_paths:
64
62
  - lib
65
63
  required_ruby_version: !ruby/object:Gem::Requirement
66
64
  requirements:
67
- - - ! '>='
65
+ - - ">="
68
66
  - !ruby/object:Gem::Version
69
67
  version: '0'
70
68
  required_rubygems_version: !ruby/object:Gem::Requirement
71
69
  requirements:
72
- - - ! '>='
70
+ - - ">="
73
71
  - !ruby/object:Gem::Version
74
72
  version: '0'
75
73
  requirements: []
76
74
  rubyforge_project:
77
- rubygems_version: 2.0.8
75
+ rubygems_version: 2.2.2
78
76
  signing_key:
79
77
  specification_version: 4
80
78
  summary: Makes an active record behave like a singleton