active_attr 0.5.0.alpha2 → 0.5.0
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.
Potentially problematic release.
This version of active_attr might be problematic. Click here for more details.
- data/.rvmrc +29 -3
- data/.travis.yml +1 -0
- data/CHANGELOG.md +14 -1
- data/Gemfile +2 -1
- data/README.md +21 -14
- data/lib/active_attr/chainable_initialization.rb +2 -2
- data/lib/active_attr/matchers/have_attribute_matcher.rb +84 -22
- data/lib/active_attr/model.rb +2 -0
- data/lib/active_attr/query_attributes.rb +1 -2
- data/lib/active_attr/typecasted_attributes.rb +22 -6
- data/lib/active_attr/typecasting.rb +19 -7
- data/lib/active_attr/typecasting/big_decimal_typecaster.rb +36 -0
- data/lib/active_attr/typecasting/boolean.rb +2 -0
- data/lib/active_attr/typecasting/boolean_typecaster.rb +26 -4
- data/lib/active_attr/typecasting/date_time_typecaster.rb +19 -2
- data/lib/active_attr/typecasting/date_typecaster.rb +18 -2
- data/lib/active_attr/typecasting/float_typecaster.rb +18 -2
- data/lib/active_attr/typecasting/integer_typecaster.rb +19 -2
- data/lib/active_attr/typecasting/object_typecaster.rb +16 -0
- data/lib/active_attr/typecasting/string_typecaster.rb +18 -2
- data/lib/active_attr/version.rb +1 -1
- data/spec/functional/active_attr/matchers/have_attribute_matcher_spec.rb +364 -0
- data/spec/functional/active_attr/model_spec.rb +6 -0
- data/spec/functional/active_attr/typecasted_attributes_spec.rb +18 -8
- data/spec/unit/active_attr/matchers/have_attribute_matcher_spec.rb +19 -144
- data/spec/unit/active_attr/matchers_spec.rb +23 -0
- data/spec/unit/active_attr/typecasting/big_decimal_typecaster_spec.rb +39 -0
- data/spec/unit/active_attr/typecasting/date_time_typecaster_spec.rb +3 -2
- data/spec/unit/active_attr/typecasting_spec.rb +5 -0
- metadata +30 -20
@@ -11,6 +11,7 @@ module ActiveAttr
|
|
11
11
|
|
12
12
|
attribute :first_name
|
13
13
|
attribute :last_name
|
14
|
+
attribute :age, :type => Integer
|
14
15
|
|
15
16
|
attr_protected :last_name
|
16
17
|
|
@@ -84,6 +85,11 @@ module ActiveAttr
|
|
84
85
|
model_class.human_attribute_name(:first_name).should == "First name"
|
85
86
|
end
|
86
87
|
|
88
|
+
it "typecasts attributes" do
|
89
|
+
subject.age = "29"
|
90
|
+
subject.age.should eql 29
|
91
|
+
end
|
92
|
+
|
87
93
|
context "attribute defaults" do
|
88
94
|
let :model_class do
|
89
95
|
Class.new do
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
require "active_attr/typecasted_attributes"
|
3
|
-
require "active_attr/mass_assignment"
|
4
3
|
|
5
4
|
module ActiveAttr
|
6
5
|
describe TypecastedAttributes do
|
@@ -11,13 +10,14 @@ module ActiveAttr
|
|
11
10
|
include TypecastedAttributes
|
12
11
|
|
13
12
|
attribute :typeless
|
14
|
-
attribute :object,
|
15
|
-
attribute :
|
16
|
-
attribute :
|
17
|
-
attribute :
|
18
|
-
attribute :
|
19
|
-
attribute :
|
20
|
-
attribute :
|
13
|
+
attribute :object, :type => Object
|
14
|
+
attribute :big_decimal, :type => BigDecimal
|
15
|
+
attribute :boolean, :type => Typecasting::Boolean
|
16
|
+
attribute :date, :type => Date
|
17
|
+
attribute :date_time, :type => DateTime
|
18
|
+
attribute :float, :type => Float
|
19
|
+
attribute :integer, :type => Integer
|
20
|
+
attribute :string, :type => String
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -32,6 +32,11 @@ module ActiveAttr
|
|
32
32
|
subject.object.should be_nil
|
33
33
|
end
|
34
34
|
|
35
|
+
it "a BigDecimal attribute returns nil" do
|
36
|
+
subject.big_decimal = nil
|
37
|
+
subject.big_decimal.should be_nil
|
38
|
+
end
|
39
|
+
|
35
40
|
it "a Boolean attribute returns nil" do
|
36
41
|
subject.boolean = nil
|
37
42
|
subject.boolean.should be_nil
|
@@ -76,6 +81,11 @@ module ActiveAttr
|
|
76
81
|
subject.object.should equal value
|
77
82
|
end
|
78
83
|
|
84
|
+
it "a BigDecimal attribute returns a BigDecimal" do
|
85
|
+
subject.big_decimal = "1.1"
|
86
|
+
subject.big_decimal.should eql BigDecimal.new("1.1")
|
87
|
+
end
|
88
|
+
|
79
89
|
it "a Boolean attribute returns a Boolean" do
|
80
90
|
subject.boolean = "false"
|
81
91
|
subject.boolean.should eql false
|
@@ -1,84 +1,37 @@
|
|
1
1
|
require "spec_helper"
|
2
|
-
require "active_attr/attributes"
|
3
2
|
require "active_attr/matchers/have_attribute_matcher"
|
4
3
|
|
5
4
|
module ActiveAttr
|
6
|
-
describe Matchers do
|
7
|
-
let(:dsl) { Object.new.extend described_class }
|
8
|
-
subject { dsl }
|
9
|
-
|
10
|
-
it { should respond_to(:have_attribute).with(1).argument }
|
11
|
-
|
12
|
-
describe "#have_attribute" do
|
13
|
-
subject { dsl.have_attribute(:first_name) }
|
14
|
-
|
15
|
-
it "builds a HaveAttributeMatcher" do
|
16
|
-
should be_a_kind_of Matchers::HaveAttributeMatcher
|
17
|
-
end
|
18
|
-
|
19
|
-
it "uses the given attribute name to construct the matcher" do
|
20
|
-
subject.send(:attribute_name).should == :first_name
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
5
|
module Matchers
|
26
6
|
describe HaveAttributeMatcher do
|
27
|
-
|
28
|
-
|
29
|
-
include Attributes
|
30
|
-
attribute :first_name, :default => "John"
|
31
|
-
attribute :last_name
|
32
|
-
attribute :admin, :default => false
|
33
|
-
|
34
|
-
def self.to_s
|
35
|
-
"Person"
|
36
|
-
end
|
37
|
-
end
|
7
|
+
describe ".class" do
|
8
|
+
it { described_class.should respond_to(:new).with(1).argument }
|
38
9
|
end
|
39
10
|
|
40
|
-
subject { positive_matcher }
|
41
|
-
let(:positive_matcher) { described_class.new(:first_name) }
|
42
|
-
let(:negative_matcher) { described_class.new(:age) }
|
43
|
-
let(:positive_matcher_with_default) { described_class.new(:first_name).with_default_value_of("John") }
|
44
|
-
let(:positive_matcher_with_false_default) { described_class.new(:admin).with_default_value_of(false) }
|
45
|
-
let(:negative_matcher_with_wrong_default) { described_class.new(:first_name).with_default_value_of("Doe") }
|
46
|
-
let(:negative_matcher_with_default_no_attribute) { described_class.new(:age).with_default_value_of(21) }
|
47
|
-
let(:negative_matcher_with_nil_default) { described_class.new(:first_name).with_default_value_of(nil) }
|
48
|
-
|
49
|
-
it { described_class.should respond_to(:new).with(1).argument }
|
50
|
-
|
51
11
|
describe "#description" do
|
52
12
|
it "returns a description appropriate to the expectation" do
|
53
|
-
|
13
|
+
described_class.new(:first_name).description.should == "has attribute named first_name"
|
54
14
|
end
|
55
15
|
|
56
16
|
it "mentions the default value if set" do
|
57
|
-
|
17
|
+
described_class.new(:first_name).with_default_value_of("John").description.should == %{has attribute named first_name with a default value of "John"}
|
58
18
|
end
|
59
19
|
|
60
|
-
it "mentions the default value if set to
|
61
|
-
|
20
|
+
it "mentions the default value if set to nil" do
|
21
|
+
described_class.new(:first_name).with_default_value_of(nil).description.should == %{has attribute named first_name with a default value of nil}
|
62
22
|
end
|
63
|
-
end
|
64
23
|
|
65
|
-
|
66
|
-
|
67
|
-
negative_matcher.tap do |matcher|
|
68
|
-
matcher.matches? model_class
|
69
|
-
end.failure_message.should == "Expected Person to have attribute named age"
|
24
|
+
it "mentions the default value if set to false" do
|
25
|
+
described_class.new(:admin).with_default_value_of(false).description.should == %{has attribute named admin with a default value of false}
|
70
26
|
end
|
71
27
|
|
72
|
-
it "mentions the
|
73
|
-
|
74
|
-
matcher.matches? model_class
|
75
|
-
end.failure_message.should == %{Expected Person to have attribute named first_name with a default value of "Doe"}
|
28
|
+
it "mentions the type if set" do
|
29
|
+
described_class.new(:first_name).of_type(String).description.should == %{has attribute named first_name of type String}
|
76
30
|
end
|
77
31
|
|
78
|
-
it "mentions the default
|
79
|
-
|
80
|
-
|
81
|
-
end.failure_message.should == %{Expected Person to have attribute named first_name with a default value of nil}
|
32
|
+
it "mentions both the type and default if both are set" do
|
33
|
+
description = described_class.new(:first_name).of_type(String).with_default_value_of("John").description
|
34
|
+
description.should == %{has attribute named first_name of type String with a default value of "John"}
|
82
35
|
end
|
83
36
|
end
|
84
37
|
|
@@ -88,93 +41,15 @@ module ActiveAttr
|
|
88
41
|
end
|
89
42
|
end
|
90
43
|
|
91
|
-
describe "#
|
92
|
-
|
93
|
-
|
94
|
-
it "is true with an instance of a model class that has the attribute" do
|
95
|
-
positive_matcher.matches?(model_instance).should be_true
|
96
|
-
end
|
97
|
-
|
98
|
-
it "is true with a model class that has the attribute" do
|
99
|
-
positive_matcher.matches?(model_class).should be_true
|
100
|
-
end
|
101
|
-
|
102
|
-
it "is false with an instance of a model class that does not have the attribute" do
|
103
|
-
negative_matcher.matches?(model_instance).should be_false
|
104
|
-
end
|
105
|
-
|
106
|
-
it "is false with a model class that does not have the attribute" do
|
107
|
-
negative_matcher.matches?(model_class).should be_false
|
108
|
-
end
|
109
|
-
|
110
|
-
context "when the matcher specifies a default value" do
|
111
|
-
it "is true with an instance of a model class that has the attribute with the default value" do
|
112
|
-
positive_matcher_with_default.matches?(model_class).should be_true
|
113
|
-
end
|
114
|
-
|
115
|
-
it "is true with a model class that has the attribute with the default value" do
|
116
|
-
positive_matcher_with_default.matches?(model_class).should be_true
|
117
|
-
end
|
118
|
-
|
119
|
-
it "is false with an instance of a model class that does not have the attribute" do
|
120
|
-
negative_matcher_with_default_no_attribute.matches?(model_instance).should be_false
|
121
|
-
end
|
122
|
-
|
123
|
-
it "is false with a model class that does not have the attribute" do
|
124
|
-
negative_matcher_with_default_no_attribute.matches?(model_class).should be_false
|
125
|
-
end
|
126
|
-
|
127
|
-
it "is false with an instance of a model class that has the attribute but not with the specified default value" do
|
128
|
-
negative_matcher_with_wrong_default.matches?(model_instance).should be_false
|
129
|
-
end
|
130
|
-
|
131
|
-
it "is false with a model class that has the attribute but not with the specified default value" do
|
132
|
-
negative_matcher_with_wrong_default.matches?(model_class).should be_false
|
133
|
-
end
|
134
|
-
|
135
|
-
it "is true with an instance of a model class that has the attribute with the default value of false" do
|
136
|
-
positive_matcher_with_false_default.matches?(model_class).should be_true
|
137
|
-
end
|
138
|
-
|
139
|
-
it "is true with a model class that has the attribute with the default value where the default value is false" do
|
140
|
-
positive_matcher_with_false_default.matches?(model_class).should be_true
|
141
|
-
end
|
142
|
-
|
143
|
-
it "is true with an instance of a model class that has the attribute with the default value where the default value is false" do
|
144
|
-
positive_matcher_with_false_default.matches?(model_class).should be_true
|
145
|
-
end
|
146
|
-
|
147
|
-
it "is true with a model class that has the attribute with the default value false" do
|
148
|
-
positive_matcher_with_false_default.matches?(model_class).should be_true
|
149
|
-
end
|
150
|
-
|
151
|
-
it "is false with an instance of a model class that has the attribute but not with the specified default value where the specified default value is nil" do
|
152
|
-
negative_matcher_with_nil_default.matches?(model_instance).should be_false
|
153
|
-
end
|
154
|
-
|
155
|
-
it "is false with a model class that has the attribute but not with the specified default value where the specified default value is nil" do
|
156
|
-
negative_matcher_with_nil_default.matches?(model_class).should be_false
|
157
|
-
end
|
44
|
+
describe "#of_type" do
|
45
|
+
it "chains" do
|
46
|
+
described_class.new(:first_name).of_type(String).should be_a_kind_of described_class
|
158
47
|
end
|
159
48
|
end
|
160
49
|
|
161
|
-
describe "#
|
162
|
-
it "
|
163
|
-
|
164
|
-
matcher.matches? model_class
|
165
|
-
end.negative_failure_message.should == "Expected Person to not have attribute named first_name"
|
166
|
-
end
|
167
|
-
|
168
|
-
it "mentions the default value if set" do
|
169
|
-
positive_matcher_with_default.tap do |matcher|
|
170
|
-
matcher.matches? model_class
|
171
|
-
end.negative_failure_message.should == %{Expected Person to not have attribute named first_name with a default value of "John"}
|
172
|
-
end
|
173
|
-
|
174
|
-
it "mentions the default value if set to false" do
|
175
|
-
positive_matcher_with_false_default.tap do |matcher|
|
176
|
-
matcher.matches? model_class
|
177
|
-
end.negative_failure_message.should == %{Expected Person to not have attribute named admin with a default value of false}
|
50
|
+
describe "#with_default_value_of" do
|
51
|
+
it "chains" do
|
52
|
+
described_class.new(:first_name).with_default_value_of(nil).should be_a_kind_of described_class
|
178
53
|
end
|
179
54
|
end
|
180
55
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "active_attr/matchers"
|
3
|
+
|
4
|
+
module ActiveAttr
|
5
|
+
describe Matchers do
|
6
|
+
let(:dsl) { Object.new.extend described_class }
|
7
|
+
subject { dsl }
|
8
|
+
|
9
|
+
it { should respond_to(:have_attribute).with(1).argument }
|
10
|
+
|
11
|
+
describe "#have_attribute" do
|
12
|
+
subject { dsl.have_attribute(:first_name) }
|
13
|
+
|
14
|
+
it "builds a HaveAttributeMatcher" do
|
15
|
+
should be_a_kind_of Matchers::HaveAttributeMatcher
|
16
|
+
end
|
17
|
+
|
18
|
+
it "uses the given attribute name to construct the matcher" do
|
19
|
+
subject.send(:attribute_name).should == :first_name
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "active_attr/typecasting/big_decimal_typecaster"
|
3
|
+
|
4
|
+
module ActiveAttr
|
5
|
+
module Typecasting
|
6
|
+
describe BigDecimalTypecaster do
|
7
|
+
describe "#call" do
|
8
|
+
it "returns the original BigDecimal for a BigDecimal" do
|
9
|
+
value = BigDecimal.new("2.0")
|
10
|
+
subject.call(value).should equal value
|
11
|
+
end
|
12
|
+
|
13
|
+
it "casts nil to a zero BigDecimal" do
|
14
|
+
subject.call(nil).should eql BigDecimal.new("0.0")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "casts a numeric String to a BigDecimal" do
|
18
|
+
subject.call("2").should eql BigDecimal.new("2.0")
|
19
|
+
end
|
20
|
+
|
21
|
+
it "casts a alpha String to a zero BigDecimal" do
|
22
|
+
subject.call("bob").should eql BigDecimal.new("0.0")
|
23
|
+
end
|
24
|
+
|
25
|
+
it "casts a Rational to a BigDecimal" do
|
26
|
+
subject.call(Rational(1, 2)).should eql BigDecimal.new("0.5")
|
27
|
+
end
|
28
|
+
|
29
|
+
it "casts a Float to a BigDecimal" do
|
30
|
+
subject.call(1.2).should eql BigDecimal.new("1.2")
|
31
|
+
end
|
32
|
+
|
33
|
+
it "cases an Integer to a BigDecimal" do
|
34
|
+
subject.call(2).should eql BigDecimal.new("2.0")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -27,8 +27,9 @@ module ActiveAttr
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it "casts a local Time to a DateTime with a matching offset" do
|
30
|
-
|
31
|
-
result
|
30
|
+
value = Time.local(2012, 1, 1, 12, 0, 0)
|
31
|
+
result = subject.call(value)
|
32
|
+
result.should eql DateTime.new(2012, 1, 1, 12, 0, 0, Rational(value.utc_offset, 86400))
|
32
33
|
result.should be_instance_of DateTime
|
33
34
|
end
|
34
35
|
|
@@ -48,6 +48,11 @@ module ActiveAttr
|
|
48
48
|
subject { model.typecast_value(type, value) }
|
49
49
|
let(:value) { mock }
|
50
50
|
|
51
|
+
it "calls BigDecimalTypecaster when typecasting to BigDecimal" do
|
52
|
+
Typecasting::BigDecimalTypecaster.any_instance.should_receive(:call).with(value)
|
53
|
+
model.typecast_value(BigDecimal, value)
|
54
|
+
end
|
55
|
+
|
51
56
|
it "calls BooleanTypecaster when typecasting to Boolean" do
|
52
57
|
Typecasting::BooleanTypecaster.any_instance.should_receive(:call).with(value)
|
53
58
|
model.typecast_value(Typecasting::Boolean, value)
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_attr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.5.0
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Chris Griego
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-03-12 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activemodel
|
17
|
-
requirement: &
|
17
|
+
requirement: &70109482810160 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -25,10 +25,10 @@ dependencies:
|
|
25
25
|
version: '4.1'
|
26
26
|
type: :runtime
|
27
27
|
prerelease: false
|
28
|
-
version_requirements: *
|
28
|
+
version_requirements: *70109482810160
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: activesupport
|
31
|
-
requirement: &
|
31
|
+
requirement: &70109482808160 !ruby/object:Gem::Requirement
|
32
32
|
none: false
|
33
33
|
requirements:
|
34
34
|
- - ! '>='
|
@@ -39,10 +39,10 @@ dependencies:
|
|
39
39
|
version: '4.1'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
|
-
version_requirements: *
|
42
|
+
version_requirements: *70109482808160
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: bundler
|
45
|
-
requirement: &
|
45
|
+
requirement: &70109482806600 !ruby/object:Gem::Requirement
|
46
46
|
none: false
|
47
47
|
requirements:
|
48
48
|
- - ~>
|
@@ -50,10 +50,10 @@ dependencies:
|
|
50
50
|
version: '1.0'
|
51
51
|
type: :development
|
52
52
|
prerelease: false
|
53
|
-
version_requirements: *
|
53
|
+
version_requirements: *70109482806600
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: factory_girl
|
56
|
-
requirement: &
|
56
|
+
requirement: &70109482805800 !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
@@ -61,10 +61,10 @@ dependencies:
|
|
61
61
|
version: '2.2'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
|
-
version_requirements: *
|
64
|
+
version_requirements: *70109482805800
|
65
65
|
- !ruby/object:Gem::Dependency
|
66
66
|
name: rake
|
67
|
-
requirement: &
|
67
|
+
requirement: &70109482804840 !ruby/object:Gem::Requirement
|
68
68
|
none: false
|
69
69
|
requirements:
|
70
70
|
- - ~>
|
@@ -72,10 +72,10 @@ dependencies:
|
|
72
72
|
version: 0.9.0
|
73
73
|
type: :development
|
74
74
|
prerelease: false
|
75
|
-
version_requirements: *
|
75
|
+
version_requirements: *70109482804840
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
77
|
name: rspec
|
78
|
-
requirement: &
|
78
|
+
requirement: &70109482803980 !ruby/object:Gem::Requirement
|
79
79
|
none: false
|
80
80
|
requirements:
|
81
81
|
- - ~>
|
@@ -83,10 +83,10 @@ dependencies:
|
|
83
83
|
version: '2.6'
|
84
84
|
type: :development
|
85
85
|
prerelease: false
|
86
|
-
version_requirements: *
|
86
|
+
version_requirements: *70109482803980
|
87
87
|
- !ruby/object:Gem::Dependency
|
88
88
|
name: tzinfo
|
89
|
-
requirement: &
|
89
|
+
requirement: &70109482803280 !ruby/object:Gem::Requirement
|
90
90
|
none: false
|
91
91
|
requirements:
|
92
92
|
- - ~>
|
@@ -94,7 +94,7 @@ dependencies:
|
|
94
94
|
version: 0.3.29
|
95
95
|
type: :development
|
96
96
|
prerelease: false
|
97
|
-
version_requirements: *
|
97
|
+
version_requirements: *70109482803280
|
98
98
|
description: Create plain old ruby models without reinventing the wheel.
|
99
99
|
email:
|
100
100
|
- cgriego@gmail.com
|
@@ -137,6 +137,7 @@ files:
|
|
137
137
|
- lib/active_attr/rspec.rb
|
138
138
|
- lib/active_attr/typecasted_attributes.rb
|
139
139
|
- lib/active_attr/typecasting.rb
|
140
|
+
- lib/active_attr/typecasting/big_decimal_typecaster.rb
|
140
141
|
- lib/active_attr/typecasting/boolean.rb
|
141
142
|
- lib/active_attr/typecasting/boolean_typecaster.rb
|
142
143
|
- lib/active_attr/typecasting/date_time_typecaster.rb
|
@@ -150,6 +151,7 @@ files:
|
|
150
151
|
- spec/functional/active_attr/attribute_defaults_spec.rb
|
151
152
|
- spec/functional/active_attr/attributes_spec.rb
|
152
153
|
- spec/functional/active_attr/chainable_initialization_spec.rb
|
154
|
+
- spec/functional/active_attr/matchers/have_attribute_matcher_spec.rb
|
153
155
|
- spec/functional/active_attr/model_spec.rb
|
154
156
|
- spec/functional/active_attr/query_attributes_spec.rb
|
155
157
|
- spec/functional/active_attr/typecasted_attributes_spec.rb
|
@@ -168,8 +170,10 @@ files:
|
|
168
170
|
- spec/unit/active_attr/mass_assignment_security_spec.rb
|
169
171
|
- spec/unit/active_attr/mass_assignment_spec.rb
|
170
172
|
- spec/unit/active_attr/matchers/have_attribute_matcher_spec.rb
|
173
|
+
- spec/unit/active_attr/matchers_spec.rb
|
171
174
|
- spec/unit/active_attr/query_attributes_spec.rb
|
172
175
|
- spec/unit/active_attr/typecasted_attributes_spec.rb
|
176
|
+
- spec/unit/active_attr/typecasting/big_decimal_typecaster_spec.rb
|
173
177
|
- spec/unit/active_attr/typecasting/boolean_spec.rb
|
174
178
|
- spec/unit/active_attr/typecasting/boolean_typecaster_spec.rb
|
175
179
|
- spec/unit/active_attr/typecasting/date_time_typecaster_spec.rb
|
@@ -195,13 +199,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
195
199
|
version: '0'
|
196
200
|
segments:
|
197
201
|
- 0
|
198
|
-
hash: -
|
202
|
+
hash: -2941939635939237766
|
199
203
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
200
204
|
none: false
|
201
205
|
requirements:
|
202
|
-
- - ! '
|
206
|
+
- - ! '>='
|
203
207
|
- !ruby/object:Gem::Version
|
204
|
-
version:
|
208
|
+
version: '0'
|
209
|
+
segments:
|
210
|
+
- 0
|
211
|
+
hash: -2941939635939237766
|
205
212
|
requirements: []
|
206
213
|
rubyforge_project: active_attr
|
207
214
|
rubygems_version: 1.8.10
|
@@ -212,6 +219,7 @@ test_files:
|
|
212
219
|
- spec/functional/active_attr/attribute_defaults_spec.rb
|
213
220
|
- spec/functional/active_attr/attributes_spec.rb
|
214
221
|
- spec/functional/active_attr/chainable_initialization_spec.rb
|
222
|
+
- spec/functional/active_attr/matchers/have_attribute_matcher_spec.rb
|
215
223
|
- spec/functional/active_attr/model_spec.rb
|
216
224
|
- spec/functional/active_attr/query_attributes_spec.rb
|
217
225
|
- spec/functional/active_attr/typecasted_attributes_spec.rb
|
@@ -230,8 +238,10 @@ test_files:
|
|
230
238
|
- spec/unit/active_attr/mass_assignment_security_spec.rb
|
231
239
|
- spec/unit/active_attr/mass_assignment_spec.rb
|
232
240
|
- spec/unit/active_attr/matchers/have_attribute_matcher_spec.rb
|
241
|
+
- spec/unit/active_attr/matchers_spec.rb
|
233
242
|
- spec/unit/active_attr/query_attributes_spec.rb
|
234
243
|
- spec/unit/active_attr/typecasted_attributes_spec.rb
|
244
|
+
- spec/unit/active_attr/typecasting/big_decimal_typecaster_spec.rb
|
235
245
|
- spec/unit/active_attr/typecasting/boolean_spec.rb
|
236
246
|
- spec/unit/active_attr/typecasting/boolean_typecaster_spec.rb
|
237
247
|
- spec/unit/active_attr/typecasting/date_time_typecaster_spec.rb
|