dynamic_attributes 1.1.1 → 1.1.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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.1
1
+ 1.1.2
@@ -33,6 +33,10 @@ module DynamicAttributes
33
33
  super(attributes.except(*dynamic_attributes.keys))
34
34
  set_dynamic_attributes(dynamic_attributes)
35
35
  end
36
+
37
+ def has_dynamic_attribute?(dynamic_attribute)
38
+ return persisting_dynamic_attributes.include?(dynamic_attribute.to_s)
39
+ end
36
40
 
37
41
  # On saving an AR record, the attributes to be persisted are re-evaluated and written to the serialization field.
38
42
  def evaluate_dynamic_attributes
@@ -20,6 +20,7 @@ class TestDynamicAttributes < Test::Unit::TestCase
20
20
  assert_equal 'hello', @dynamic_model.field_test
21
21
  assert @dynamic_model.persisting_dynamic_attributes.include?('field_test')
22
22
  assert @dynamic_model.dynamic_attributes.keys.include?('field_test')
23
+ assert @dynamic_model.has_dynamic_attribute?(:field_test)
23
24
  end
24
25
 
25
26
  def test_should_create_dynamic_attributes_for_hash
@@ -27,7 +28,9 @@ class TestDynamicAttributes < Test::Unit::TestCase
27
28
  assert dynamic_model.persisting_dynamic_attributes.include?('field_test1')
28
29
  assert dynamic_model.persisting_dynamic_attributes.include?('field_test2')
29
30
  assert_equal 'Hello', dynamic_model.field_test1
30
- assert_equal 'World', dynamic_model.field_test2
31
+ assert_equal 'World', dynamic_model.field_test2
32
+ assert dynamic_model.has_dynamic_attribute?(:field_test1)
33
+ assert dynamic_model.has_dynamic_attribute?(:field_test2)
31
34
  end
32
35
 
33
36
  def test_should_update_attributes
@@ -39,13 +42,18 @@ class TestDynamicAttributes < Test::Unit::TestCase
39
42
 
40
43
  @dynamic_model.reload
41
44
  assert_equal 'Hello', @dynamic_model.field_test1
42
- assert_equal 'World', @dynamic_model.field_test2
45
+ assert_equal 'World', @dynamic_model.field_test2
46
+
47
+ assert @dynamic_model.has_dynamic_attribute?(:field_test1)
48
+ assert @dynamic_model.has_dynamic_attribute?(:field_test2)
43
49
  end
44
50
 
45
51
  def test_should_load_dynamic_attributes_after_find
46
52
  DynamicModel.update_all("dynamic_attributes = '---\nfield_test: Hi!\n'", :id => @dynamic_model.id)
47
53
  dynamic_model = DynamicModel.find(@dynamic_model.id)
48
54
  assert_equal 'Hi!', dynamic_model.field_test
55
+
56
+ assert dynamic_model.has_dynamic_attribute?(:field_test)
49
57
  end
50
58
 
51
59
  def test_should_set_dynamic_attribute_to_nil_if_configured
@@ -53,12 +61,14 @@ class TestDynamicAttributes < Test::Unit::TestCase
53
61
  assert_nil @dynamic_model.field_test
54
62
  assert @dynamic_model.persisting_dynamic_attributes.include?('field_test')
55
63
  assert @dynamic_model.dynamic_attributes.include?('field_test')
64
+ assert @dynamic_model.has_dynamic_attribute?(:field_test)
56
65
 
57
66
  DynamicModel.destroy_dynamic_attribute_for_nil = true
58
67
  assert @dynamic_model.update_attribute(:field_test,nil)
59
68
  assert !@dynamic_model.persisting_dynamic_attributes.include?('field_test')
60
69
  assert !@dynamic_model.dynamic_attributes.include?('field_test')
61
70
  assert !@dynamic_model.respond_to?('field_test=')
71
+ assert !@dynamic_model.has_dynamic_attribute?(:field_test)
62
72
  end
63
73
 
64
74
  def test_should_allow_different_prefix
@@ -68,7 +78,9 @@ class TestDynamicAttributes < Test::Unit::TestCase
68
78
  assert_equal 'hello', @dynamic_model.what_test
69
79
  assert @dynamic_model.persisting_dynamic_attributes.include?('what_test')
70
80
  assert @dynamic_model.dynamic_attributes.keys.include?('what_test')
71
-
81
+ assert @dynamic_model.has_dynamic_attribute?(:what_test)
82
+ assert !@dynamic_model.has_dynamic_attribute?(:field_test)
83
+
72
84
  assert_raises NoMethodError do
73
85
  @dynamic_model.field_test = 'Fail'
74
86
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamic_attributes
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
5
4
  prerelease: false
6
5
  segments:
7
6
  - 1
8
7
  - 1
9
- - 1
10
- version: 1.1.1
8
+ - 2
9
+ version: 1.1.2
11
10
  platform: ruby
12
11
  authors:
13
12
  - Reinier de Lange
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-09-15 00:00:00 +02:00
17
+ date: 2010-09-16 00:00:00 +02:00
19
18
  default_executable:
20
19
  dependencies: []
21
20
 
@@ -39,10 +38,6 @@ files:
39
38
  - VERSION
40
39
  - init.rb
41
40
  - lib/dynamic_attributes.rb
42
- - test/helper.rb
43
- - test/test_dynamic_attributes.rb
44
- - test/database.yml
45
- - test/schema.rb
46
41
  has_rdoc: true
47
42
  homepage: http://github.com/moiristo/dynamic_attributes
48
43
  licenses: []
@@ -53,27 +48,23 @@ rdoc_options:
53
48
  require_paths:
54
49
  - lib
55
50
  required_ruby_version: !ruby/object:Gem::Requirement
56
- none: false
57
51
  requirements:
58
52
  - - ">="
59
53
  - !ruby/object:Gem::Version
60
- hash: 3
61
54
  segments:
62
55
  - 0
63
56
  version: "0"
64
57
  required_rubygems_version: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ">="
68
60
  - !ruby/object:Gem::Version
69
- hash: 3
70
61
  segments:
71
62
  - 0
72
63
  version: "0"
73
64
  requirements: []
74
65
 
75
66
  rubyforge_project:
76
- rubygems_version: 1.3.7
67
+ rubygems_version: 1.3.6
77
68
  signing_key:
78
69
  specification_version: 3
79
70
  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.