reorm 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c4d147f8ec8ab156ae124379903853b37a6aec29
4
- data.tar.gz: c53da10347253a776ecfea2cee5d56d9f49e1622
3
+ metadata.gz: b8e2625b170999be3b178611122ec2353797b453
4
+ data.tar.gz: 70746fd3ab31c1a14ea5d9c57494b22f11c6ff3e
5
5
  SHA512:
6
- metadata.gz: 356d4b82f8285da450df48392baa417df7760f81c7ebf866eb74257ab0e2352bcfd0c7b2f0e5682f925217e528b2a2e29c3b97c89f1a2376b2247e571cd7ddbd
7
- data.tar.gz: 0e412ac34981e3f3551538e38263e6b88a5be80333d06e5dfa5f5f6d323d0cc9980fb5b22137a6abce7cd8e15f35e9869c9998ac593451b487c867a0e4fdcf4b
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
- @properties[key.to_sym] = value
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
@@ -1,6 +1,6 @@
1
1
  module Reorm
2
2
  MAJOR_VERSION = 0
3
3
  MINOR_VERSION = 1
4
- BUILD_VERSION = 0
4
+ BUILD_VERSION = 1
5
5
  VERSION = "#{MAJOR_VERSION}.#{MINOR_VERSION}.#{BUILD_VERSION}"
6
6
  end
@@ -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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reorm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Wood