simple_model 1.2.0 → 1.2.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.
data/README.md CHANGED
@@ -144,7 +144,7 @@ SimpleModel is available through [Rubygems](http://rubygems.org/gems/simple_mode
144
144
 
145
145
  ## Notes
146
146
 
147
- Release 1.2+ no longer create instance variables, just uses the attributes hash as the data store.
147
+ Release 1.2+ no longer creates instance variables, just uses the attributes hash as the data store.
148
148
 
149
149
  ## Thanks
150
150
 
@@ -73,6 +73,7 @@ module SimpleModel
73
73
  new.set(new.send(:attributes_with_for_init,session_hash))
74
74
  new
75
75
  end
76
+
76
77
 
77
78
  def defined_attributes
78
79
  @defined_attributes ||= {}
@@ -174,6 +175,17 @@ module SimpleModel
174
175
  end
175
176
  module_eval("alias #{method_options[:alias]} #{method}")
176
177
  end
178
+
179
+ # Creates alias setter and getter for the supplied attribute using the supplied alias
180
+ # See spec for example.
181
+ def alias_attribute(new_alias,attribute)
182
+ define_method(new_alias) do
183
+ self.send(attribute)
184
+ end
185
+ define_method("#{new_alias.to_s}=") do |*args, &block|
186
+ self.send("#{attribute.to_s}=",*args, &block)
187
+ end
188
+ end
177
189
  end
178
190
 
179
191
  def self.included(base)
@@ -1,3 +1,3 @@
1
1
  module SimpleModel
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.1"
3
3
  end
@@ -154,6 +154,22 @@ describe SimpleModel::Attributes do
154
154
 
155
155
  lambda{TestThrow.new(:boo => [])}.should raise_error(SimpleModel::ArgumentError)
156
156
  end
157
+ context '#alias_attribute' do
158
+ it "should create alias for attribute" do
159
+ class TestAlias
160
+ include SimpleModel::Attributes
161
+ has_attribute :foo
162
+ alias_attribute(:bar,:foo)
163
+ end
164
+
165
+ t = TestAlias.new(:bar => "foo")
166
+ t.bar.should eql("foo")
167
+ t.foo.should eql('foo')
168
+ t = TestAlias.new(:foo => "foo")
169
+ t.bar.should eql("foo")
170
+ t.foo.should eql('foo')
171
+ end
172
+ end
157
173
 
158
174
  end
159
175
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-17 00:00:00.000000000 Z
12
+ date: 2012-10-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport