dynamic_attributes 1.1.3 → 1.2.0

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