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 CHANGED
@@ -1 +1 @@
1
- 0.1.2
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
- eav = conn.select_values <<-RAWSQL.strip_heredoc
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(meth)}
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
- product.nil? ? super : product.send(meth)
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.2"
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-04-01"
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.2
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-04-01 00:00:00.000000000 Z
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: -4499826596874981208
173
+ hash: -2096501154630265700
174
174
  required_rubygems_version: !ruby/object:Gem::Requirement
175
175
  none: false
176
176
  requirements: