magerecord 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/magerecord/eav_record.rb +20 -11
- data/lib/magerecord/order_item.rb +6 -1
- data/magerecord.gemspec +2 -2
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
@@ -24,11 +24,29 @@ module MageRecord
|
|
24
24
|
|
25
25
|
|
26
26
|
def method_missing(meth, *args, &block)
|
27
|
+
eav = get_eav_records(meth)
|
28
|
+
|
29
|
+
if eav.count > 0
|
30
|
+
# return value of Magento EAV attribute if available
|
31
|
+
eav.first
|
32
|
+
else
|
33
|
+
# call superclass's method_missing method
|
34
|
+
# or risk breaking Ruby's method lookup
|
35
|
+
super
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def get_eav_records(attrib_sym)
|
27
45
|
conn = self.class.connection
|
28
46
|
eav_prefix = self.class.eav_prefix
|
29
47
|
|
30
48
|
# note: select_values returns just one value from a single db column
|
31
|
-
|
49
|
+
conn.select_values <<-RAWSQL.strip_heredoc
|
32
50
|
SELECT
|
33
51
|
CASE ea.backend_type
|
34
52
|
WHEN 'varchar' THEN entity_varchar.value
|
@@ -61,18 +79,9 @@ module MageRecord
|
|
61
79
|
LEFT JOIN #{eav_prefix}_entity_decimal AS entity_decimal ON entity.entity_id = entity_decimal.entity_id AND ea.attribute_id = entity_decimal.attribute_id AND ea.backend_type = 'decimal'
|
62
80
|
LEFT JOIN #{eav_prefix}_entity_datetime AS entity_datetime ON entity.entity_id = entity_datetime.entity_id AND ea.attribute_id = entity_datetime.attribute_id AND ea.backend_type = 'datetime'
|
63
81
|
|
64
|
-
WHERE ea.attribute_code = #{conn.quote(
|
82
|
+
WHERE ea.attribute_code = #{conn.quote(attrib_sym)}
|
65
83
|
AND entity.entity_id = #{id}
|
66
84
|
RAWSQL
|
67
|
-
|
68
|
-
if eav.count > 0
|
69
|
-
# return value of Magento EAV attribute if available
|
70
|
-
eav.first
|
71
|
-
else
|
72
|
-
# call superclass's method_missing method
|
73
|
-
# or risk breaking Ruby's method lookup
|
74
|
-
super
|
75
|
-
end
|
76
85
|
end
|
77
86
|
end
|
78
87
|
end
|
@@ -15,7 +15,12 @@ module MageRecord
|
|
15
15
|
|
16
16
|
# call associated product's method
|
17
17
|
def method_missing(meth, *args, &block)
|
18
|
-
|
18
|
+
super || (product && product.send(meth))
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
def respond_to?(meth, include_private = false)
|
23
|
+
super || (product && product.respond_to?(meth))
|
19
24
|
end
|
20
25
|
end
|
21
26
|
end
|
data/magerecord.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "magerecord"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Marc"]
|
12
|
-
s.date = "2014-
|
12
|
+
s.date = "2014-05-09"
|
13
13
|
s.description = "A simple ActiveRecord wrapper for various Magento models"
|
14
14
|
s.email = "xerokill@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: magerecord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-05-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -170,7 +170,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
170
170
|
version: '0'
|
171
171
|
segments:
|
172
172
|
- 0
|
173
|
-
hash: -
|
173
|
+
hash: -2096501154630265700
|
174
174
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
175
|
none: false
|
176
176
|
requirements:
|