flattener 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: