reorm 0.1.0 → 0.1.1
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.
- checksums.yaml +4 -4
- data/lib/reorm/model.rb +9 -1
- data/lib/reorm/version.rb +1 -1
- data/spec/reorm/model_spec.rb +20 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8e2625b170999be3b178611122ec2353797b453
|
4
|
+
data.tar.gz: 70746fd3ab31c1a14ea5d9c57494b22f11c6ff3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 764c1dbc2153fa85b6e27697a3683d4095506942444b86ee60017f362f3233bfedacd0277bbd91d68ce9dca95eb07dccfb8566d7a3e005afc69165bbb881b25b
|
7
|
+
data.tar.gz: 2fad70403611ab22870ac4167dda6b93c3573f0fc5befc8d3d1f89e947616f1952f6ccd275c442bbfedabc43876e1643664c9058ee5004410abdf545df4593bc
|
data/lib/reorm/model.rb
CHANGED
@@ -16,7 +16,11 @@ module Reorm
|
|
16
16
|
def initialize(properties={})
|
17
17
|
@properties = {}
|
18
18
|
properties.each do |key, value|
|
19
|
-
|
19
|
+
if self.respond_to?(setter_name(key))
|
20
|
+
self.send(setter_name(key), value)
|
21
|
+
else
|
22
|
+
@properties[key.to_sym] = value
|
23
|
+
end
|
20
24
|
end
|
21
25
|
@errors = PropertyErrors.new
|
22
26
|
end
|
@@ -122,6 +126,10 @@ module Reorm
|
|
122
126
|
name.to_s[-1,1] == "=" ? name.to_s[0...-1].to_sym : name
|
123
127
|
end
|
124
128
|
|
129
|
+
def setter_name(name)
|
130
|
+
"#{name}=".to_sym
|
131
|
+
end
|
132
|
+
|
125
133
|
def ensure_table_exists(connection)
|
126
134
|
tables = r.table_list.run(connection)
|
127
135
|
if !tables.include?(table_name)
|
data/lib/reorm/version.rb
CHANGED
data/spec/reorm/model_spec.rb
CHANGED
@@ -63,7 +63,27 @@ class SaveTestModel < Reorm::Model
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
+
class SetterTestModel < Reorm::Model
|
67
|
+
def initialize(properties={})
|
68
|
+
super
|
69
|
+
end
|
70
|
+
attr_reader :called
|
71
|
+
|
72
|
+
def value=(setting)
|
73
|
+
@called = true
|
74
|
+
self[:value] = setting
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
66
78
|
describe Reorm::Model do
|
79
|
+
describe "#initialize()" do
|
80
|
+
it "invokes an explicit property setter if one is defined" do
|
81
|
+
object = SetterTestModel.new(value: 234)
|
82
|
+
expect(object.called).to eq(true)
|
83
|
+
expect(object.value).to eq(234)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
67
87
|
describe "#valid?()" do
|
68
88
|
subject {
|
69
89
|
ValidationTestModel.new
|