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 +5 -0
- data/VERSION +1 -1
- data/cached_values.gemspec +8 -2
- data/lib/cached_value.rb +1 -1
- data/lib/cached_values.rb +19 -4
- metadata +44 -16
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.9.0
|
data/cached_values.gemspec
CHANGED
@@ -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
|
+
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-
|
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
|
96
|
-
|
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:
|
4
|
+
hash: 51
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 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-
|
18
|
+
date: 2011-06-15 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
|
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
|
-
|
33
|
-
|
32
|
+
version_requirements: *id001
|
33
|
+
type: :runtime
|
34
34
|
name: object_proxy
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
|
37
|
-
|
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
|
-
|
47
|
-
|
48
|
-
name:
|
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
|
-
|
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
|
-
|
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
|