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 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