property_sets 0.4.4 → 0.5.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.
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
@@ -14,7 +14,7 @@ module PropertySets
|
|
14
14
|
property_class = PropertySets.ensure_property_set_class(association, self)
|
15
15
|
property_class.instance_eval(&block)
|
16
16
|
|
17
|
-
has_many association, :class_name => property_class.name, :dependent => :destroy do
|
17
|
+
has_many association, :class_name => property_class.name, :autosave => true, :dependent => :destroy do
|
18
18
|
|
19
19
|
# Accepts a name value pair hash { :name => 'value', :pairs => true } and builds a property for each key
|
20
20
|
def set(property_pairs, with_protection = false)
|
@@ -61,7 +61,6 @@ module PropertySets
|
|
61
61
|
define_method "#{key}=" do |value|
|
62
62
|
instance = lookup(key)
|
63
63
|
instance.value = value
|
64
|
-
@owner.send(association) << instance
|
65
64
|
value
|
66
65
|
end
|
67
66
|
|
@@ -45,12 +45,6 @@ module PropertySets
|
|
45
45
|
def owner_class_instance
|
46
46
|
send(self.class.owner_class_sym)
|
47
47
|
end
|
48
|
-
|
49
|
-
def update_owner_timestamp
|
50
|
-
if owner_class_instance && !owner_class_instance.new_record? && owner_class_instance.updated_at < 1.second.ago
|
51
|
-
owner_class_instance.update_attribute(:updated_at, Time.now)
|
52
|
-
end
|
53
|
-
end
|
54
48
|
end
|
55
49
|
|
56
50
|
module ClassMethods
|
@@ -81,11 +75,6 @@ module PropertySets
|
|
81
75
|
belongs_to owner_class_sym
|
82
76
|
validates_presence_of owner_class_sym
|
83
77
|
validates_uniqueness_of :name, :scope => owner_class_key_sym
|
84
|
-
|
85
|
-
if owner_class.table_exists? && owner_class.column_names.include?("updated_at")
|
86
|
-
before_create :update_owner_timestamp
|
87
|
-
before_destroy :update_owner_timestamp
|
88
|
-
end
|
89
78
|
end
|
90
79
|
|
91
80
|
def owner_assoc=(association)
|
data/property_sets.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{property_sets}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Morten Primdahl"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-04-15}
|
13
13
|
s.description = %q{This gem is an ActiveRecord extension which provides a convenient interface for managing per row properties}
|
14
14
|
s.email = %q{morten@zendesk.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/test/test_property_sets.rb
CHANGED
@@ -102,8 +102,11 @@ class TestPropertySets < ActiveSupport::TestCase
|
|
102
102
|
|
103
103
|
should "coerce everything but nil to string" do
|
104
104
|
@account.settings.foo = 3
|
105
|
+
assert @account.settings.foo == 3
|
106
|
+
@account.save
|
105
107
|
assert @account.settings.foo == "3"
|
106
108
|
@account.settings.foo = nil
|
109
|
+
@account.save
|
107
110
|
assert @account.settings.foo.nil?
|
108
111
|
end
|
109
112
|
|
@@ -124,10 +127,8 @@ class TestPropertySets < ActiveSupport::TestCase
|
|
124
127
|
context "validations" do
|
125
128
|
should "add an error when violated" do
|
126
129
|
@account.validations.validated = "hello"
|
127
|
-
|
128
|
-
assert_equal "Value BEEP", @account.
|
129
|
-
assert_equal false, @account.save
|
130
|
-
assert_equal "Validations is invalid", @account.errors.full_messages.first
|
130
|
+
assert !@account.valid?
|
131
|
+
assert_equal "Value BEEP", @account.errors.full_messages.first
|
131
132
|
end
|
132
133
|
end
|
133
134
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: property_sets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 0.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Morten Primdahl
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-04-15 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|