cached_values 1.7.3 → 1.8.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 +10 -0
- data/VERSION +1 -1
- data/cached_values.gemspec +6 -2
- data/lib/cached_value.rb +8 -7
- data/lib/cached_values.rb +3 -6
- data/test/test_helper.rb +6 -3
- metadata +29 -14
data/Gemfile
ADDED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.8.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.8.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-04-
|
12
|
+
s.date = %q{2011-04-18}
|
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 = [
|
@@ -17,6 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
"README.markdown"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
|
+
"Gemfile",
|
20
21
|
"LICENSE",
|
21
22
|
"MIT-LICENSE",
|
22
23
|
"README.markdown",
|
@@ -50,13 +51,16 @@ Gem::Specification.new do |s|
|
|
50
51
|
s.specification_version = 3
|
51
52
|
|
52
53
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
54
|
+
s.add_runtime_dependency(%q<object_proxy>, [">= 0"])
|
53
55
|
s.add_runtime_dependency(%q<object_proxy>, [">= 0"])
|
54
56
|
s.add_development_dependency(%q<active_record>, [">= 0"])
|
55
57
|
else
|
58
|
+
s.add_dependency(%q<object_proxy>, [">= 0"])
|
56
59
|
s.add_dependency(%q<object_proxy>, [">= 0"])
|
57
60
|
s.add_dependency(%q<active_record>, [">= 0"])
|
58
61
|
end
|
59
62
|
else
|
63
|
+
s.add_dependency(%q<object_proxy>, [">= 0"])
|
60
64
|
s.add_dependency(%q<object_proxy>, [">= 0"])
|
61
65
|
s.add_dependency(%q<active_record>, [">= 0"])
|
62
66
|
end
|
data/lib/cached_value.rb
CHANGED
@@ -47,7 +47,7 @@ module ActiveRecord
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def find_target_by_sql
|
50
|
-
sql =
|
50
|
+
sql = interpolate_and_sanitize_sql(@reflection.options[:sql])
|
51
51
|
result = @owner.class.connection.select_value(sql)
|
52
52
|
result = typecast_result(result)
|
53
53
|
result
|
@@ -121,12 +121,13 @@ module ActiveRecord
|
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
124
|
-
def
|
125
|
-
@owner.send(:
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
124
|
+
def interpolate_and_sanitize_sql(sql, record = nil)
|
125
|
+
sanitized = @owner.class.send(:sanitize_sql, sql, record)
|
126
|
+
if sanitized =~ /\#\{.*\}/
|
127
|
+
@owner.instance_eval("%@#{sanitized.gsub('@', '\@')}@", __FILE__, __LINE__)
|
128
|
+
else
|
129
|
+
sanitized
|
130
|
+
end
|
130
131
|
end
|
131
132
|
|
132
133
|
end
|
data/lib/cached_values.rb
CHANGED
@@ -69,10 +69,7 @@ module CachedValues # :nodoc:
|
|
69
69
|
|
70
70
|
def create_cached_value_reflection(name, options)
|
71
71
|
options.assert_valid_keys(:sql, :eval, :cache, :clear, :load, :reload)
|
72
|
-
|
73
|
-
reflection = ActiveRecord::Reflection::MacroReflection.new(:cached_value, name, options, self)
|
74
|
-
write_inheritable_hash :reflections, name => reflection
|
75
|
-
reflection
|
72
|
+
ActiveRecord::Reflection::MacroReflection.new(:cached_value, name, options, self)
|
76
73
|
end
|
77
74
|
|
78
75
|
def cached_value_accessor_method(reflection, association_proxy_class)
|
@@ -90,8 +87,8 @@ module CachedValues # :nodoc:
|
|
90
87
|
|
91
88
|
def cached_value_callback_methods(reflection)
|
92
89
|
if events = reflection.options[:reload]
|
93
|
-
events = Array(events).map
|
94
|
-
ActiveRecord::Callbacks::CALLBACKS.each do |callback|
|
90
|
+
events = Array(events).map(&:to_sym)
|
91
|
+
ActiveRecord::Callbacks::CALLBACKS.map(&:to_sym).each do |callback|
|
95
92
|
if events.include?(callback)
|
96
93
|
# before_save do |record|
|
97
94
|
send callback do |record|
|
data/test/test_helper.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
# Include this file in your test by copying the following line to your test:
|
2
2
|
# require File.expand_path(File.dirname(__FILE__) + "/test_helper")
|
3
3
|
|
4
|
+
require 'rubygems'
|
5
|
+
require 'bundler'
|
6
|
+
Bundler.require :default, :test
|
7
|
+
|
4
8
|
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
5
9
|
|
6
|
-
require '
|
7
|
-
gem 'test-unit'
|
8
|
-
require 'test/unit'
|
10
|
+
require 'shoulda'
|
9
11
|
require 'active_support'
|
10
12
|
require 'active_record'
|
11
13
|
require 'active_record/fixtures'
|
@@ -36,3 +38,4 @@ class ActiveSupport::TestCase #:nodoc:
|
|
36
38
|
|
37
39
|
# Add more helper methods to be used by all tests here...
|
38
40
|
end
|
41
|
+
|
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: 55
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 8
|
9
|
+
- 0
|
10
|
+
version: 1.8.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jack Danger Canty
|
@@ -15,13 +15,12 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-04-
|
18
|
+
date: 2011-04-18 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
+
type: :runtime
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
25
|
requirements:
|
27
26
|
- - ">="
|
@@ -30,12 +29,12 @@ dependencies:
|
|
30
29
|
segments:
|
31
30
|
- 0
|
32
31
|
version: "0"
|
33
|
-
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: active_record
|
32
|
+
requirement: *id001
|
37
33
|
prerelease: false
|
38
|
-
|
34
|
+
name: object_proxy
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
38
|
none: false
|
40
39
|
requirements:
|
41
40
|
- - ">="
|
@@ -44,8 +43,23 @@ dependencies:
|
|
44
43
|
segments:
|
45
44
|
- 0
|
46
45
|
version: "0"
|
46
|
+
requirement: *id002
|
47
|
+
prerelease: false
|
48
|
+
name: object_proxy
|
49
|
+
- !ruby/object:Gem::Dependency
|
47
50
|
type: :development
|
48
|
-
version_requirements:
|
51
|
+
version_requirements: &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
|
+
requirement: *id003
|
61
|
+
prerelease: false
|
62
|
+
name: active_record
|
49
63
|
description: Speedup your ActiveRecord by storing and updating the results of SQL or Ruby expressions into record attributes
|
50
64
|
email: rubygems@6brand.com
|
51
65
|
executables: []
|
@@ -56,6 +70,7 @@ extra_rdoc_files:
|
|
56
70
|
- LICENSE
|
57
71
|
- README.markdown
|
58
72
|
files:
|
73
|
+
- Gemfile
|
59
74
|
- LICENSE
|
60
75
|
- MIT-LICENSE
|
61
76
|
- README.markdown
|