flattener 0.0.5 → 0.0.6

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.
@@ -45,7 +45,7 @@ module Flattener
45
45
  end
46
46
 
47
47
  def add_proxy_method!
48
- code = <<-CODE
48
+ @klass.class_eval <<-CODE, __FILE__, __LINE__
49
49
  def #{proxy_method_name}
50
50
  if self.#{accessor_method_name}.nil?
51
51
  #{build_method_name}
@@ -53,24 +53,27 @@ module Flattener
53
53
  self.#{accessor_method_name}
54
54
  end
55
55
  CODE
56
- @klass.class_eval code, __FILE__, __LINE__
57
56
  end
58
57
 
59
58
  def add_validator_method!
60
59
  if supports_validations?
61
- code = <<-CODE
62
- def #{validate_method_name}
60
+ @klass.class_eval <<-CODE, __FILE__, __LINE__
61
+ def #{validate_method_name}
63
62
  unless self.#{accessor_method_name}.blank?
64
63
  self.#{proxy_method_name}.valid?
65
64
 
66
65
  self.#{proxy_method_name}.errors.each do |name, message|
67
66
  flattened_name = self.class.flatteners[:#{name}].flattened_attrs[name]
67
+ if flattened_name.nil?
68
+ flattened_name = :base
69
+ message = "\#{name} \#{message}"
70
+ end
68
71
  self.errors.add flattened_name, message
69
72
  end
70
73
  end
71
74
  end
72
75
  CODE
73
- @klass.class_eval code
76
+
74
77
  @klass.validate validate_method_name
75
78
  end
76
79
  end
@@ -108,7 +111,7 @@ module Flattener
108
111
 
109
112
  def attribute(name)
110
113
  method_name = method_name_for(name)
111
- code = <<-CODE
114
+ @klass.class_eval <<-CODE, __FILE__, __LINE__
112
115
  def #{method_name}
113
116
  #{proxy_method_name}.#{name}
114
117
  end
@@ -117,7 +120,6 @@ module Flattener
117
120
  #{proxy_method_name}.#{name} = value
118
121
  end
119
122
  CODE
120
- @klass.class_eval code, __FILE__, __LINE__
121
123
  flattened_attrs[name] = method_name
122
124
  end
123
125
 
@@ -1,3 +1,3 @@
1
1
  module Flattener
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flattener
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &2154104960 !ruby/object:Gem::Requirement
16
+ requirement: &2153900160 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2154104960
24
+ version_requirements: *2153900160
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &2154104520 !ruby/object:Gem::Requirement
27
+ requirement: &2153716040 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2154104520
35
+ version_requirements: *2153716040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sqlite3
38
- requirement: &2154104080 !ruby/object:Gem::Requirement
38
+ requirement: &2153424860 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2154104080
46
+ version_requirements: *2153424860
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: shoulda
49
- requirement: &2154103660 !ruby/object:Gem::Requirement
49
+ requirement: &2153231500 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2154103660
57
+ version_requirements: *2153231500
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: guard-rspec
60
- requirement: &2154103220 !ruby/object:Gem::Requirement
60
+ requirement: &2153060140 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2154103220
68
+ version_requirements: *2153060140
69
69
  description: ! 'Allows to flat an object and his children (ActiveRecord based) into
70
70
  one level, so you can create them all without building a complex form. '
71
71
  email: