dynamic_attributes 1.1.3 → 1.2.0

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.
@@ -71,6 +71,8 @@ Note that a dynamic attribute should be prefixed (by default with 'field_'), see
71
71
  * Get Info:
72
72
  * dynamic_model.has_dynamic_attribute?(dynamic_attribute)
73
73
  * Returns whether a given attribute is a dynamic attribute. Accepts strings and symbols.
74
+ * dynamic_model.read_dynamic_attribute(dynamic_attribute)
75
+ * Returns the value for a given dynamic attribute. Returns nil if the attribute does not exist or if the attribute is not a dynamic attribute.
74
76
  * dynamic_model.persisting_dynamic_attributes
75
77
  * Returns an array of the dynamic attributes that will be persisted.
76
78
  * DynamicModel.dynamic_attribute_field
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.3
1
+ 1.2.0
@@ -99,20 +99,26 @@ module DynamicAttributes
99
99
  class << self
100
100
  self
101
101
  end
102
- end
102
+ end
103
+
104
+ # Defines an accessor for the given attribute. It is defined withinin the public scope to ensure the
105
+ # accessor is publicly available in ruby 1.9.
106
+ def define_accessor_for_attribute(att)
107
+ singleton_class.send(:attr_accessor, att)
108
+ end
103
109
 
104
110
  private
105
-
111
+
106
112
  # Method that is called when a dynamic attribute is added to this model. It adds this attribute to the list
107
113
  # of attributes that will be persisited, creates an accessor and sets the attribute value. To reflect that the
108
114
  # attribute has been added, the serialization attribute will also be updated.
109
- def set_dynamic_attribute(att, value)
115
+ def set_dynamic_attribute(att, value = nil)
110
116
  att = att.to_s
111
117
  persisting_dynamic_attributes << att
112
- singleton_class.send(:attr_accessor, att)
118
+ define_accessor_for_attribute(att)
113
119
  send(att + '=', value)
114
120
  update_dynamic_attribute(att, value)
115
- end
121
+ end
116
122
 
117
123
  # Called on object initialization or when calling update_attributes to convert passed dynamic attributes
118
124
  # into attributes that will be persisted by calling set_dynamic_attribute if it does not exist already.
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
5
  $LOAD_PATH.unshift(File.dirname(__FILE__))
6
6
 
7
7
  gem "activerecord"
8
- require 'FileUtils'
8
+ require 'fileutils'
9
9
  require 'active_record'
10
10
  require 'dynamic_attributes'
11
11
  require 'pp'
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamic_attributes
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 31
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
7
- - 1
8
- - 3
9
- version: 1.1.3
8
+ - 2
9
+ - 0
10
+ version: 1.2.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Reinier de Lange
@@ -14,7 +15,7 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-09-16 00:00:00 +02:00
18
+ date: 2010-11-21 00:00:00 +01:00
18
19
  default_executable:
19
20
  dependencies: []
20
21
 
@@ -38,6 +39,10 @@ files:
38
39
  - VERSION
39
40
  - init.rb
40
41
  - lib/dynamic_attributes.rb
42
+ - test/helper.rb
43
+ - test/test_dynamic_attributes.rb
44
+ - test/database.yml
45
+ - test/schema.rb
41
46
  has_rdoc: true
42
47
  homepage: http://github.com/moiristo/dynamic_attributes
43
48
  licenses: []
@@ -48,23 +53,27 @@ rdoc_options:
48
53
  require_paths:
49
54
  - lib
50
55
  required_ruby_version: !ruby/object:Gem::Requirement
56
+ none: false
51
57
  requirements:
52
58
  - - ">="
53
59
  - !ruby/object:Gem::Version
60
+ hash: 3
54
61
  segments:
55
62
  - 0
56
63
  version: "0"
57
64
  required_rubygems_version: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ">="
60
68
  - !ruby/object:Gem::Version
69
+ hash: 3
61
70
  segments:
62
71
  - 0
63
72
  version: "0"
64
73
  requirements: []
65
74
 
66
75
  rubyforge_project:
67
- rubygems_version: 1.3.6
76
+ rubygems_version: 1.3.7
68
77
  signing_key:
69
78
  specification_version: 3
70
79
  summary: dynamic_attributes is a gem that lets you dynamically specify attributes on ActiveRecord models, which will be serialized and deserialized to a given text column.