dynamo 0.0.1 → 0.0.2

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.
@@ -4,71 +4,73 @@
4
4
  #
5
5
  # The `fields` call should not be hard coded, etc
6
6
  #
7
- module DynamicFields
8
- FIELD_NAME_PATTERN = /(.+)_field(=)?$/
7
+ module Dynamo
8
+ module DynamicFields
9
+ FIELD_NAME_PATTERN = /(.+)_field(=)?$/
9
10
 
10
- module ClassMethods
11
- def dynamic_fields(field_name)
12
- self.class_eval do
13
- serialize field_name, Array
11
+ module ClassMethods
12
+ def dynamic_fields(field_name)
13
+ self.class_eval do
14
+ serialize field_name, Array
15
+ end
14
16
  end
15
17
  end
16
- end
17
18
 
18
- def self.included(base)
19
- base.extend ClassMethods
20
- end
19
+ def self.included(base)
20
+ base.extend ClassMethods
21
+ end
21
22
 
22
- def validate_dynamic_fields
23
- self.fields.each do |field|
24
- self.errors.add(:fields, field.errors) unless field.valid?
23
+ def validate_dynamic_fields
24
+ self.fields.each do |field|
25
+ self.errors.add(:fields, field.errors) unless field.valid?
26
+ end
25
27
  end
26
- end
27
28
 
28
- def field_errors
29
- self.fields.each_with_object({}) do |f, h|
30
- h.merge! f.field_errors
29
+ def field_errors
30
+ self.fields.each_with_object({}) do |f, h|
31
+ h.merge! f.field_errors
32
+ end
31
33
  end
32
- end
33
34
 
34
- def fields_metadata=(fields_metadata)
35
- self.fields = []
35
+ def fields_metadata=(fields_metadata)
36
+ self.fields = []
36
37
 
37
- fields_metadata.each do |field_metadata|
38
- self.fields << CustomFieldValue.new(:metadata => field_metadata)
38
+ fields_metadata.each do |field_metadata|
39
+ self.fields << CustomFieldValue.new(:metadata => field_metadata)
40
+ end
39
41
  end
40
- end
41
42
 
42
- def respond_to_missing?(sym, include_private = false)
43
- return super unless sym.match FIELD_NAME_PATTERN
43
+ def respond_to_missing?(sym, include_private = false)
44
+ return super unless sym.match FIELD_NAME_PATTERN
44
45
 
45
- field_name = $1
46
+ field_name = $1
46
47
 
47
- self.fields.find {|f| f.metadata.underscored_name == field_name}.present?
48
- end
48
+ self.fields.find {|f| f.metadata.underscored_name == field_name}.present?
49
+ end
49
50
 
50
- def method_missing(sym, *args, &block)
51
- return super unless sym.match FIELD_NAME_PATTERN
51
+ def method_missing(sym, *args, &block)
52
+ return super unless sym.match FIELD_NAME_PATTERN
52
53
 
53
- field_name = $1
54
- is_setter = $2.present?
55
- field = self.fields.find {|f| f.metadata.underscored_name == field_name} || CustomFieldValue.new
54
+ field_name = $1
55
+ is_setter = $2.present?
56
+ field = self.fields.find {|f| f.metadata.underscored_name == field_name} || CustomFieldValue.new
56
57
 
57
- if is_setter
58
- field.value = args.first
59
- else
60
- field.value
58
+ if is_setter
59
+ field.value = args.first
60
+ else
61
+ field.value
62
+ end
61
63
  end
62
- end
63
64
 
64
- def attributes=(attrs)
65
- field_attributes = attrs.delete('fields') {{}}
65
+ def attributes=(attrs)
66
+ field_attributes = attrs.delete('fields') {{}}
66
67
 
67
- fields.each do |field|
68
- field.set_value_from_attributes field_attributes
69
- fields_will_change! if field.changed?
70
- end
68
+ fields.each do |field|
69
+ field.set_value_from_attributes field_attributes
70
+ fields_will_change! if field.changed?
71
+ end
71
72
 
72
- super
73
+ super
74
+ end
73
75
  end
74
76
  end
@@ -1,3 +1,3 @@
1
1
  module Dynamo
2
- VERSION = "0.0.1"
2
+ VERSION = '0.0.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-10-02 00:00:00.000000000 Z
13
+ date: 2012-10-18 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: ''
16
16
  email: support@chirrpy.com