acts_as_status_for 3.0.6 → 4.0.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 +7 -0
- data/.ruby-version +1 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -4
- data/Gemfile.lock +85 -33
- data/README +15 -1
- data/VERSION +1 -1
- data/acts_as_status_for.gemspec +25 -22
- data/lib/acts_as_status_for.rb +2 -2
- data/spec/acts_as_status_for_spec.rb +49 -41
- metadata +94 -84
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 5591d28000c93fd3bdb5c5286635e4611b03997b
|
|
4
|
+
data.tar.gz: e6d5543632a3438c0044ae8fb7f20df0319ee5a9
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 8a8175b982789ccb5bd1668f5bb487fafb28d473f641707c023320489605e8f39d81128dcd42fa7d67b19bcf6bbce368511dee197587a4782d57883c1e874715
|
|
7
|
+
data.tar.gz: a9fabdbb72d3cb1af8861020adb342cae53b19cc26f1c9f38cc4bf8791a39c13ae52604a3caf95cede5a15b23262e874c2dbdd55b103c6cd79a791f0e1af6155
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.1.0
|
data/.rvmrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
rvm use 1.9.2@acts_as_status_for --create
|
data/Gemfile
CHANGED
|
@@ -2,8 +2,8 @@ source "http://rubygems.org"
|
|
|
2
2
|
gem 'activerecord'
|
|
3
3
|
group :development do
|
|
4
4
|
gem 'sqlite3'
|
|
5
|
-
gem "rspec"
|
|
6
|
-
gem "bundler"
|
|
7
|
-
gem "jeweler"
|
|
8
|
-
gem "
|
|
5
|
+
gem "rspec"
|
|
6
|
+
gem "bundler"
|
|
7
|
+
gem "jeweler"
|
|
8
|
+
gem "simplecov"
|
|
9
9
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,45 +1,97 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
activemodel (
|
|
5
|
-
activesupport (=
|
|
6
|
-
builder (~>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
4
|
+
activemodel (4.1.4)
|
|
5
|
+
activesupport (= 4.1.4)
|
|
6
|
+
builder (~> 3.1)
|
|
7
|
+
activerecord (4.1.4)
|
|
8
|
+
activemodel (= 4.1.4)
|
|
9
|
+
activesupport (= 4.1.4)
|
|
10
|
+
arel (~> 5.0.0)
|
|
11
|
+
activesupport (4.1.4)
|
|
12
|
+
i18n (~> 0.6, >= 0.6.9)
|
|
13
|
+
json (~> 1.7, >= 1.7.7)
|
|
14
|
+
minitest (~> 5.1)
|
|
15
|
+
thread_safe (~> 0.1)
|
|
16
|
+
tzinfo (~> 1.1)
|
|
17
|
+
addressable (2.3.6)
|
|
18
|
+
arel (5.0.1.20140414130214)
|
|
19
|
+
builder (3.2.2)
|
|
20
|
+
descendants_tracker (0.0.4)
|
|
21
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
|
22
|
+
diff-lcs (1.2.5)
|
|
23
|
+
docile (1.1.5)
|
|
24
|
+
faraday (0.9.0)
|
|
25
|
+
multipart-post (>= 1.2, < 3)
|
|
26
|
+
git (1.2.7)
|
|
27
|
+
github_api (0.12.0)
|
|
28
|
+
addressable (~> 2.3)
|
|
29
|
+
descendants_tracker (~> 0.0.4)
|
|
30
|
+
faraday (~> 0.8, < 0.10)
|
|
31
|
+
hashie (>= 3.2)
|
|
32
|
+
multi_json (>= 1.7.5, < 2.0)
|
|
33
|
+
nokogiri (~> 1.6.3)
|
|
34
|
+
oauth2
|
|
35
|
+
hashie (3.2.0)
|
|
36
|
+
highline (1.6.21)
|
|
37
|
+
i18n (0.6.11)
|
|
38
|
+
jeweler (2.0.1)
|
|
39
|
+
builder
|
|
40
|
+
bundler (>= 1.0)
|
|
21
41
|
git (>= 1.2.5)
|
|
42
|
+
github_api
|
|
43
|
+
highline (>= 1.6.15)
|
|
44
|
+
nokogiri (>= 1.5.10)
|
|
22
45
|
rake
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
46
|
+
rdoc
|
|
47
|
+
json (1.8.1)
|
|
48
|
+
jwt (1.0.0)
|
|
49
|
+
mini_portile (0.6.0)
|
|
50
|
+
minitest (5.4.0)
|
|
51
|
+
multi_json (1.10.1)
|
|
52
|
+
multi_xml (0.5.5)
|
|
53
|
+
multipart-post (2.0.0)
|
|
54
|
+
nokogiri (1.6.3.1)
|
|
55
|
+
mini_portile (= 0.6.0)
|
|
56
|
+
oauth2 (1.0.0)
|
|
57
|
+
faraday (>= 0.8, < 0.10)
|
|
58
|
+
jwt (~> 1.0)
|
|
59
|
+
multi_json (~> 1.3)
|
|
60
|
+
multi_xml (~> 0.5)
|
|
61
|
+
rack (~> 1.2)
|
|
62
|
+
rack (1.5.2)
|
|
63
|
+
rake (10.3.2)
|
|
64
|
+
rdoc (4.1.1)
|
|
65
|
+
json (~> 1.4)
|
|
66
|
+
rspec (3.0.0)
|
|
67
|
+
rspec-core (~> 3.0.0)
|
|
68
|
+
rspec-expectations (~> 3.0.0)
|
|
69
|
+
rspec-mocks (~> 3.0.0)
|
|
70
|
+
rspec-core (3.0.3)
|
|
71
|
+
rspec-support (~> 3.0.0)
|
|
72
|
+
rspec-expectations (3.0.3)
|
|
73
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
74
|
+
rspec-support (~> 3.0.0)
|
|
75
|
+
rspec-mocks (3.0.3)
|
|
76
|
+
rspec-support (~> 3.0.0)
|
|
77
|
+
rspec-support (3.0.3)
|
|
78
|
+
simplecov (0.9.0)
|
|
79
|
+
docile (~> 1.1.0)
|
|
80
|
+
multi_json
|
|
81
|
+
simplecov-html (~> 0.8.0)
|
|
82
|
+
simplecov-html (0.8.0)
|
|
83
|
+
sqlite3 (1.3.9)
|
|
84
|
+
thread_safe (0.3.4)
|
|
85
|
+
tzinfo (1.2.1)
|
|
86
|
+
thread_safe (~> 0.1)
|
|
35
87
|
|
|
36
88
|
PLATFORMS
|
|
37
89
|
ruby
|
|
38
90
|
|
|
39
91
|
DEPENDENCIES
|
|
40
92
|
activerecord
|
|
41
|
-
bundler
|
|
42
|
-
jeweler
|
|
43
|
-
|
|
44
|
-
|
|
93
|
+
bundler
|
|
94
|
+
jeweler
|
|
95
|
+
rspec
|
|
96
|
+
simplecov
|
|
45
97
|
sqlite3
|
data/README
CHANGED
|
@@ -7,7 +7,9 @@ end
|
|
|
7
7
|
class Thing < ActiveRecord::Base
|
|
8
8
|
include ActsAsStatusFor
|
|
9
9
|
acts_as_status_for :on_hold, :archived, :featured do
|
|
10
|
-
scope :
|
|
10
|
+
scope :both_not_on_hold_and_not_archived, not_on_hold.not_archived
|
|
11
|
+
# the above could also be had by using the default scope ability
|
|
12
|
+
# 'status_including_'
|
|
11
13
|
end
|
|
12
14
|
end
|
|
13
15
|
|
|
@@ -16,12 +18,20 @@ end
|
|
|
16
18
|
|
|
17
19
|
status
|
|
18
20
|
=> returns a string '' with marks according to what status is set
|
|
21
|
+
|
|
19
22
|
status=('')
|
|
20
23
|
=> enforces the status set to match the status string passed in
|
|
24
|
+
=> ex.1 : obj.status('archived on_hold')
|
|
25
|
+
=> ex.2 : obj.status('not_archived not_on_hold')
|
|
26
|
+
=> ex.2 : obj.status('archived on_hold'); obj.status('not_archived'); # still on_hold
|
|
27
|
+
|
|
28
|
+
|
|
21
29
|
archived?, on_hold?, featured?
|
|
22
30
|
=> check on status of flag
|
|
31
|
+
|
|
23
32
|
archived!, on_hold!, featured!
|
|
24
33
|
=> turn on status & save
|
|
34
|
+
|
|
25
35
|
not_archived!, not_on_hold!, not_featured!
|
|
26
36
|
=> turn off status & save
|
|
27
37
|
|
|
@@ -29,6 +39,10 @@ end
|
|
|
29
39
|
|
|
30
40
|
not_archived, not_on_hold, not_featured,
|
|
31
41
|
archived , on_hold ' featured
|
|
42
|
+
|
|
43
|
+
status_including_ : a meta programming construct that allows you to join status flags with 'on' to build
|
|
44
|
+
a run-time query operator.
|
|
45
|
+
|
|
32
46
|
--
|
|
33
47
|
|
|
34
48
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4.0.0
|
data/acts_as_status_for.gemspec
CHANGED
|
@@ -2,16 +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.0.0 ruby lib
|
|
5
6
|
|
|
6
7
|
Gem::Specification.new do |s|
|
|
7
|
-
s.name =
|
|
8
|
-
s.version = "
|
|
8
|
+
s.name = "acts_as_status_for"
|
|
9
|
+
s.version = "4.0.0"
|
|
9
10
|
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
12
|
+
s.require_paths = ["lib"]
|
|
11
13
|
s.authors = ["Curtis Schofield"]
|
|
12
|
-
s.date =
|
|
13
|
-
s.description =
|
|
14
|
-
s.email =
|
|
14
|
+
s.date = "2014-07-29"
|
|
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"
|
|
15
17
|
s.extra_rdoc_files = [
|
|
16
18
|
"LICENSE.txt",
|
|
17
19
|
"README"
|
|
@@ -19,6 +21,8 @@ Gem::Specification.new do |s|
|
|
|
19
21
|
s.files = [
|
|
20
22
|
".document",
|
|
21
23
|
".rspec",
|
|
24
|
+
".ruby-version",
|
|
25
|
+
".rvmrc",
|
|
22
26
|
"Gemfile",
|
|
23
27
|
"Gemfile.lock",
|
|
24
28
|
"LICENSE.txt",
|
|
@@ -31,37 +35,36 @@ Gem::Specification.new do |s|
|
|
|
31
35
|
"spec/acts_as_status_for_spec.rb",
|
|
32
36
|
"spec/spec_helper.rb"
|
|
33
37
|
]
|
|
34
|
-
s.homepage =
|
|
38
|
+
s.homepage = "http://github.com/robotarmy/acts_as_status_for"
|
|
35
39
|
s.licenses = ["MIT"]
|
|
36
|
-
s.
|
|
37
|
-
s.
|
|
38
|
-
s.summary = %q{Acts as Status For a list of events - did something occur? or not? with scoped finders and dynamic class scope - written for rails 3}
|
|
40
|
+
s.rubygems_version = "2.2.0"
|
|
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"
|
|
39
42
|
|
|
40
43
|
if s.respond_to? :specification_version then
|
|
41
|
-
s.specification_version =
|
|
44
|
+
s.specification_version = 4
|
|
42
45
|
|
|
43
46
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
44
47
|
s.add_runtime_dependency(%q<activerecord>, [">= 0"])
|
|
45
48
|
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
|
46
|
-
s.add_development_dependency(%q<rspec>, ["
|
|
47
|
-
s.add_development_dependency(%q<bundler>, ["
|
|
48
|
-
s.add_development_dependency(%q<jeweler>, ["
|
|
49
|
-
s.add_development_dependency(%q<
|
|
49
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
|
50
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
|
51
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
|
52
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
|
50
53
|
else
|
|
51
54
|
s.add_dependency(%q<activerecord>, [">= 0"])
|
|
52
55
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
|
53
|
-
s.add_dependency(%q<rspec>, ["
|
|
54
|
-
s.add_dependency(%q<bundler>, ["
|
|
55
|
-
s.add_dependency(%q<jeweler>, ["
|
|
56
|
-
s.add_dependency(%q<
|
|
56
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
|
57
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
|
58
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
59
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
57
60
|
end
|
|
58
61
|
else
|
|
59
62
|
s.add_dependency(%q<activerecord>, [">= 0"])
|
|
60
63
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
|
61
|
-
s.add_dependency(%q<rspec>, ["
|
|
62
|
-
s.add_dependency(%q<bundler>, ["
|
|
63
|
-
s.add_dependency(%q<jeweler>, ["
|
|
64
|
-
s.add_dependency(%q<
|
|
64
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
|
65
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
|
66
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
67
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
65
68
|
end
|
|
66
69
|
end
|
|
67
70
|
|
data/lib/acts_as_status_for.rb
CHANGED
|
@@ -82,8 +82,8 @@ module ActsAsStatusFor
|
|
|
82
82
|
if self.arel_table["#{state}_at".to_sym] then
|
|
83
83
|
has_condition = construct_have_state_arel_condition(state)
|
|
84
84
|
has_not_condition = construct_not_have_state_arel_condition(state)
|
|
85
|
-
scope "#{state}".to_sym, where(has_condition)
|
|
86
|
-
scope "not_#{state}".to_sym, where(has_not_condition)
|
|
85
|
+
scope "#{state}".to_sym, lambda { where(has_condition) }
|
|
86
|
+
scope "not_#{state}".to_sym, lambda { where(has_not_condition) }
|
|
87
87
|
else
|
|
88
88
|
log_error(state)
|
|
89
89
|
@all_status_marks_exist = @all_status_marks_exist && false
|
|
@@ -26,7 +26,7 @@ describe ActsAsStatusFor do
|
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
it "does not execute block" do
|
|
29
|
-
@ran.
|
|
29
|
+
expect(@ran).to be_falsey
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
context "install dependent helpers" do
|
|
@@ -38,44 +38,44 @@ describe ActsAsStatusFor do
|
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
40
|
it "#depends_on" do
|
|
41
|
-
subject.class.respond_to?(:depends_on).
|
|
41
|
+
expect(subject.class.respond_to?(:depends_on)).to be_truthy
|
|
42
42
|
end
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
context "#current_status" do
|
|
46
46
|
it 'has a setter' do
|
|
47
47
|
subject.current_status = 'on_hold'
|
|
48
|
-
subject.on_hold
|
|
48
|
+
expect(subject.on_hold?).to be_truthy
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
it 'reveals the last status set' do
|
|
52
52
|
subject.on_hold!
|
|
53
|
-
subject.current_status.
|
|
53
|
+
expect(subject.current_status).to eq('on_hold')
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
it 'can go back and forth between two events' do
|
|
57
57
|
subject.on_hold!
|
|
58
|
-
subject.current_status.
|
|
58
|
+
expect(subject.current_status).to eq('on_hold')
|
|
59
59
|
subject.archived!
|
|
60
|
-
subject.current_status.
|
|
60
|
+
expect(subject.current_status).to eq('archived')
|
|
61
61
|
subject.on_hold!
|
|
62
|
-
subject.current_status.
|
|
62
|
+
expect(subject.current_status).to eq('on_hold')
|
|
63
63
|
subject.on_hold_at > subject.archived_at
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
it 'can be wound and unwound' do
|
|
67
67
|
subject.on_hold!
|
|
68
|
-
subject.current_status.
|
|
68
|
+
expect(subject.current_status).to eq('on_hold')
|
|
69
69
|
subject.archived!
|
|
70
|
-
subject.current_status.
|
|
70
|
+
expect(subject.current_status).to eq('archived')
|
|
71
71
|
subject.featured!
|
|
72
|
-
subject.current_status.
|
|
72
|
+
expect(subject.current_status).to eq('featured')
|
|
73
73
|
subject.not_featured!
|
|
74
|
-
subject.current_status.
|
|
74
|
+
expect(subject.current_status).to eq('archived')
|
|
75
75
|
subject.not_archived!
|
|
76
|
-
subject.current_status.
|
|
76
|
+
expect(subject.current_status).to eq('on_hold')
|
|
77
77
|
subject.not_on_hold!
|
|
78
|
-
subject.current_status.
|
|
78
|
+
expect(subject.current_status).to eq('')
|
|
79
79
|
end
|
|
80
80
|
end
|
|
81
81
|
context "#status_including_" do
|
|
@@ -83,25 +83,25 @@ describe ActsAsStatusFor do
|
|
|
83
83
|
subject.respond_to? :status_including_archived
|
|
84
84
|
end
|
|
85
85
|
it "archived" do
|
|
86
|
-
subject.class.status_including_archived.
|
|
86
|
+
expect(subject.class.status_including_archived).not_to include(subject)
|
|
87
87
|
subject.archived!
|
|
88
|
-
subject.class.status_including_archived.
|
|
88
|
+
expect(subject.class.status_including_archived).to include(subject)
|
|
89
89
|
end
|
|
90
90
|
it "archived_and_featured" do
|
|
91
|
-
subject.class.status_including_archived_and_featured.
|
|
91
|
+
expect(subject.class.status_including_archived_and_featured).not_to include(subject)
|
|
92
92
|
subject.archived!
|
|
93
|
-
subject.class.status_including_archived_and_featured.
|
|
93
|
+
expect(subject.class.status_including_archived_and_featured).not_to include(subject)
|
|
94
94
|
subject.featured!
|
|
95
|
-
subject.class.status_including_archived_and_featured.
|
|
95
|
+
expect(subject.class.status_including_archived_and_featured).to include(subject)
|
|
96
96
|
end
|
|
97
97
|
it "archived_and_featured_and_on_hold" do
|
|
98
|
-
subject.class.status_including_archived_and_featured_and_on_hold.
|
|
98
|
+
expect(subject.class.status_including_archived_and_featured_and_on_hold).not_to include(subject)
|
|
99
99
|
subject.archived!
|
|
100
|
-
subject.class.status_including_archived_and_featured_and_on_hold.
|
|
100
|
+
expect(subject.class.status_including_archived_and_featured_and_on_hold).not_to include(subject)
|
|
101
101
|
subject.featured!
|
|
102
|
-
subject.class.status_including_archived_and_featured_and_on_hold.
|
|
102
|
+
expect(subject.class.status_including_archived_and_featured_and_on_hold).not_to include(subject)
|
|
103
103
|
subject.on_hold!
|
|
104
|
-
subject.class.status_including_archived_and_featured_and_on_hold.
|
|
104
|
+
expect(subject.class.status_including_archived_and_featured_and_on_hold).to include(subject)
|
|
105
105
|
end
|
|
106
106
|
end
|
|
107
107
|
context "#status" do
|
|
@@ -112,19 +112,27 @@ describe ActsAsStatusFor do
|
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
it "defaults to ''" do
|
|
115
|
-
subject.status.
|
|
115
|
+
expect(subject.status).to eq('')
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
it "allows negation of status using 'not_' prefix" do
|
|
119
|
+
subject.on_hold!
|
|
120
|
+
subject.archived!
|
|
121
|
+
expect(subject.status).to eq('archived on_hold')
|
|
122
|
+
subject.status = "not_archived"
|
|
123
|
+
expect(subject.status).to eq('on_hold')
|
|
116
124
|
end
|
|
117
125
|
|
|
118
126
|
it "is sorted by event time" do
|
|
119
127
|
subject.on_hold!
|
|
120
|
-
subject.status.
|
|
128
|
+
expect(subject.status).to eq('on_hold')
|
|
121
129
|
subject.archived!
|
|
122
|
-
subject.status.
|
|
130
|
+
expect(subject.status).to eq('archived on_hold')
|
|
123
131
|
subject.featured!
|
|
124
|
-
subject.status.
|
|
132
|
+
expect(subject.status).to eq('featured archived on_hold')
|
|
125
133
|
subject.not_on_hold!
|
|
126
134
|
subject.on_hold!
|
|
127
|
-
subject.status.
|
|
135
|
+
expect(subject.status).to eq('on_hold featured archived')
|
|
128
136
|
end
|
|
129
137
|
|
|
130
138
|
it "setting it to blank clears all states" do
|
|
@@ -132,7 +140,7 @@ describe ActsAsStatusFor do
|
|
|
132
140
|
subject.archived!
|
|
133
141
|
subject.featured!
|
|
134
142
|
subject.status = ''
|
|
135
|
-
subject.status.
|
|
143
|
+
expect(subject.status).to eq('')
|
|
136
144
|
end
|
|
137
145
|
|
|
138
146
|
describe "audit trail is independent of scope" do
|
|
@@ -141,11 +149,11 @@ describe ActsAsStatusFor do
|
|
|
141
149
|
subject.on_hold_at = 1.days.ago
|
|
142
150
|
subject.archived_at = Time.now
|
|
143
151
|
subject.save
|
|
144
|
-
subject.class.archived.
|
|
145
|
-
subject.class.not_on_hold.
|
|
146
|
-
subject.class.on_hold.
|
|
147
|
-
subject.class.not_featured.
|
|
148
|
-
subject.class.featured.
|
|
152
|
+
expect(subject.class.archived).to include(subject)
|
|
153
|
+
expect(subject.class.not_on_hold).to include(subject)
|
|
154
|
+
expect(subject.class.on_hold).not_to include(subject)
|
|
155
|
+
expect(subject.class.not_featured).to include(subject)
|
|
156
|
+
expect(subject.class.featured).not_to include(subject)
|
|
149
157
|
end
|
|
150
158
|
end
|
|
151
159
|
|
|
@@ -160,27 +168,27 @@ describe ActsAsStatusFor do
|
|
|
160
168
|
states.each do |state|
|
|
161
169
|
it "can be used to set events" do
|
|
162
170
|
subject.status = state.to_s
|
|
163
|
-
subject.send(%%#{state}?%).
|
|
164
|
-
subject.status.
|
|
171
|
+
expect(subject.send(%%#{state}?%)).to be_truthy
|
|
172
|
+
expect(subject.status).to include(state.to_s)
|
|
165
173
|
end
|
|
166
174
|
|
|
167
175
|
it "can be reversed" do
|
|
168
176
|
subject.status = state.to_s
|
|
169
|
-
subject.send("#{state}?").
|
|
177
|
+
expect(subject.send("#{state}?")).to be_truthy
|
|
170
178
|
subject.status = "not_" + state.to_s
|
|
171
|
-
subject.send("#{state}?").
|
|
179
|
+
expect(subject.send("#{state}?")).to be_falsey
|
|
172
180
|
end
|
|
173
181
|
|
|
174
182
|
it "#{state} sets state string" do
|
|
175
183
|
subject.send("#{state}!")
|
|
176
|
-
subject.send("#{state}?").
|
|
177
|
-
subject.status.
|
|
184
|
+
expect(subject.send("#{state}?")).to be_truthy
|
|
185
|
+
expect(subject.status).to include(state.to_s)
|
|
178
186
|
end
|
|
179
187
|
|
|
180
188
|
it "#{state} is in the scope #{scope}" do
|
|
181
189
|
subject.send("#{state}!")
|
|
182
|
-
subject.send("#{state}?").
|
|
183
|
-
subject.class.send(scope).
|
|
190
|
+
expect(subject.send("#{state}?")).to be_truthy
|
|
191
|
+
expect(subject.class.send(scope)).to include(subject)
|
|
184
192
|
end
|
|
185
193
|
end
|
|
186
194
|
end
|
metadata
CHANGED
|
@@ -1,96 +1,113 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: acts_as_status_for
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
version: 3.0.6
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 4.0.0
|
|
6
5
|
platform: ruby
|
|
7
|
-
authors:
|
|
6
|
+
authors:
|
|
8
7
|
- Curtis Schofield
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
dependencies:
|
|
16
|
-
- !ruby/object:Gem::Dependency
|
|
11
|
+
date: 2014-07-29 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
17
14
|
name: activerecord
|
|
18
|
-
requirement:
|
|
19
|
-
|
|
20
|
-
requirements:
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
21
17
|
- - ">="
|
|
22
|
-
- !ruby/object:Gem::Version
|
|
23
|
-
version:
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
24
20
|
type: :runtime
|
|
25
21
|
prerelease: false
|
|
26
|
-
version_requirements:
|
|
27
|
-
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: sqlite3
|
|
29
|
-
requirement:
|
|
30
|
-
|
|
31
|
-
requirements:
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
32
31
|
- - ">="
|
|
33
|
-
- !ruby/object:Gem::Version
|
|
34
|
-
version:
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
35
34
|
type: :development
|
|
36
35
|
prerelease: false
|
|
37
|
-
version_requirements:
|
|
38
|
-
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
39
42
|
name: rspec
|
|
40
|
-
requirement:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
version: 2.3.0
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0'
|
|
46
48
|
type: :development
|
|
47
49
|
prerelease: false
|
|
48
|
-
version_requirements:
|
|
49
|
-
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
50
56
|
name: bundler
|
|
51
|
-
requirement:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
version: 1.0.0
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
57
62
|
type: :development
|
|
58
63
|
prerelease: false
|
|
59
|
-
version_requirements:
|
|
60
|
-
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
61
70
|
name: jeweler
|
|
62
|
-
requirement:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
version: 1.6.1
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '0'
|
|
68
76
|
type: :development
|
|
69
77
|
prerelease: false
|
|
70
|
-
version_requirements:
|
|
71
|
-
|
|
72
|
-
name: rcov
|
|
73
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
|
74
|
-
none: false
|
|
75
|
-
requirements:
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
76
80
|
- - ">="
|
|
77
|
-
- !ruby/object:Gem::Version
|
|
78
|
-
version:
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '0'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: simplecov
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
79
90
|
type: :development
|
|
80
91
|
prerelease: false
|
|
81
|
-
version_requirements:
|
|
82
|
-
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
97
|
+
description: 'Given a list of datetime _at attributes allow an activerecord object
|
|
98
|
+
to query status, change status and hold multiple states, these states can be used
|
|
99
|
+
to build state machines or other constructs. '
|
|
83
100
|
email: github.com@robotarmyma.de
|
|
84
101
|
executables: []
|
|
85
|
-
|
|
86
102
|
extensions: []
|
|
87
|
-
|
|
88
|
-
extra_rdoc_files:
|
|
103
|
+
extra_rdoc_files:
|
|
89
104
|
- LICENSE.txt
|
|
90
105
|
- README
|
|
91
|
-
files:
|
|
92
|
-
- .document
|
|
93
|
-
- .rspec
|
|
106
|
+
files:
|
|
107
|
+
- ".document"
|
|
108
|
+
- ".rspec"
|
|
109
|
+
- ".ruby-version"
|
|
110
|
+
- ".rvmrc"
|
|
94
111
|
- Gemfile
|
|
95
112
|
- Gemfile.lock
|
|
96
113
|
- LICENSE.txt
|
|
@@ -102,36 +119,29 @@ files:
|
|
|
102
119
|
- lib/acts_as_status_for.rb
|
|
103
120
|
- spec/acts_as_status_for_spec.rb
|
|
104
121
|
- spec/spec_helper.rb
|
|
105
|
-
has_rdoc: true
|
|
106
122
|
homepage: http://github.com/robotarmy/acts_as_status_for
|
|
107
|
-
licenses:
|
|
123
|
+
licenses:
|
|
108
124
|
- MIT
|
|
125
|
+
metadata: {}
|
|
109
126
|
post_install_message:
|
|
110
127
|
rdoc_options: []
|
|
111
|
-
|
|
112
|
-
require_paths:
|
|
128
|
+
require_paths:
|
|
113
129
|
- lib
|
|
114
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
115
|
-
|
|
116
|
-
requirements:
|
|
130
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
131
|
+
requirements:
|
|
117
132
|
- - ">="
|
|
118
|
-
- !ruby/object:Gem::Version
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
version: "0"
|
|
123
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
|
-
none: false
|
|
125
|
-
requirements:
|
|
133
|
+
- !ruby/object:Gem::Version
|
|
134
|
+
version: '0'
|
|
135
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
|
+
requirements:
|
|
126
137
|
- - ">="
|
|
127
|
-
- !ruby/object:Gem::Version
|
|
128
|
-
version:
|
|
138
|
+
- !ruby/object:Gem::Version
|
|
139
|
+
version: '0'
|
|
129
140
|
requirements: []
|
|
130
|
-
|
|
131
141
|
rubyforge_project:
|
|
132
|
-
rubygems_version:
|
|
142
|
+
rubygems_version: 2.2.0
|
|
133
143
|
signing_key:
|
|
134
|
-
specification_version:
|
|
135
|
-
summary: Acts as Status For a list of events - did something occur? or not? with scoped
|
|
144
|
+
specification_version: 4
|
|
145
|
+
summary: Acts as Status For a list of events - did something occur? or not? with scoped
|
|
146
|
+
finders and dynamic class scope - written for rails 3
|
|
136
147
|
test_files: []
|
|
137
|
-
|