acts_as_status_for 4.1.0 → 4.3.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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/Gemfile +2 -2
- data/Gemfile.lock +64 -57
- data/README +28 -15
- data/VERSION +1 -1
- data/acts_as_status_for.gemspec +31 -31
- data/lib/acts_as_status_for.rb +16 -9
- data/spec/acts_as_status_for_spec.rb +20 -20
- metadata +11 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c4704bcb121d85980e42659a1142bd6c1d5c6146
|
|
4
|
+
data.tar.gz: 7d513f57bdc1b79488fe2f81205205049167f9a0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5a92c673905f7de849023cb01efa09db02b8d753bfd76490b65b846b917e72d10c37cd5c407561b58402905e424bab21b2172aec0fb97de412394e3b70e6844c
|
|
7
|
+
data.tar.gz: 1095c8f2d6f5648896a4b64828372c9b28493c73daaa9f7f0cc2f32dc3c37181c214c8ce0e54e2877f6cad3fc2be64b00b47b06c95a6e9f7ba46ec01bc0b390d
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.3.5
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,97 +1,104 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
activemodel (4.
|
|
5
|
-
activesupport (= 4.
|
|
4
|
+
activemodel (4.2.10)
|
|
5
|
+
activesupport (= 4.2.10)
|
|
6
6
|
builder (~> 3.1)
|
|
7
|
-
activerecord (4.
|
|
8
|
-
activemodel (= 4.
|
|
9
|
-
activesupport (= 4.
|
|
10
|
-
arel (~>
|
|
11
|
-
activesupport (4.
|
|
12
|
-
i18n (~> 0.
|
|
13
|
-
json (~> 1.7, >= 1.7.7)
|
|
7
|
+
activerecord (4.2.10)
|
|
8
|
+
activemodel (= 4.2.10)
|
|
9
|
+
activesupport (= 4.2.10)
|
|
10
|
+
arel (~> 6.0)
|
|
11
|
+
activesupport (4.2.10)
|
|
12
|
+
i18n (~> 0.7)
|
|
14
13
|
minitest (~> 5.1)
|
|
15
|
-
thread_safe (~> 0.
|
|
14
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
|
16
15
|
tzinfo (~> 1.1)
|
|
17
|
-
addressable (2.
|
|
18
|
-
arel (
|
|
19
|
-
builder (3.2.
|
|
16
|
+
addressable (2.4.0)
|
|
17
|
+
arel (6.0.4)
|
|
18
|
+
builder (3.2.3)
|
|
19
|
+
concurrent-ruby (1.0.5)
|
|
20
20
|
descendants_tracker (0.0.4)
|
|
21
21
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
22
|
-
diff-lcs (1.
|
|
22
|
+
diff-lcs (1.3)
|
|
23
23
|
docile (1.1.5)
|
|
24
|
-
faraday (0.9.
|
|
24
|
+
faraday (0.9.2)
|
|
25
25
|
multipart-post (>= 1.2, < 3)
|
|
26
|
-
git (1.
|
|
27
|
-
github_api (0.
|
|
28
|
-
addressable (~> 2.
|
|
26
|
+
git (1.3.0)
|
|
27
|
+
github_api (0.16.0)
|
|
28
|
+
addressable (~> 2.4.0)
|
|
29
29
|
descendants_tracker (~> 0.0.4)
|
|
30
30
|
faraday (~> 0.8, < 0.10)
|
|
31
|
-
hashie (>= 3.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
jeweler (2.
|
|
31
|
+
hashie (>= 3.4)
|
|
32
|
+
mime-types (>= 1.16, < 3.0)
|
|
33
|
+
oauth2 (~> 1.0)
|
|
34
|
+
hashie (3.5.7)
|
|
35
|
+
highline (1.7.10)
|
|
36
|
+
i18n (0.9.5)
|
|
37
|
+
concurrent-ruby (~> 1.0)
|
|
38
|
+
jeweler (2.3.9)
|
|
39
39
|
builder
|
|
40
|
-
bundler
|
|
40
|
+
bundler
|
|
41
41
|
git (>= 1.2.5)
|
|
42
|
-
github_api
|
|
42
|
+
github_api (~> 0.16.0)
|
|
43
43
|
highline (>= 1.6.15)
|
|
44
44
|
nokogiri (>= 1.5.10)
|
|
45
|
+
psych
|
|
45
46
|
rake
|
|
46
47
|
rdoc
|
|
47
|
-
|
|
48
|
-
jwt (1.
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
semver2
|
|
49
|
+
jwt (1.5.6)
|
|
50
|
+
mime-types (2.99.3)
|
|
51
|
+
mini_portile2 (2.3.0)
|
|
52
|
+
minitest (5.11.3)
|
|
51
53
|
multi_json (1.10.1)
|
|
52
|
-
multi_xml (0.
|
|
54
|
+
multi_xml (0.6.0)
|
|
53
55
|
multipart-post (2.0.0)
|
|
54
|
-
nokogiri (1.
|
|
55
|
-
|
|
56
|
-
oauth2 (1.
|
|
57
|
-
faraday (>= 0.8, < 0.
|
|
56
|
+
nokogiri (1.8.2)
|
|
57
|
+
mini_portile2 (~> 2.3.0)
|
|
58
|
+
oauth2 (1.4.0)
|
|
59
|
+
faraday (>= 0.8, < 0.13)
|
|
58
60
|
jwt (~> 1.0)
|
|
59
61
|
multi_json (~> 1.3)
|
|
60
62
|
multi_xml (~> 0.5)
|
|
61
|
-
rack (
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
rspec (3.
|
|
67
|
-
rspec-core (~> 3.
|
|
68
|
-
rspec-expectations (~> 3.
|
|
69
|
-
rspec-mocks (~> 3.
|
|
70
|
-
rspec-core (3.
|
|
71
|
-
rspec-support (~> 3.
|
|
72
|
-
rspec-expectations (3.0
|
|
63
|
+
rack (>= 1.2, < 3)
|
|
64
|
+
psych (3.0.2)
|
|
65
|
+
rack (2.0.4)
|
|
66
|
+
rake (12.3.0)
|
|
67
|
+
rdoc (6.0.1)
|
|
68
|
+
rspec (3.7.0)
|
|
69
|
+
rspec-core (~> 3.7.0)
|
|
70
|
+
rspec-expectations (~> 3.7.0)
|
|
71
|
+
rspec-mocks (~> 3.7.0)
|
|
72
|
+
rspec-core (3.7.1)
|
|
73
|
+
rspec-support (~> 3.7.0)
|
|
74
|
+
rspec-expectations (3.7.0)
|
|
75
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
76
|
+
rspec-support (~> 3.7.0)
|
|
77
|
+
rspec-mocks (3.7.0)
|
|
73
78
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
74
|
-
rspec-support (~> 3.
|
|
75
|
-
rspec-
|
|
76
|
-
|
|
77
|
-
rspec-support (3.0.3)
|
|
79
|
+
rspec-support (~> 3.7.0)
|
|
80
|
+
rspec-support (3.7.1)
|
|
81
|
+
semver2 (3.4.2)
|
|
78
82
|
simplecov (0.9.0)
|
|
79
83
|
docile (~> 1.1.0)
|
|
80
84
|
multi_json
|
|
81
85
|
simplecov-html (~> 0.8.0)
|
|
82
86
|
simplecov-html (0.8.0)
|
|
83
87
|
sqlite3 (1.3.9)
|
|
84
|
-
thread_safe (0.3.
|
|
85
|
-
tzinfo (1.2.
|
|
88
|
+
thread_safe (0.3.6)
|
|
89
|
+
tzinfo (1.2.5)
|
|
86
90
|
thread_safe (~> 0.1)
|
|
87
91
|
|
|
88
92
|
PLATFORMS
|
|
89
93
|
ruby
|
|
90
94
|
|
|
91
95
|
DEPENDENCIES
|
|
92
|
-
activerecord
|
|
96
|
+
activerecord (~> 4.2)
|
|
93
97
|
bundler
|
|
94
|
-
jeweler
|
|
98
|
+
jeweler (~> 2.3)
|
|
95
99
|
rspec
|
|
96
100
|
simplecov
|
|
97
101
|
sqlite3
|
|
102
|
+
|
|
103
|
+
BUNDLED WITH
|
|
104
|
+
1.15.4
|
data/README
CHANGED
|
@@ -1,17 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
|
|
2
|
+
Give you objects a single status that they can exist with and history of states that they have encountered.
|
|
3
|
+
|
|
4
|
+
Most recent timestamp on field is considered to be current_status
|
|
5
|
+
|
|
6
|
+
A object has a not_status if it is unset or if it is not the youngest status field.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
This version is meant for rails 4.x, 3.x version is availible for historical builds.
|
|
14
|
+
|
|
15
|
+
ActiveRecord::Migration.create_table :things do |t|
|
|
16
|
+
t.datetime :on_hold_at
|
|
17
|
+
t.datetime :archived_at
|
|
18
|
+
t.datetime :featured_at
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
class Thing < ActiveRecord::Base
|
|
22
|
+
include ActsAsStatusFor
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
acts_as_status_for :on_hold, :archived, :featured
|
|
26
|
+
scope :both_not_on_hold_and_not_archived, -> { not_on_hold.not_archived }
|
|
13
27
|
end
|
|
14
|
-
end
|
|
15
28
|
|
|
16
29
|
----
|
|
17
30
|
Given this code you will be granted the following abilities:
|
|
@@ -40,8 +53,8 @@ end
|
|
|
40
53
|
not_archived, not_on_hold, not_featured,
|
|
41
54
|
archived , on_hold ' featured
|
|
42
55
|
|
|
43
|
-
status_including_ : a meta programming construct that allows you to join status flags with '
|
|
44
|
-
a run-time query operator.
|
|
56
|
+
status_including_ : a meta programming construct that allows you to join status flags with 'and' to build
|
|
57
|
+
a run-time query operator. ( status_including_archived_and_on_hold )
|
|
45
58
|
|
|
46
59
|
--
|
|
47
60
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
4.
|
|
1
|
+
4.3.0
|
data/acts_as_status_for.gemspec
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
-
# stub: acts_as_status_for 4.
|
|
5
|
+
# stub: acts_as_status_for 4.3.0 ruby lib
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |s|
|
|
8
|
-
s.name = "acts_as_status_for"
|
|
9
|
-
s.version = "4.
|
|
8
|
+
s.name = "acts_as_status_for".freeze
|
|
9
|
+
s.version = "4.3.0"
|
|
10
10
|
|
|
11
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
12
|
-
s.require_paths = ["lib"]
|
|
13
|
-
s.authors = ["Curtis Schofield"]
|
|
14
|
-
s.date = "
|
|
15
|
-
s.description = "Given a list of datetime _at attributes allow an activerecord object to query status, change status and hold multiple states, these states can be used to build state machines or other constructs. "
|
|
16
|
-
s.email = "github.com@robotarmyma.de"
|
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
12
|
+
s.require_paths = ["lib".freeze]
|
|
13
|
+
s.authors = ["Curtis Schofield".freeze]
|
|
14
|
+
s.date = "2018-02-23"
|
|
15
|
+
s.description = "Given a list of datetime _at attributes allow an activerecord object to query status, change status and hold multiple states, these states can be used to build state machines or other constructs. ".freeze
|
|
16
|
+
s.email = "github.com@robotarmyma.de".freeze
|
|
17
17
|
s.extra_rdoc_files = [
|
|
18
18
|
"LICENSE.txt",
|
|
19
19
|
"README"
|
|
@@ -35,36 +35,36 @@ Gem::Specification.new do |s|
|
|
|
35
35
|
"spec/acts_as_status_for_spec.rb",
|
|
36
36
|
"spec/spec_helper.rb"
|
|
37
37
|
]
|
|
38
|
-
s.homepage = "http://github.com/robotarmy/acts_as_status_for"
|
|
39
|
-
s.licenses = ["MIT"]
|
|
40
|
-
s.rubygems_version = "2.2.
|
|
41
|
-
s.summary = "Acts as Status For a list of events - did something occur? or not? with scoped finders and dynamic class scope - written for rails 3"
|
|
38
|
+
s.homepage = "http://github.com/robotarmy/acts_as_status_for".freeze
|
|
39
|
+
s.licenses = ["MIT".freeze]
|
|
40
|
+
s.rubygems_version = "2.5.2.1".freeze
|
|
41
|
+
s.summary = "Acts as Status For a list of events - did something occur? or not? with scoped finders and dynamic class scope - written for rails 3".freeze
|
|
42
42
|
|
|
43
43
|
if s.respond_to? :specification_version then
|
|
44
44
|
s.specification_version = 4
|
|
45
45
|
|
|
46
46
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
47
|
-
s.add_runtime_dependency(%q<activerecord
|
|
48
|
-
s.add_development_dependency(%q<sqlite3
|
|
49
|
-
s.add_development_dependency(%q<rspec
|
|
50
|
-
s.add_development_dependency(%q<bundler
|
|
51
|
-
s.add_development_dependency(%q<jeweler
|
|
52
|
-
s.add_development_dependency(%q<simplecov
|
|
47
|
+
s.add_runtime_dependency(%q<activerecord>.freeze, ["~> 4.2"])
|
|
48
|
+
s.add_development_dependency(%q<sqlite3>.freeze, [">= 0"])
|
|
49
|
+
s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
|
|
50
|
+
s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
|
|
51
|
+
s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.3"])
|
|
52
|
+
s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
53
53
|
else
|
|
54
|
-
s.add_dependency(%q<activerecord
|
|
55
|
-
s.add_dependency(%q<sqlite3
|
|
56
|
-
s.add_dependency(%q<rspec
|
|
57
|
-
s.add_dependency(%q<bundler
|
|
58
|
-
s.add_dependency(%q<jeweler
|
|
59
|
-
s.add_dependency(%q<simplecov
|
|
54
|
+
s.add_dependency(%q<activerecord>.freeze, ["~> 4.2"])
|
|
55
|
+
s.add_dependency(%q<sqlite3>.freeze, [">= 0"])
|
|
56
|
+
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
|
57
|
+
s.add_dependency(%q<bundler>.freeze, [">= 0"])
|
|
58
|
+
s.add_dependency(%q<jeweler>.freeze, ["~> 2.3"])
|
|
59
|
+
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
60
60
|
end
|
|
61
61
|
else
|
|
62
|
-
s.add_dependency(%q<activerecord
|
|
63
|
-
s.add_dependency(%q<sqlite3
|
|
64
|
-
s.add_dependency(%q<rspec
|
|
65
|
-
s.add_dependency(%q<bundler
|
|
66
|
-
s.add_dependency(%q<jeweler
|
|
67
|
-
s.add_dependency(%q<simplecov
|
|
62
|
+
s.add_dependency(%q<activerecord>.freeze, ["~> 4.2"])
|
|
63
|
+
s.add_dependency(%q<sqlite3>.freeze, [">= 0"])
|
|
64
|
+
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
|
65
|
+
s.add_dependency(%q<bundler>.freeze, [">= 0"])
|
|
66
|
+
s.add_dependency(%q<jeweler>.freeze, ["~> 2.3"])
|
|
67
|
+
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
68
68
|
end
|
|
69
69
|
end
|
|
70
70
|
|
data/lib/acts_as_status_for.rb
CHANGED
|
@@ -5,9 +5,10 @@ module ActsAsStatusFor
|
|
|
5
5
|
end
|
|
6
6
|
base.extend(ClassMethods)
|
|
7
7
|
end
|
|
8
|
+
|
|
8
9
|
module ClassMethods
|
|
9
10
|
|
|
10
|
-
def acts_as_status_for(*status_marks
|
|
11
|
+
def acts_as_status_for(*status_marks, &after_migrations)
|
|
11
12
|
@all_status_marks_exist = true
|
|
12
13
|
@on_at_events = status_marks
|
|
13
14
|
@off_at_events = on_at_events.collect do | event |
|
|
@@ -17,6 +18,7 @@ module ActsAsStatusFor
|
|
|
17
18
|
install_methods
|
|
18
19
|
after_migrations.call(self) if @all_status_marks_exist && block_given?
|
|
19
20
|
end
|
|
21
|
+
|
|
20
22
|
def log_error(state)
|
|
21
23
|
STDERR.puts "Arel could not find #{state}_at in the database - skipping installation of acts_as_status"
|
|
22
24
|
end
|
|
@@ -124,30 +126,35 @@ module ActsAsStatusFor
|
|
|
124
126
|
@on_at_events
|
|
125
127
|
end
|
|
126
128
|
end
|
|
127
|
-
|
|
129
|
+
class UnsupportedStatus < StandardError
|
|
130
|
+
end
|
|
128
131
|
module InstanceMethods
|
|
129
132
|
|
|
130
|
-
def
|
|
131
|
-
|
|
133
|
+
def status
|
|
134
|
+
statuses.split(' ').first or ''
|
|
132
135
|
end
|
|
133
136
|
|
|
137
|
+
alias :current_status :status
|
|
138
|
+
|
|
134
139
|
def status=(event_string)
|
|
135
140
|
case event_string
|
|
136
|
-
when
|
|
137
|
-
|
|
138
|
-
self.send("#{event}!") if self.respond_to?("#{event}!")
|
|
139
|
-
end
|
|
141
|
+
when nil
|
|
142
|
+
raise UnsupportedStatus.new("nil status")
|
|
140
143
|
else
|
|
141
144
|
event_string.split(' ').each do | event |
|
|
142
145
|
if self.class.all_at_events.include?(event.to_sym)
|
|
143
146
|
self.send("#{event}!") if self.respond_to?("#{event}!")
|
|
147
|
+
else
|
|
148
|
+
puts "Here"
|
|
149
|
+
raise UnsupportedStatus.new("#{event} is not a status_at field")
|
|
144
150
|
end
|
|
145
151
|
end
|
|
146
152
|
end
|
|
147
153
|
end
|
|
148
154
|
alias :current_status= :status=
|
|
155
|
+
alias :statuses= :status=
|
|
149
156
|
|
|
150
|
-
def
|
|
157
|
+
def statuses
|
|
151
158
|
status_time = {}
|
|
152
159
|
get_on_at_events.each do | event |
|
|
153
160
|
time = self.send("#{event}_at")
|
|
@@ -34,7 +34,7 @@ describe ActsAsStatusFor do
|
|
|
34
34
|
before do
|
|
35
35
|
Thing.instance_eval do
|
|
36
36
|
acts_as_status_for :on_hold, :archived, :featured do
|
|
37
|
-
scope :depends_on, not_on_hold.not_archived
|
|
37
|
+
scope :depends_on, -> { not_on_hold.not_archived }
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
40
|
end
|
|
@@ -105,7 +105,7 @@ describe ActsAsStatusFor do
|
|
|
105
105
|
expect(subject.class.status_including_archived_and_featured_and_on_hold).to include(subject)
|
|
106
106
|
end
|
|
107
107
|
end
|
|
108
|
-
context "#
|
|
108
|
+
context "#statuses" do
|
|
109
109
|
context "with multi object inheritance" do
|
|
110
110
|
before do
|
|
111
111
|
Thing.instance_eval do
|
|
@@ -123,11 +123,11 @@ describe ActsAsStatusFor do
|
|
|
123
123
|
ThingB.new(:name => 'required')
|
|
124
124
|
}
|
|
125
125
|
it "defaults to ''" do
|
|
126
|
-
expect(subject.
|
|
126
|
+
expect(subject.statuses).to eq('')
|
|
127
127
|
end
|
|
128
128
|
it "uses superclasse status" do
|
|
129
129
|
subject.on_hold!
|
|
130
|
-
expect(subject.
|
|
130
|
+
expect(subject.statuses).to eq('on_hold')
|
|
131
131
|
end
|
|
132
132
|
end
|
|
133
133
|
end
|
|
@@ -140,35 +140,35 @@ describe ActsAsStatusFor do
|
|
|
140
140
|
end
|
|
141
141
|
|
|
142
142
|
it "defaults to ''" do
|
|
143
|
-
expect(subject.
|
|
143
|
+
expect(subject.statuses).to eq('')
|
|
144
144
|
end
|
|
145
145
|
|
|
146
146
|
it "allows negation of status using 'not_' prefix" do
|
|
147
147
|
subject.on_hold!
|
|
148
148
|
subject.archived!
|
|
149
|
-
expect(subject.
|
|
150
|
-
subject.
|
|
151
|
-
expect(subject.
|
|
149
|
+
expect(subject.statuses).to eq('archived on_hold')
|
|
150
|
+
subject.statuses = "not_archived"
|
|
151
|
+
expect(subject.statuses).to eq('on_hold')
|
|
152
152
|
end
|
|
153
153
|
|
|
154
154
|
it "is sorted by event time" do
|
|
155
155
|
subject.on_hold!
|
|
156
|
-
expect(subject.
|
|
156
|
+
expect(subject.statuses).to eq('on_hold')
|
|
157
157
|
subject.archived!
|
|
158
|
-
expect(subject.
|
|
158
|
+
expect(subject.statuses).to eq('archived on_hold')
|
|
159
159
|
subject.featured!
|
|
160
|
-
expect(subject.
|
|
160
|
+
expect(subject.statuses).to eq('featured archived on_hold')
|
|
161
161
|
subject.not_on_hold!
|
|
162
162
|
subject.on_hold!
|
|
163
|
-
expect(subject.
|
|
163
|
+
expect(subject.statuses).to eq('on_hold featured archived')
|
|
164
164
|
end
|
|
165
165
|
|
|
166
|
-
it "setting it to blank clears all states" do
|
|
166
|
+
it "setting it to blank clears all states when clear_status is true" do
|
|
167
167
|
subject.on_hold!
|
|
168
168
|
subject.archived!
|
|
169
169
|
subject.featured!
|
|
170
|
-
subject.
|
|
171
|
-
expect(subject.
|
|
170
|
+
subject.statuses = ''
|
|
171
|
+
expect(subject.statuses).to eq('featured archived on_hold')
|
|
172
172
|
end
|
|
173
173
|
|
|
174
174
|
|
|
@@ -196,22 +196,22 @@ describe ActsAsStatusFor do
|
|
|
196
196
|
}).each do |scope,states|
|
|
197
197
|
states.each do |state|
|
|
198
198
|
it "can be used to set events" do
|
|
199
|
-
subject.
|
|
199
|
+
subject.statuses = state.to_s
|
|
200
200
|
expect(subject.send(%%#{state}?%)).to be_truthy
|
|
201
|
-
expect(subject.
|
|
201
|
+
expect(subject.statuses).to include(state.to_s)
|
|
202
202
|
end
|
|
203
203
|
|
|
204
204
|
it "can be reversed" do
|
|
205
|
-
subject.
|
|
205
|
+
subject.statuses = state.to_s
|
|
206
206
|
expect(subject.send("#{state}?")).to be_truthy
|
|
207
|
-
subject.
|
|
207
|
+
subject.statuses = "not_" + state.to_s
|
|
208
208
|
expect(subject.send("#{state}?")).to be_falsey
|
|
209
209
|
end
|
|
210
210
|
|
|
211
211
|
it "#{state} sets state string" do
|
|
212
212
|
subject.send("#{state}!")
|
|
213
213
|
expect(subject.send("#{state}?")).to be_truthy
|
|
214
|
-
expect(subject.
|
|
214
|
+
expect(subject.statuses).to include(state.to_s)
|
|
215
215
|
end
|
|
216
216
|
|
|
217
217
|
it "#{state} is in the scope #{scope}" do
|
metadata
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: acts_as_status_for
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Curtis Schofield
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2018-02-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '4.2'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - "
|
|
24
|
+
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '4.2'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: sqlite3
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -70,16 +70,16 @@ dependencies:
|
|
|
70
70
|
name: jeweler
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
|
-
- - "
|
|
73
|
+
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
75
|
+
version: '2.3'
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- - "
|
|
80
|
+
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
82
|
+
version: '2.3'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: simplecov
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -139,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
139
139
|
version: '0'
|
|
140
140
|
requirements: []
|
|
141
141
|
rubyforge_project:
|
|
142
|
-
rubygems_version: 2.2.
|
|
142
|
+
rubygems_version: 2.5.2.1
|
|
143
143
|
signing_key:
|
|
144
144
|
specification_version: 4
|
|
145
145
|
summary: Acts as Status For a list of events - did something occur? or not? with scoped
|