covercache 0.3.1 → 0.3.2

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
- ODZlNWEzMGI1MTNkYjY1ZjE0M2NlZWM4ZTYxNTVkMTc3M2I2MzkxZg==
5
- data.tar.gz: !binary |-
6
- ZGNmZGI2N2M3NWZiOWRlZGI3MDliYjkyZGI5OGNmNGI1MTNmMWQ5NA==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- MjBmOWZkNmNhYmFlN2U1ZmFhYmFhYTI3NmQ0ZGQ3OWZiZTI3NDQyNjVjOTA3
10
- M2I4ZjZjOWVjMWFlMDU0MjRlMTcyZTQ3NTg2ZjNiNWUzNmM4YTRjYmNjMDRk
11
- Y2Q4YThmYzQ4Zjk3MDlkYTNkOTAxYjdmNmIwZjY1ODBlZWE1YmQ=
12
- data.tar.gz: !binary |-
13
- YzI4ODI0OWZkZDI2ZTAzZTMyMWE1MDMxOGI4ZDZhZThlZGJjNTNkOTY1MjVi
14
- Njg1ZDJjMTA1NTMxYWIxOTQ0ZmRhYzU4MmVmZjNmNGRmZWRhOWQ5YmNmNjhk
15
- OGNhZGE0ZTE5MTYwMzRhNWNiZGEwODdlYmU0YWUwY2RkYWM3YzA=
2
+ SHA1:
3
+ metadata.gz: 67fd5cda6532ead49dccc9024d97ba5c18f30c4c
4
+ data.tar.gz: 4e6cddd4883669b1b1049b8774bee0610b8674e2
5
+ SHA512:
6
+ metadata.gz: 1309aea0cf020fca3b156c1343c96aa157b3c9353432104bcce6bb18787bfa5e99be01b47b9764a038d7e342db70f7e21b66177d423d1ab1ed74eb6eab69c041
7
+ data.tar.gz: 5de15c9308b8b980dc5e2876531299bc252098d38793f0997f9beacba8dca54758ebec17e26f3280015b48d27b3f83ff2705ce68a297811c0e6cefa8d5b318f7
data/Rakefile CHANGED
@@ -1,18 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
2
3
 
