cached_values 1.8.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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