property 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +7 -0
- data/lib/property.rb +1 -1
- data/lib/property/attribute.rb +3 -3
- data/property.gemspec +2 -2
- data/test/unit/property/declaration_test.rb +16 -0
- metadata +2 -2
data/History.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
== 0.8.2 2010-02-16
|
2
|
+
|
3
|
+
* 2 minor enhancements
|
4
|
+
* fixed a bug where properties would be dumped even if none changed
|
5
|
+
* fixed a bug where properties would not be dumped soon enough to mark
|
6
|
+
storage object as dirty
|
7
|
+
|
1
8
|
== 0.8.1 2010-02-14
|
2
9
|
|
3
10
|
* 2 major enhancement
|
data/lib/property.rb
CHANGED
data/lib/property/attribute.rb
CHANGED
@@ -23,7 +23,7 @@ module Property
|
|
23
23
|
|
24
24
|
store_properties_in self
|
25
25
|
|
26
|
-
|
26
|
+
after_validation :dump_properties
|
27
27
|
|
28
28
|
alias_method_chain :attributes=, :properties
|
29
29
|
end
|
@@ -48,14 +48,14 @@ module Property
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def dump_properties
|
51
|
-
if @properties
|
51
|
+
if @properties && @properties.changed?
|
52
52
|
if !@properties.empty?
|
53
53
|
#{accessor}write_attribute('properties', encode_properties(@properties))
|
54
54
|
else
|
55
55
|
#{accessor}write_attribute('properties', nil)
|
56
56
|
end
|
57
|
+
@properties.clear_changes!
|
57
58
|
end
|
58
|
-
@properties.clear_changes!
|
59
59
|
true
|
60
60
|
end
|
61
61
|
EOF
|
data/property.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{property}
|
8
|
-
s.version = "0.8.
|
8
|
+
s.version = "0.8.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Renaud Kern", "Gaspard Bucher"]
|
12
|
-
s.date = %q{2010-02-
|
12
|
+
s.date = %q{2010-02-16}
|
13
13
|
s.description = %q{Wrap model properties into a single database column and declare properties from within the model.}
|
14
14
|
s.email = %q{gaspard@teti.ch}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -226,6 +226,8 @@ class DeclarationTest < Test::Unit::TestCase
|
|
226
226
|
end
|
227
227
|
|
228
228
|
Contact = Class.new(ActiveRecord::Base) do
|
229
|
+
attr_accessor :assertion
|
230
|
+
before_save :before_save_assertion
|
229
231
|
set_table_name :employees
|
230
232
|
has_many :versions, :class_name => 'DeclarationTest::Version'
|
231
233
|
|
@@ -253,6 +255,13 @@ class DeclarationTest < Test::Unit::TestCase
|
|
253
255
|
end
|
254
256
|
end
|
255
257
|
end
|
258
|
+
|
259
|
+
private
|
260
|
+
def before_save_assertion
|
261
|
+
return true unless @assertion
|
262
|
+
@assertion.call
|
263
|
+
true
|
264
|
+
end
|
256
265
|
end
|
257
266
|
|
258
267
|
setup do
|
@@ -274,6 +283,13 @@ class DeclarationTest < Test::Unit::TestCase
|
|
274
283
|
assert_equal 'no', subject.famous
|
275
284
|
assert_equal Hash["first_name"=>["Martin", "Hannah"]], subject.changes
|
276
285
|
end
|
286
|
+
|
287
|
+
should 'dump properties before any before_save triggers' do
|
288
|
+
subject.assertion = Proc.new do
|
289
|
+
assert_match %r{Karl}, subject.version.properties
|
290
|
+
end
|
291
|
+
subject.update_attributes('first_name' => 'Karl')
|
292
|
+
end
|
277
293
|
end
|
278
294
|
end
|
279
295
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: property
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Renaud Kern
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2010-02-
|
13
|
+
date: 2010-02-16 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|