3
- # require 'rake/testtask'
4
- # Rake::TestTask.new(:test) do |test|
5
- # test.libs << 'lib' << 'spec'
6
- # test.pattern = 'spec/**/*_spec.rb'
7
- # test.verbose = true
8
- # end
9
- #
10
- # require 'rdoc/task'
11
- # Rake::RDocTask.new do |rdoc|
12
- # version = File.exist?('VERSION') ? File.read('VERSION') : ""
13
- #
14
- # rdoc.rdoc_dir = 'rdoc'
15
- # rdoc.title = "covercashe #{version}"
16
- # rdoc.rdoc_files.include('README*')
17
- # rdoc.rdoc_files.include('lib/**/*.rb')
18
- # end
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task :default => :spec
7
+ task :test => :spec
data/covercache.gemspec CHANGED
@@ -1,4 +1,5 @@
1
- # coding: utf-8
1
+ # encoding: utf-8
2
+
2
3
  lib = File.expand_path('../lib', __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'covercache/version'
@@ -18,13 +19,14 @@ Gem::Specification.new do |spec|
18
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
20
  spec.require_paths = ["lib"]
20
21
 
22
+ spec.add_dependency "activesupport", '>= 3.2.0', '< 4'
23
+ spec.add_dependency "activerecord", '>= 3.2.0', '< 4'
24
+
21
25
  spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rails", "~> 3.2"
26
+ spec.add_development_dependency "rails", '>= 3.2.0', '< 4'
23
27
  spec.add_development_dependency "rdoc"
24
28
  spec.add_development_dependency "rspec"
25
29
  spec.add_development_dependency "rake"
26
30
  spec.add_development_dependency "sqlite3"
27
31
 
28
- spec.add_dependency "activesupport", "~> 3.0"
29
- spec.add_dependency "activerecord", "~> 3.0"
30
32
  end
@@ -1,3 +1,3 @@
1
1
  module Covercache
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
data/lib/covercache.rb CHANGED
@@ -52,6 +52,29 @@ require 'active_record'
52
52
  # Comments.cached_for_post_ids post_ids, cache_key: post_ids.hash
53
53
  #
54
54
  module Covercache
55
+
56
+ def self.logger
57
+ @logger ||= rails_logger || default_logger
58
+ end
59
+
60
+ def self.rails_logger
61
+ (defined?(Rails) && Rails.respond_to?(:logger) && Rails.logger) ||
62
+ (defined?(RAILS_DEFAULT_LOGGER) && RAILS_DEFAULT_LOGGER.respond_to?(:debug) && RAILS_DEFAULT_LOGGER)
63
+ end
64
+
65
+ def self.default_logger
66
+ require 'logger'
67
+ l = Logger.new(STDOUT)
68
+ l.level = Logger::DEBUG
69
+ l
70
+ end
71
+
72
+ def self.logger=(logger)
73
+ @logger = logger
74
+ end
75
+
76
+
77
+
55
78
  # General helper method (ex <tt>cache</tt> helper in PackRat)
56
79
  module Base
57
80
  # Arguments:
@@ -87,25 +110,25 @@ module Covercache
87
110
  # if :no_auto_cache_keys was set, we skip creating our own key
88
111
  keys.prepend get_auto_cache_key(klass.name, caller) unless cover_opts[:without_auto_key]
89
112
 
90
- keys.flatten!
113
+ keys.flatten!.select!{|i| i.present? }
91
114
 
92
115
  if !!cover_opts[:debug]
93
- puts keys.inspect
94
- Rails.logger.info keys
116
+ Covercache.logger.debug keys.inspect
95
117
  end
96
118
  # puts caller.inspect if !!cover_opts[:debug],
97
119
 
98
120
  Rails.cache.fetch keys, options do
99
121
  klass.covercache_keys |= [ keys.join('/') ]
100
- puts klass.covercache_keys.inspect if !!cover_opts[:debug]
122
+ Covercache.logger.debug(klass.covercache_keys.inspect) if !!cover_opts[:debug]
101
123
  block.call
102
124
  end
103
125
  end
104
126
 
105
127
  def get_auto_cache_key(class_name, _caller)
106
128
  caller_method = _caller.map {|c| c[/`([^']*)'/, 1] }.detect {|m| !m.start_with?('block') }
107
- puts caller_method.inspect
108
- [ class_name, covercache_model_digest, caller_method, (cache_key if self.respond_to?(:cache_key?)) ].compact
129
+ keys = [class_name, covercache_model_digest, caller_method].compact
130
+ keys << cache_key if self.respond_to?(:cache_key)
131
+ keys
109
132
  end
110
133
 
111
134
  def class_or_instance_class
@@ -117,6 +140,8 @@ module Covercache
117
140
  end
118
141
  end
119
142
 
143
+
144
+
120
145
  # == Defining Helper
121
146
  #
122
147
  module DefiningHelper
@@ -145,7 +170,7 @@ module Covercache
145
170
 
146
171
  class_eval <<-EOS, file, line - 2
147
172
  def #{method}(*args, &block) # def cached_example(*args, &block)
148
- options = Array(#{method}_data[:args]) + extract_cache_key(*args) # options = Array(cached_example_data[:args]) + extract_cache_key_from(*args)
173
+ options = Array(#{method}_data[:args]) + extract_cache_key(*args) # options = Array(cached_example_data[:args]) + extract_cache_key(*args)
149
174
  covercache *options, #{method}_data[:opts] do # covercache *options, cached_example_data[:opts] do
150
175
  cache_block = #{method}_data[:block] # cache_block = cached_example_data[:block]
151
176
  if cache_block.present? # if cache_block.present?
@@ -154,7 +179,7 @@ module Covercache
154
179
  self.send :#{original_method}, *args, &block # self.send :example, *args, &block
155
180
  end # end
156
181
  end # end
157
- end # env
182
+ end # end
158
183
  EOS
159
184
  end
160
185
 
@@ -221,17 +246,20 @@ module Covercache
221
246
  end
222
247
  end
223
248
 
224
- # module CoversWithCache
225
- # add Covercache supporting to model
226
- def covers_with_cache
227
- caller_source = caller.first[/[^:]+/]
249
+
250
+ # == Injecting
251
+ #
252
+ module Inject
253
+ def covers_with_cache
254
+ caller_source = caller.first[/[^:]+/]
228
255
 
229
- class_eval do
230
- @covercache_caller_source = caller_source
231
- include Covercache::ModelConcern
232
- extend Covercache::DefiningHelper
256
+ class_eval do
257
+ @covercache_caller_source = caller_source
258
+ include Covercache::ModelConcern
259
+ extend Covercache::DefiningHelper
260
+ end
233
261
  end
234
262
  end
235
263
  end
236
264
 
237
- ActiveRecord::Base.extend Covercache #::CoversWithCache
265
+ ActiveRecord::Base.extend Covercache::Inject
Binary file
@@ -5,39 +5,51 @@ describe "covercache" do
5
5
  it 'should respond to covers_with_cache' do
6
6
  Post.should respond_to(:covers_with_cache)
7
7
  end
8
+
8
9
  it 'should have covercache_model_source attribute' do
9
10
  pp Post.covercache_model_source
10
11
  Post.covercache_model_source.should be_an(String)
11
12
  end
13
+
12
14
  it 'should have covercache_model_digest attribute' do
13
15
  pp Post.covercache_model_digest
14
16
  Post.covercache_model_digest.should be_an(String)
15
17
  end
16
- it "should respounds to instance method defined by define_cached" do
18
+
19
+ it 'should respounds to instance method defined by define_cached' do
17
20
  comment = Comment.last
18
21
  comment.cached_post.should == comment.post
19
22
  end
23
+
20
24
  it "should respounds to class method defined by define_cached" do
21
- comments = Comment.cached_for_post(1)
25
+ comments = Comment.cached_for_post(1, cache_key: 1)
26
+ comments2 = Comment.cached_for_post(2, cache_key: 2)
22
27
  Post.find(1).comments.should == comments
28
+ Post.find(2).comments.should == comments2
23
29
  end
30
+
24
31
  it 'should return the same digest for class and instance' do
25
32
  post1 = Post.find(1)
26
33
  pp post1.covercache_model_digest
27
34
  Post.covercache_model_digest.should == post1.covercache_model_digest
28
35
  end
36
+
29
37
  it 'should return the same values with or without cache' do
30
38
  test = Post.find(1)
31
39
  pp test.inspect
32
40
  pp test.cached_comments.inspect
33
41
  test.cached_comments.count.should == test.comments.count
34
42
  end
35
- it 'post should have class keys storage' do
43
+
44
+ it 'post should have non-empty class keys storage' do
36
45
  pp Post.covercache_keys
37
46
  Post.covercache_keys.should be_an(Array)
47
+ Post.covercache_keys.count.should > 0
38
48
  end
39
- it 'comments should have class keys storage' do
49
+
50
+ it 'comments should non-empty have class keys storage' do
40
51
  pp Comment.covercache_keys
41
- Comment.covercache_keys.should be_an(Array)
52
+ Comment.covercache_keys.should be_an(Array)
53
+ Comment.covercache_keys.count.should > 0
42
54
  end
43
55
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
- require 'rubygems'
2
1
  require 'covercache'
3
2
  require 'bundler'
3
+
4
4
  begin
5
5
  Bundler.setup(:default, :development)
6
6
  rescue Bundler::BundlerError => e
@@ -8,6 +8,7 @@ rescue Bundler::BundlerError => e
8
8
  $stderr.puts "Run `bundle install` to install missing gems"
9
9
  exit e.status_code
10
10
  end
11
+
11
12
  require 'rspec'
12
13
  require 'rspec/autorun'
13
14
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: covercache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tõnis Simo
@@ -9,120 +9,138 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-23 00:00:00.000000000 Z
12
+ date: 2013-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: bundler
15
+ name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ~>
18
+ - - '>='
19
19
  - !ruby/object:Gem::Version
20
- version: '1.3'
21
- type: :development
20
+ version: 3.2.0
21
+ - - <
22
+ - !ruby/object:Gem::Version
23
+ version: '4'
24
+ type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
24
27
  requirements:
25
- - - ~>
28
+ - - '>='
26
29
  - !ruby/object:Gem::Version
27
- version: '1.3'
30
+ version: 3.2.0
31
+ - - <
32
+ - !ruby/object:Gem::Version
33
+ version: '4'
28
34
  - !ruby/object:Gem::Dependency
29
- name: rails
35
+ name: activerecord
30
36
  requirement: !ruby/object:Gem::Requirement
31
37
  requirements:
32
- - - ~>
38
+ - - '>='
33
39
  - !ruby/object:Gem::Version
34
- version: '3.2'
35
- type: :development
40
+ version: 3.2.0
41
+ - - <
42
+ - !ruby/object:Gem::Version
43
+ version: '4'
44
+ type: :runtime
36
45
  prerelease: false
37
46
  version_requirements: !ruby/object:Gem::Requirement
38
47
  requirements:
39
- - - ~>
48
+ - - '>='
40
49
  - !ruby/object:Gem::Version
41
- version: '3.2'
50
+ version: 3.2.0
51
+ - - <
52
+ - !ruby/object:Gem::Version
53
+ version: '4'
42
54
  - !ruby/object:Gem::Dependency
43
- name: rdoc
55
+ name: bundler
44
56
  requirement: !ruby/object:Gem::Requirement
45
57
  requirements:
46
- - - ! '>='
58
+ - - ~>
47
59
  - !ruby/object:Gem::Version
48
- version: '0'
60
+ version: '1.3'
49
61
  type: :development
50
62
  prerelease: false
51
63
  version_requirements: !ruby/object:Gem::Requirement
52
64
  requirements:
53
- - - ! '>='
65
+ - - ~>
54
66
  - !ruby/object:Gem::Version
55
- version: '0'
67
+ version: '1.3'
56
68
  - !ruby/object:Gem::Dependency
57
- name: rspec
69
+ name: rails
58
70
  requirement: !ruby/object:Gem::Requirement
59
71
  requirements:
60
- - - ! '>='
72
+ - - '>='
61
73
  - !ruby/object:Gem::Version
62
- version: '0'
74
+ version: 3.2.0
75
+ - - <
76
+ - !ruby/object:Gem::Version
77
+ version: '4'
63
78
  type: :development
64
79
  prerelease: false
65
80
  version_requirements: !ruby/object:Gem::Requirement
66
81
  requirements:
67
- - - ! '>='
82
+ - - '>='
68
83
  - !ruby/object:Gem::Version
69
- version: '0'
84
+ version: 3.2.0
85
+ - - <
86
+ - !ruby/object:Gem::Version
87
+ version: '4'
70
88
  - !ruby/object:Gem::Dependency
71
- name: rake
89
+ name: rdoc
72
90
  requirement: !ruby/object:Gem::Requirement
73
91
  requirements:
74
- - - ! '>='
92
+ - - '>='
75
93
  - !ruby/object:Gem::Version
76
94
  version: '0'
77
95
  type: :development
78
96
  prerelease: false
79
97
  version_requirements: !ruby/object:Gem::Requirement
80
98
  requirements:
81
- - - ! '>='
99
+ - - '>='
82
100
  - !ruby/object:Gem::Version
83
101
  version: '0'
84
102
  - !ruby/object:Gem::Dependency
85
- name: sqlite3
103
+ name: rspec
86
104
  requirement: !ruby/object:Gem::Requirement
87
105
  requirements:
88
- - - ! '>='
106
+ - - '>='
89
107
  - !ruby/object:Gem::Version
90
108
  version: '0'
91
109
  type: :development
92
110
  prerelease: false
93
111
  version_requirements: !ruby/object:Gem::Requirement
94
112
  requirements:
95
- - - ! '>='
113
+ - - '>='
96
114
  - !ruby/object:Gem::Version
97
115
  version: '0'
98
116
  - !ruby/object:Gem::Dependency
99
- name: activesupport
117
+ name: rake
100
118
  requirement: !ruby/object:Gem::Requirement
101
119
  requirements:
102
- - - ~>
120
+ - - '>='
103
121
  - !ruby/object:Gem::Version
104
- version: '3.0'
105
- type: :runtime
122
+ version: '0'
123
+ type: :development
106
124
  prerelease: false
107
125
  version_requirements: !ruby/object:Gem::Requirement
108
126
  requirements:
109
- - - ~>
127
+ - - '>='
110
128
  - !ruby/object:Gem::Version
111
- version: '3.0'
129
+ version: '0'
112
130
  - !ruby/object:Gem::Dependency
113
- name: activerecord
131
+ name: sqlite3
114
132
  requirement: !ruby/object:Gem::Requirement
115
133
  requirements:
116
- - - ~>
134
+ - - '>='
117
135
  - !ruby/object:Gem::Version
118
- version: '3.0'
119
- type: :runtime
136
+ version: '0'
137
+ type: :development
120
138
  prerelease: false
121
139
  version_requirements: !ruby/object:Gem::Requirement
122
140
  requirements:
123
- - - ~>
141
+ - - '>='
124
142
  - !ruby/object:Gem::Version
125
- version: '3.0'
143
+ version: '0'
126
144
  description: Helper method to simplify Rails caching, based on PackRat
127
145
  email:
128
146
  - anton.estum@gmail.com
@@ -152,17 +170,17 @@ require_paths:
152
170
  - lib
153
171
  required_ruby_version: !ruby/object:Gem::Requirement
154
172
  requirements:
155
- - - ! '>='
173
+ - - '>='
156
174
  - !ruby/object:Gem::Version
157
175
  version: '0'
158
176
  required_rubygems_version: !ruby/object:Gem::Requirement
159
177
  requirements:
160
- - - ! '>='
178
+ - - '>='
161
179
  - !ruby/object:Gem::Version
162
180
  version: '0'
163
181
  requirements: []
164
182
  rubyforge_project:
165
- rubygems_version: 2.0.3
183
+ rubygems_version: 2.0.5
166
184
  signing_key:
167
185
  specification_version: 4
168
186
  summary: Rails cache helper based on PackRat gem
@@ -170,3 +188,4 @@ test_files:
170
188
  - spec/covercache.sqlite3
171
189
  - spec/libs/covercache_spec.rb
172
190
  - spec/spec_helper.rb
191
+ has_rdoc: