statesman_mongoid 0.4.2 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97d9816cbf3c2f3ff3c8cdf9c39c9a90fa83593a67d4fa774b3fcfbbc43f6699
4
- data.tar.gz: a822c04a61bdb81c487d7125504d17dcf6fc239e48c67d669be5eee691077d22
3
+ metadata.gz: 83361ab4d8957da40be48ad4cfd3354d4303b5bf26a08c8c33f6968b38a67541
4
+ data.tar.gz: 78fe97d9dabfe47ad6c49fd1767d584b89436f25affcc33111dd6f748c05f462
5
5
  SHA512:
6
- metadata.gz: c51f46372492ec81efd46bce9ed697a3a0dbe1621a6bc3d4d3979fcd4d5b54e5f103af4b0cd7ec7839f3c9da96b098c2b377621240a22754e427942a9073a24d
7
- data.tar.gz: 83da04c91091fe007474acd36fa9decc40420024ad03380dc57b4353bcd6a17b3a819fb0081f2af68b2420cf64a7a50a8f2f71664e400629589df9bdc0c46284
6
+ metadata.gz: 94e438c1e46d543c605201fb00a109562c1cb91bc7e7a2dda62921fd0849b157b9b31b2dcac324b378dd46f0ffd94c48580e927afa39c204669416b14326da2e
7
+ data.tar.gz: c7e54160bc1a435d9192ba8a686a6c643baaeca2a5cb7cbd6cea3ad5bad95b58a70a13bb715f37ffd9cd5a1b25d6012ab6a499fa47924a8e6d1706f1ea7013bf
data/Gemfile CHANGED
@@ -2,7 +2,18 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- # Specify your gem's dependencies in statesman_mongoid.gemspec
6
5
  gemspec
7
6
 
