affairs_of_state 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +1 -0
- data/lib/affairs_of_state/version.rb +1 -1
- data/spec/affairs_of_state_spec.rb +32 -36
- data/spec/spec_helper.rb +1 -1
- metadata +9 -9
data/.travis.yml
CHANGED
@@ -8,53 +8,51 @@ describe AffairsOfState do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should set the constant" do
|
11
|
-
Pie::STATUSES.
|
11
|
+
expect(Pie::STATUSES).to eq(["active", "inactive", "cancelled"])
|
12
12
|
end
|
13
13
|
|
14
14
|
it "should validate the column is set" do
|
15
|
-
|
16
|
-
p.should_not be_valid
|
15
|
+
expect(Pie.new(status: nil)).to_not be_valid
|
17
16
|
end
|
18
17
|
|
19
18
|
it "should validate that we're not setting it to something stupid" do
|
20
|
-
|
21
|
-
p.should_not be_valid
|
19
|
+
expect(Pie.new(status: "delicious_pie")).to_not be_valid
|
22
20
|
end
|
23
21
|
|
24
22
|
describe "boolean methods" do
|
25
23
|
it "should find the set status" do
|
26
|
-
p = Pie.new :
|
27
|
-
p.active
|
24
|
+
p = Pie.new status: "active"
|
25
|
+
expect(p.active?).to be_truthy
|
28
26
|
end
|
29
27
|
|
30
28
|
it "should not find if a different status is set" do
|
31
|
-
p = Pie.new :
|
32
|
-
p.cancelled
|
29
|
+
p = Pie.new status: "inactive"
|
30
|
+
expect(p.cancelled?).to be_falsy
|
33
31
|
end
|
34
32
|
end
|
35
33
|
|
36
34
|
describe "update methods" do
|
37
35
|
it "should set the value" do
|
38
|
-
p = Pie.create! :
|
39
|
-
p.inactive
|
40
|
-
p.status.
|
36
|
+
p = Pie.create! status: "active"
|
37
|
+
expect(p.inactive!).to be_truthy
|
38
|
+
expect(p.status).to eq("inactive")
|
41
39
|
end
|
42
40
|
end
|
43
41
|
|
44
42
|
it "should provide a method to pass to dropdowns" do
|
45
|
-
Pie.statuses_for_select.
|
43
|
+
expect(Pie.statuses_for_select).to eq([["Active", "active"], ["Inactive", "inactive"], ["Cancelled", "cancelled"]])
|
46
44
|
end
|
47
45
|
|
48
46
|
describe "scopes" do
|
49
47
|
it "should have a finder to match the status name" do
|
50
|
-
Pie.create! :
|
51
|
-
Pie.create! :
|
52
|
-
Pie.create! :
|
53
|
-
Pie.create! :
|
54
|
-
|
55
|
-
Pie.active.size.
|
56
|
-
Pie.inactive.size.
|
57
|
-
Pie.cancelled.size.
|
48
|
+
Pie.create! status: "active"
|
49
|
+
Pie.create! status: "inactive"
|
50
|
+
Pie.create! status: "active"
|
51
|
+
Pie.create! status: "cancelled"
|
52
|
+
|
53
|
+
expect(Pie.active.size).to eq(2)
|
54
|
+
expect(Pie.inactive.size).to eq(1)
|
55
|
+
expect(Pie.cancelled.size).to eq(1)
|
58
56
|
end
|
59
57
|
end
|
60
58
|
|
@@ -67,12 +65,11 @@ describe AffairsOfState do
|
|
67
65
|
class Pie2 < ActiveRecord::Base
|
68
66
|
self.table_name = "pies"
|
69
67
|
|
70
|
-
affairs_of_state :active, :inactive, :
|
68
|
+
affairs_of_state :active, :inactive, column: :super_status
|
71
69
|
end
|
72
70
|
|
73
71
|
it "should validate the column is set" do
|
74
|
-
|
75
|
-
p.should be_valid
|
72
|
+
expect(Pie2.new(status: nil, super_status: "active")).to be_valid
|
76
73
|
end
|
77
74
|
end
|
78
75
|
|
@@ -80,12 +77,11 @@ describe AffairsOfState do
|
|
80
77
|
class Pie3 < ActiveRecord::Base
|
81
78
|
self.table_name = "pies"
|
82
79
|
|
83
|
-
affairs_of_state :active, :inactive, :
|
80
|
+
affairs_of_state :active, :inactive, allow_blank: true
|
84
81
|
end
|
85
82
|
|
86
83
|
it "should validate the column is set" do
|
87
|
-
|
88
|
-
p.should be_valid
|
84
|
+
expect(Pie3.new(status: nil)).to be_valid
|
89
85
|
end
|
90
86
|
end
|
91
87
|
|
@@ -97,7 +93,7 @@ describe AffairsOfState do
|
|
97
93
|
end
|
98
94
|
|
99
95
|
it "should work too if that's what floats your boat" do
|
100
|
-
Pie4::STATUSES.
|
96
|
+
expect(Pie4::STATUSES).to eq(["on", "off"])
|
101
97
|
end
|
102
98
|
end
|
103
99
|
|
@@ -105,11 +101,11 @@ describe AffairsOfState do
|
|
105
101
|
class Pie5 < ActiveRecord::Base
|
106
102
|
self.table_name = "pies"
|
107
103
|
|
108
|
-
affairs_of_state :active, :inactive, :
|
104
|
+
affairs_of_state :active, :inactive, scopes: false
|
109
105
|
end
|
110
106
|
|
111
107
|
it "should work too if that's what floats your boat" do
|
112
|
-
Pie5.
|
108
|
+
expect(Pie5).to_not respond_to(:active)
|
113
109
|
end
|
114
110
|
end
|
115
111
|
|
@@ -117,7 +113,7 @@ describe AffairsOfState do
|
|
117
113
|
class Pie6 < ActiveRecord::Base
|
118
114
|
self.table_name = "pies"
|
119
115
|
|
120
|
-
affairs_of_state :active, :inactive, :
|
116
|
+
affairs_of_state :active, :inactive, if: lambda{|p| p.is_going_to_validate }
|
121
117
|
|
122
118
|
attr_accessor :is_going_to_validate
|
123
119
|
end
|
@@ -126,14 +122,14 @@ describe AffairsOfState do
|
|
126
122
|
p = Pie6.new
|
127
123
|
p.is_going_to_validate = true
|
128
124
|
p.status = "pie"
|
129
|
-
p.
|
125
|
+
expect(p).to_not be_valid
|
130
126
|
end
|
131
127
|
|
132
128
|
it "should not enforce the validation if the :if param evaluates to false" do
|
133
129
|
p = Pie6.new
|
134
130
|
p.is_going_to_validate = false
|
135
131
|
p.status = "pie"
|
136
|
-
p.
|
132
|
+
expect(p).to be_valid
|
137
133
|
end
|
138
134
|
end
|
139
135
|
|
@@ -141,7 +137,7 @@ describe AffairsOfState do
|
|
141
137
|
class Pie7 < ActiveRecord::Base
|
142
138
|
self.table_name = "pies"
|
143
139
|
|
144
|
-
affairs_of_state :active, :inactive, :
|
140
|
+
affairs_of_state :active, :inactive, if: :validation_method?
|
145
141
|
|
146
142
|
attr_accessor :is_going_to_validate
|
147
143
|
|
@@ -154,14 +150,14 @@ describe AffairsOfState do
|
|
154
150
|
p = Pie7.new
|
155
151
|
p.is_going_to_validate = true
|
156
152
|
p.status = "pie"
|
157
|
-
p.
|
153
|
+
expect(p).to_not be_valid
|
158
154
|
end
|
159
155
|
|
160
156
|
it "should not enforce the validation if the :if param evaluates to false" do
|
161
157
|
p = Pie7.new
|
162
158
|
p.is_going_to_validate = false
|
163
159
|
p.status = "pie"
|
164
|
-
p.
|
160
|
+
expect(p).to be_valid
|
165
161
|
end
|
166
162
|
end
|
167
163
|
|
data/spec/spec_helper.rb
CHANGED
@@ -3,12 +3,12 @@ require 'affairs_of_state'
|
|
3
3
|
require 'pry'
|
4
4
|
|
5
5
|
RSpec.configure do |config|
|
6
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
7
6
|
config.run_all_when_everything_filtered = true
|
8
7
|
end
|
9
8
|
|
10
9
|
|
11
10
|
## Create an AR model to test with
|
11
|
+
I18n.enforce_available_locales = false
|
12
12
|
|
13
13
|
ActiveRecord::Base.establish_connection(
|
14
14
|
:adapter => "sqlite3",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: affairs_of_state
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2014-06-05 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement: &
|
16
|
+
requirement: &78218490 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>'
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *78218490
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &78218080 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *78218080
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sqlite3
|
38
|
-
requirement: &
|
38
|
+
requirement: &78217850 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *78217850
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: pry
|
49
|
-
requirement: &
|
49
|
+
requirement: &78217630 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *78217630
|
58
58
|
description: Add a simple state to a gem, without all the hassle of a complex state
|
59
59
|
machine.
|
60
60
|
email:
|