cached_values 1.8.1 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,6 +2,11 @@ source 'http://rubygems.org'
2
2
 
3
3
  gem 'object_proxy'
4
4
 
5
+ group :development do
6
+ gem 'rake'
7
+ gem 'jeweler'
8
+ end
9
+
5
10
  group :test do
6
11
  gem 'sqlite3'
7
12
  gem 'shoulda'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.8.1
1
+ 1.9.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{cached_values}
8
- s.version = "1.8.1"
8
+ s.version = "1.9.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jack Danger Canty"]
12
- s.date = %q{2011-05-27}
12
+ s.date = %q{2011-06-15}
13
13
  s.description = %q{Speedup your ActiveRecord by storing and updating the results of SQL or Ruby expressions into record attributes}
14
14
  s.email = %q{rubygems@6brand.com}
15
15
  s.extra_rdoc_files = [
@@ -46,15 +46,21 @@ Gem::Specification.new do |s|
46
46
 
47
47
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
48
  s.add_runtime_dependency(%q<object_proxy>, [">= 0"])
49
+ s.add_development_dependency(%q<rake>, [">= 0"])
50
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
49
51
  s.add_runtime_dependency(%q<object_proxy>, [">= 0"])
50
52
  s.add_development_dependency(%q<active_record>, [">= 0"])
51
53
  else
52
54
  s.add_dependency(%q<object_proxy>, [">= 0"])
55
+ s.add_dependency(%q<rake>, [">= 0"])
56
+ s.add_dependency(%q<jeweler>, [">= 0"])
53
57
  s.add_dependency(%q<object_proxy>, [">= 0"])
54
58
  s.add_dependency(%q<active_record>, [">= 0"])
55
59
  end
56
60
  else
57
61
  s.add_dependency(%q<object_proxy>, [">= 0"])
62
+ s.add_dependency(%q<rake>, [">= 0"])
63
+ s.add_dependency(%q<jeweler>, [">= 0"])
58
64
  s.add_dependency(%q<object_proxy>, [">= 0"])
59
65
  s.add_dependency(%q<active_record>, [">= 0"])
60
66
  end
data/lib/cached_value.rb CHANGED
@@ -83,6 +83,7 @@ module ActiveRecord
83
83
 
84
84
  def update_cache(value)
85
85
  return unless has_cache?
86
+ return unless CachedValues.run?
86
87
 
87
88
  @owner.send(:write_attribute, cache_column, value)
88
89
 
@@ -133,6 +134,5 @@ module ActiveRecord
133
134
  sanitized
134
135
  end
135
136
  end
136
-
137
137
  end
138
138
  end
data/lib/cached_values.rb CHANGED
@@ -12,6 +12,19 @@ module CachedValues # :nodoc:
12
12
  @perform_save = true
13
13
  end
14
14
 
15
+ def self.run?
16
+ @enabled = true if @enabled.nil?
17
+ @enabled
18
+ end
19
+
20
+ def self.disable!
21
+ @enabled = false
22
+ end
23
+
24
+ def self.enable!
25
+ @enabled = true
26
+ end
27
+
15
28
  # USAGE:
16
29
  #
17
30
  # a very simple case in which cached_values works just like the .count method on a has_many association:
@@ -92,12 +105,14 @@ module CachedValues # :nodoc:
92
105
  if events.include?(callback)
93
106
  # before_save do |record|
94
107
  send callback do |record|
95
- if %{before_save before_create before_destroy}.include?(callback.to_s)
96
- CachedValues.without_saving_record do
108
+ if CachedValues.run?
109
+ if %{before_save before_create before_destroy}.include?(callback.to_s)
110
+ CachedValues.without_saving_record do
111
+ record.send(reflection.name).reload
112
+ end
113
+ else
97
114
  record.send(reflection.name).reload
98
115
  end
99
- else
100
- record.send(reflection.name).reload
101
116
  end
102
117
  end
103
118
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cached_values
3
3
  version: !ruby/object:Gem::Version
4
- hash: 53
4
+ hash: 51
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 8
9
- - 1
10
- version: 1.8.1
8
+ - 9
9
+ - 0
10
+ version: 1.9.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jack Danger Canty
@@ -15,12 +15,12 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-27 00:00:00 -07:00
18
+ date: 2011-06-15 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- type: :runtime
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
25
25
  requirements:
26
26
  - - ">="
@@ -29,12 +29,12 @@ dependencies:
29
29
  segments:
30
30
  - 0
31
31
  version: "0"
32
- requirement: *id001
33
- prerelease: false
32
+ version_requirements: *id001
33
+ type: :runtime
34
34
  name: object_proxy
35
35
  - !ruby/object:Gem::Dependency
36
- type: :runtime
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
38
  none: false
39
39
  requirements:
40
40
  - - ">="
@@ -43,12 +43,26 @@ dependencies:
43
43
  segments:
44
44
  - 0
45
45
  version: "0"
46
- requirement: *id002
47
- prerelease: false
48
- name: object_proxy
46
+ version_requirements: *id002
47
+ type: :development
48
+ name: rake
49
49
  - !ruby/object:Gem::Dependency
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ version: "0"
60
+ version_requirements: *id003
50
61
  type: :development
51
- version_requirements: &id003 !ruby/object:Gem::Requirement
62
+ name: jeweler
63
+ - !ruby/object:Gem::Dependency
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
52
66
  none: false
53
67
  requirements:
54
68
  - - ">="
@@ -57,8 +71,22 @@ dependencies:
57
71
  segments:
58
72
  - 0
59
73
  version: "0"
60
- requirement: *id003
74
+ version_requirements: *id004
75
+ type: :runtime
76
+ name: object_proxy
77
+ - !ruby/object:Gem::Dependency
61
78
  prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ hash: 3
85
+ segments:
86
+ - 0
87
+ version: "0"
88
+ version_requirements: *id005
89
+ type: :development
62
90
  name: active_record
63
91
  description: Speedup your ActiveRecord by storing and updating the results of SQL or Ruby expressions into record attributes
64
92
  email: rubygems@6brand.com