8
- gem "rake", "~> 13.0"
7
+ if ENV['RAILS_VERSION'] == 'master'
8
+ gem "rails", git: "https://github.com/rails/rails"
9
+ elsif ENV['RAILS_VERSION']
10
+ gem "rails", "~> #{ENV['RAILS_VERSION']}"
11
+ end
12
+
13
+ group :development do
14
+ gem "mongoid", ">= 3.1" unless ENV["EXCLUDE_MONGOID"]
15
+
16
+ # test/unit is no longer bundled with Ruby 2.2, but required by Rails
17
+ gem "pry"
18
+ gem "test-unit", "~> 3.3" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.2.0")
19
+ end
data/Gemfile.lock CHANGED
@@ -1,21 +1,259 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- statesman_mongoid (0.4.2)
4
+ statesman_mongoid (0.5.0)
5
5
  statesman (~> 10.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ actioncable (7.0.5)
11
+ actionpack (= 7.0.5)
12
+ activesupport (= 7.0.5)
13
+ nio4r (~> 2.0)
14
+ websocket-driver (>= 0.6.1)
15
+ actionmailbox (7.0.5)
16
+ actionpack (= 7.0.5)
17
+ activejob (= 7.0.5)
18
+ activerecord (= 7.0.5)
19
+ activestorage (= 7.0.5)
20
+ activesupport (= 7.0.5)
21
+ mail (>= 2.7.1)
22
+ net-imap
23
+ net-pop
24
+ net-smtp
25
+ actionmailer (7.0.5)
26
+ actionpack (= 7.0.5)
27
+ actionview (= 7.0.5)
28
+ activejob (= 7.0.5)
29
+ activesupport (= 7.0.5)
30
+ mail (~> 2.5, >= 2.5.4)
31
+ net-imap
32
+ net-pop
33
+ net-smtp
34
+ rails-dom-testing (~> 2.0)
35
+ actionpack (7.0.5)
36
+ actionview (= 7.0.5)
37
+ activesupport (= 7.0.5)
38
+ rack (~> 2.0, >= 2.2.4)
39
+ rack-test (>= 0.6.3)
40
+ rails-dom-testing (~> 2.0)
41
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
42
+ actiontext (7.0.5)
43
+ actionpack (= 7.0.5)
44
+ activerecord (= 7.0.5)
45
+ activestorage (= 7.0.5)
46
+ activesupport (= 7.0.5)
47
+ globalid (>= 0.6.0)
48
+ nokogiri (>= 1.8.5)
49
+ actionview (7.0.5)
50
+ activesupport (= 7.0.5)
51
+ builder (~> 3.1)
52
+ erubi (~> 1.4)
53
+ rails-dom-testing (~> 2.0)
54
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
55
+ activejob (7.0.5)
56
+ activesupport (= 7.0.5)
57
+ globalid (>= 0.3.6)
58
+ activemodel (7.0.5)
59
+ activesupport (= 7.0.5)
60
+ activerecord (7.0.5)
61
+ activemodel (= 7.0.5)
62
+ activesupport (= 7.0.5)
63
+ activestorage (7.0.5)
64
+ actionpack (= 7.0.5)
65
+ activejob (= 7.0.5)
66
+ activerecord (= 7.0.5)
67
+ activesupport (= 7.0.5)
68
+ marcel (~> 1.0)
69
+ mini_mime (>= 1.1.0)
70
+ activesupport (7.0.5)
71
+ concurrent-ruby (~> 1.0, >= 1.0.2)
72
+ i18n (>= 1.6, < 2)
73
+ minitest (>= 5.1)
74
+ tzinfo (~> 2.0)
75
+ ammeter (1.1.5)
76
+ activesupport (>= 3.0)
77
+ railties (>= 3.0)
78
+ rspec-rails (>= 2.2)
79
+ ast (2.4.2)
80
+ bson (4.15.0)
81
+ builder (3.2.4)
82
+ coderay (1.1.3)
83
+ concurrent-ruby (1.2.2)
84
+ crass (1.0.6)
85
+ date (3.3.3)
86
+ diff-lcs (1.5.0)
87
+ erubi (1.12.0)
88
+ gc_ruboconfig (3.6.2)
89
+ rubocop (>= 1.37.1)
90
+ rubocop-performance (>= 1.15)
91
+ rubocop-rails (>= 2.17.2)
92
+ rubocop-rspec (>= 2.14.2)
93
+ globalid (1.1.0)
94
+ activesupport (>= 5.0)
95
+ i18n (1.14.1)
96
+ concurrent-ruby (~> 1.0)
97
+ json (2.6.3)
98
+ loofah (2.21.3)
99
+ crass (~> 1.0.2)
100
+ nokogiri (>= 1.12.0)
101
+ mail (2.8.1)
102
+ mini_mime (>= 0.1.1)
103
+ net-imap
104
+ net-pop
105
+ net-smtp
106
+ marcel (1.0.2)
107
+ method_source (1.0.0)
108
+ mini_mime (1.1.2)
109
+ minitest (5.18.0)
110
+ mongo (2.18.2)
111
+ bson (>= 4.14.1, < 5.0.0)
112
+ mongoid (8.0.3)
113
+ activemodel (>= 5.1, < 7.1, != 7.0.0)
114
+ mongo (>= 2.18.0, < 3.0.0)
115
+ ruby2_keywords (~> 0.0.5)
116
+ net-imap (0.3.6)
117
+ date
118
+ net-protocol
119
+ net-pop (0.1.2)
120
+ net-protocol
121
+ net-protocol (0.2.1)
122
+ timeout
123
+ net-smtp (0.3.3)
124
+ net-protocol
125
+ nio4r (2.5.9)
126
+ nokogiri (1.15.2-x86_64-linux)
127
+ racc (~> 1.4)
128
+ parallel (1.23.0)
129
+ parser (3.2.2.3)
130
+ ast (~> 2.4.1)
131
+ racc
132
+ power_assert (2.0.3)
133
+ pry (0.14.2)
134
+ coderay (~> 1.1)
135
+ method_source (~> 1.0)
136
+ racc (1.7.1)
137
+ rack (2.2.7)
138
+ rack-test (2.1.0)
139
+ rack (>= 1.3)
140
+ rails (7.0.5)
141
+ actioncable (= 7.0.5)
142
+ actionmailbox (= 7.0.5)
143
+ actionmailer (= 7.0.5)
144
+ actionpack (= 7.0.5)
145
+ actiontext (= 7.0.5)
146
+ actionview (= 7.0.5)
147
+ activejob (= 7.0.5)
148
+ activemodel (= 7.0.5)
149
+ activerecord (= 7.0.5)
150
+ activestorage (= 7.0.5)
151
+ activesupport (= 7.0.5)
152
+ bundler (>= 1.15.0)
153
+ railties (= 7.0.5)
154
+ rails-dom-testing (2.0.3)
155
+ activesupport (>= 4.2.0)
156
+ nokogiri (>= 1.6)
157
+ rails-html-sanitizer (1.6.0)
158
+ loofah (~> 2.21)
159
+ nokogiri (~> 1.14)
160
+ railties (7.0.5)
161
+ actionpack (= 7.0.5)
162
+ activesupport (= 7.0.5)
163
+ method_source
164
+ rake (>= 12.2)
165
+ thor (~> 1.0)
166
+ zeitwerk (~> 2.5)
167
+ rainbow (3.1.1)
10
168
  rake (13.0.6)
169
+ regexp_parser (2.8.1)
170
+ rexml (3.2.5)
171
+ rspec (3.12.0)
172
+ rspec-core (~> 3.12.0)
173
+ rspec-expectations (~> 3.12.0)
174
+ rspec-mocks (~> 3.12.0)
175
+ rspec-core (3.12.2)
176
+ rspec-support (~> 3.12.0)
177
+ rspec-expectations (3.12.3)
178
+ diff-lcs (>= 1.2.0, < 2.0)
179
+ rspec-support (~> 3.12.0)
180
+ rspec-github (2.4.0)
181
+ rspec-core (~> 3.0)
182
+ rspec-its (1.3.0)
183
+ rspec-core (>= 3.0.0)
184
+ rspec-expectations (>= 3.0.0)
185
+ rspec-mocks (3.12.5)
186
+ diff-lcs (>= 1.2.0, < 2.0)
187
+ rspec-support (~> 3.12.0)
188
+ rspec-rails (6.0.3)
189
+ actionpack (>= 6.1)
190
+ activesupport (>= 6.1)
191
+ railties (>= 6.1)
192
+ rspec-core (~> 3.12)
193
+ rspec-expectations (~> 3.12)
194
+ rspec-mocks (~> 3.12)
195
+ rspec-support (~> 3.12)
196
+ rspec-support (3.12.0)
197
+ rubocop (1.52.1)
198
+ json (~> 2.3)
199
+ parallel (~> 1.10)
200
+ parser (>= 3.2.2.3)
201
+ rainbow (>= 2.2.2, < 4.0)
202
+ regexp_parser (>= 1.8, < 3.0)
203
+ rexml (>= 3.2.5, < 4.0)
204
+ rubocop-ast (>= 1.28.0, < 2.0)
205
+ ruby-progressbar (~> 1.7)
206
+ unicode-display_width (>= 2.4.0, < 3.0)
207
+ rubocop-ast (1.29.0)
208
+ parser (>= 3.2.1.0)
209
+ rubocop-capybara (2.18.0)
210
+ rubocop (~> 1.41)
211
+ rubocop-factory_bot (2.23.1)
212
+ rubocop (~> 1.33)
213
+ rubocop-performance (1.18.0)
214
+ rubocop (>= 1.7.0, < 2.0)
215
+ rubocop-ast (>= 0.4.0)
216
+ rubocop-rails (2.19.1)
217
+ activesupport (>= 4.2.0)
218
+ rack (>= 1.1)
219
+ rubocop (>= 1.33.0, < 2.0)
220
+ rubocop-rspec (2.22.0)
221
+ rubocop (~> 1.33)
222
+ rubocop-capybara (~> 2.17)
223
+ rubocop-factory_bot (~> 2.22)
224
+ ruby-progressbar (1.13.0)
225
+ ruby2_keywords (0.0.5)
11
226
  statesman (10.2.2)
227
+ test-unit (3.6.0)
228
+ power_assert
229
+ thor (1.2.2)
230
+ timecop (0.9.6)
231
+ timeout (0.3.2)
232
+ tzinfo (2.0.6)
233
+ concurrent-ruby (~> 1.0)
234
+ unicode-display_width (2.4.2)
235
+ websocket-driver (0.7.5)
236
+ websocket-extensions (>= 0.1.0)
237
+ websocket-extensions (0.1.5)
238
+ zeitwerk (2.6.8)
12
239
 
13
240
  PLATFORMS
14
241
  x86_64-linux
15
242
 
16
243
  DEPENDENCIES
17
- rake (~> 13.0)
244
+ ammeter (~> 1.1)
245
+ gc_ruboconfig (~> 3.6.0)
246
+ mongoid (>= 3.1)
247
+ pry
248
+ rails (>= 5.2)
249
+ rake (~> 13.0.0)
250
+ rspec (~> 3.1)
251
+ rspec-github (~> 2.4.0)
252
+ rspec-its (~> 1.1)
253
+ rspec-rails (~> 6.0)
18
254
  statesman_mongoid!
255
+ test-unit (~> 3.3)
256
+ timecop (~> 0.9.1)
19
257
 
20
258
  BUNDLED WITH
21
259
  2.3.7
data/README.md CHANGED
@@ -1,10 +1,6 @@
1
1
  # Statesman Mongoid
2
2
 
3
- Mongoid adapters for [Statesman](https://github.com/gocardless/statesman).
4
-
5
- TODO: Restore & update specs
6
-
7
- NOTE: Restored Statesman's mongoid support with some fixes & updates. This project is in an early stage, please report any bugs or missing features. Use at your own risk and feel free to contribute.
3
+ Set of adapters to use [Mongoid](https://github.com/mongodb/mongoid) as the persistence layer for [Statesman](https://github.com/gocardless/statesman). Provide feature parity with default adapters, generators and specs in an hassle-free manner.
8
4
 
9
5
  ## Installation
10
6
 
@@ -24,16 +20,14 @@ Or install it yourself as:
24
20
 
25
21
  ## Usage
26
22
 
27
- TODO: Expand usage instructions
28
-
29
- Follow instructions in the Statesman's doc and replace invoked classes with these ones when approriate:
23
+ Follow instructions in the Statesman's doc and simply replace the ActiveRecord adapters with these ones when approriate:
30
24
  ``` ruby
31
25
  Statesman::Adapters::Mongoid
32
26
  Statesman::Adapters::MongoidTransition
33
27
  Statesman::Adapters::MongoidQueries
34
28
  ```
35
29
 
36
- Generator:
30
+ Generator(s) specific to mongoid:
37
31
  ```
38
32
  rails generate statesman:mongoid_transition Order OrderTransition
39
33
  ```
@@ -45,6 +45,14 @@ module Statesman
45
45
 
46
46
  query_builder = QueryBuilder.new(base, **@args)
47
47
 
48
+ base.define_singleton_method(:most_recent_transition_join) do
49
+ puts <<~STUB_NOTE
50
+ \e[1;33mmost_recent_transition_join\e[0;33m is a stub to provide feature-parity
51
+ with the default ActiveRecord adapters, Mongoid doesn't support joins\e[0m
52
+ STUB_NOTE
53
+ self
54
+ end
55
+
48
56
  define_in_state(base, query_builder)
49
57
  define_not_in_state(base, query_builder)
50
58
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StatesmanMongoid
4
- VERSION = "0.4.2"
4
+ VERSION = "0.5.0"
5
5
  end
@@ -28,9 +28,18 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ["lib"]
30
30
 
31
- # Uncomment to register a new dependency of your gem
32
31
  spec.add_dependency "statesman", "~> 10.0"
33
32
 
33
+ spec.add_development_dependency "ammeter", "~> 1.1"
34
+ spec.add_development_dependency "gc_ruboconfig", "~> 3.6.0"
35
+ spec.add_development_dependency "rails", ">= 5.2"
36
+ spec.add_development_dependency "rake", "~> 13.0.0"
37
+ spec.add_development_dependency "rspec", "~> 3.1"
38
+ spec.add_development_dependency "rspec-github", "~> 2.4.0"
39
+ spec.add_development_dependency "rspec-its", "~> 1.1"
40
+ spec.add_development_dependency "rspec-rails", "~> 6.0"
41
+ spec.add_development_dependency "timecop", "~> 0.9.1"
42
+
34
43
  # For more information and examples about making a new gem, check out our
35
44
  # guide at: https://bundler.io/guides/creating_gem.html
36
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statesman_mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - oz-tal
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-10 00:00:00.000000000 Z
11
+ date: 2023-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: statesman
@@ -24,6 +24,132 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '10.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: ammeter
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: gc_ruboconfig
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.6.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.6.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '5.2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '5.2'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 13.0.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 13.0.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec-github
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 2.4.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 2.4.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec-its
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.1'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.1'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec-rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '6.0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '6.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: timecop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.9.1
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.9.1
27
153
  description:
28
154
  email:
29
155
  - 979951+oz-tal@users.noreply.github.com