entasis 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY CHANGED
@@ -1,3 +1,6 @@
1
+ == 0.3.1
2
+ Allow attributes to be inherited (Joshua Davey and Johnny Winn)
3
+
1
4
  == 0.3.0
2
5
  Refactored to dependency injection
3
6
  Only set known attributes
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  entasis
2
- -------
2
+ =======
3
+
3
4
  [![Build Status](https://secure.travis-ci.org/ingemar/entasis.png)](http://travis-ci.org/ingemar/entasis)
4
5
 
5
6
  Entasis provides a few neat methods for building a basic class. Handy for models without a database.
@@ -25,3 +26,10 @@ anon = Person.new
25
26
  anon.valid? # => false
26
27
  anon.errors # => {:name=>["can't be blank"]}>
27
28
  ```
29
+
30
+
31
+ Contributors
32
+ ------------
33
+
34
+ Joshua Davey (jgdavey)
35
+ Johnny Winn (nurugger07)
data/lib/entasis/model.rb CHANGED
@@ -4,7 +4,8 @@ module Entasis
4
4
 
5
5
  included do
6
6
  include ActiveModel::Validations
7
-
7
+ class_attribute :attribute_names
8
+ self.attribute_names ||= []
8
9
  self.class_eval 'class UnknownAttributeError < StandardError; end'
9
10
  end
10
11
 
@@ -14,7 +15,7 @@ module Entasis
14
15
  # Takes a list of attribute names
15
16
  #
16
17
  def attributes(*attrs)
17
- class_variable_set :@@attribute_names, attrs.map(&:to_s)
18
+ self.attribute_names += attrs.map(&:to_s)
18
19
 
19
20
  attr_accessor *attrs
20
21
  end
@@ -1,3 +1,3 @@
1
1
  module Entasis
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
data/spec/entasis_spec.rb CHANGED
@@ -29,6 +29,15 @@ describe "Entasis::Model" do
29
29
  end
30
30
  end
31
31
 
32
+ describe "subclasses" do
33
+ let(:hans) { Child.new(:name => 'Hans', :age => "8", :candy => true) }
34
+
35
+ it "inherits attributes from the parent" do
36
+ hans.attributes.should == { "name" => "Hans", "age" => 8, "city" => nil, "candy" => true }
37
+
38
+ end
39
+ end
40
+
32
41
  context "validations" do
33
42
  describe "#valid?" do
34
43
  it "validates" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: entasis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.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-08-31 00:00:00.000000000 Z
12
+ date: 2012-09-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel