demo_mode 3.1.0 → 3.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/README.md +21 -4
- data/app/models/demo_mode/session.rb +1 -6
- data/lib/demo_mode/factory_bot_ext.rb +24 -2
- data/lib/demo_mode/version.rb +1 -1
- data/lib/demo_mode.rb +4 -4
- metadata +16 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79a195c2f6c9a3a17139cf5115b777fbdb5471cf5ed11de6fecabd78ac7fbe9f
|
4
|
+
data.tar.gz: e88204e01409170ade1c97f59f6d3bd1a3474155758af1b35933fbf90e229385
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d68636728270549d734df97882e2f57d586f14492b77521920587379cc37afbb400f377dd1dd290d3dbf9d9268dd25a794caae8857ab3caa51a27652fa7fd280
|
7
|
+
data.tar.gz: e62c44754e8c2a5fcc2e1884e6f16189f502555f8d4e00f683e1edc6775bc0ec014928fc696ed94c4f5ce7ebed5bf09b1cb83345e23914bcd921038cdf108ca5
|
data/README.md
CHANGED
@@ -472,7 +472,16 @@ begin_demo do
|
|
472
472
|
end
|
473
473
|
```
|
474
474
|
|
475
|
-
### FactoryBot
|
475
|
+
### FactoryBot extensions
|
476
|
+
|
477
|
+
Factory bot ships two patches that may be manually loaded after loading FactoryBot:
|
478
|
+
|
479
|
+
```ruby
|
480
|
+
require 'factory_bot'
|
481
|
+
require 'demo_mode/factory_bot_ext'
|
482
|
+
```
|
483
|
+
|
484
|
+
#### `sequence`
|
476
485
|
|
477
486
|
`DemoMode` comes with a patch designed to be a drop-in replacement for
|
478
487
|
[factory_bot](https://github.com/thoughtbot/factory_bot)'s `sequence` feature,
|
@@ -487,11 +496,19 @@ records in the DB (rather than starting at "Something 1" each time). This
|
|
487
496
|
feature is necessary wherever you rely on `UNIQUE` constraints in the database,
|
488
497
|
or uniqueness validations on your models.
|
489
498
|
|
490
|
-
|
499
|
+
#### `around_each` hook
|
500
|
+
|
501
|
+
Use `FactoryBot.around_each` to wrap all factory execution, which can be used to
|
502
|
+
skip expensive callbacks/logging:
|
491
503
|
|
492
504
|
```ruby
|
493
|
-
|
494
|
-
|
505
|
+
FactoryBot.around_each do |&blk|
|
506
|
+
was_enabled = MyLogger.enabled?
|
507
|
+
MyLogger.disable!
|
508
|
+
blk.call
|
509
|
+
ensure
|
510
|
+
MyLogger.enable! if was_enabled
|
511
|
+
end
|
495
512
|
```
|
496
513
|
|
497
514
|
#### Considerations
|
@@ -4,12 +4,7 @@ module DemoMode
|
|
4
4
|
class Session < ActiveRecord::Base
|
5
5
|
attribute :variant, default: :default
|
6
6
|
|
7
|
-
|
8
|
-
enum :status, { processing: 'processing', successful: 'successful', failed: 'failed' }, default: 'processing'
|
9
|
-
else
|
10
|
-
attribute :status, default: :processing
|
11
|
-
enum status: { processing: 'processing', successful: 'successful', failed: 'failed' }
|
12
|
-
end
|
7
|
+
enum :status, { processing: 'processing', successful: 'successful', failed: 'failed' }, default: 'processing'
|
13
8
|
|
14
9
|
validates :persona_name, :variant, presence: true
|
15
10
|
validates :persona, presence: { message: :required }, on: :create, if: :persona_name?
|
@@ -2,11 +2,33 @@
|
|
2
2
|
|
3
3
|
module FactoryBot
|
4
4
|
class DefinitionProxy
|
5
|
-
def clever_sequence(name, &
|
6
|
-
sequence = CleverSequence.new(name, &
|
5
|
+
def clever_sequence(name, &)
|
6
|
+
sequence = CleverSequence.new(name, &)
|
7
7
|
add_attribute(name) { sequence.with_class(@instance&.class).next }
|
8
8
|
end
|
9
9
|
|
10
10
|
alias sequence clever_sequence
|
11
11
|
end
|
12
12
|
end
|
13
|
+
|
14
|
+
module DemoMode
|
15
|
+
module FactoryBotExt
|
16
|
+
def around_each(&block)
|
17
|
+
@around_each ||= ->(&blk) { blk.call }
|
18
|
+
if block_given?
|
19
|
+
previous = @around_each
|
20
|
+
@around_each = ->(&blk) { previous.call { block.call(&blk) } }
|
21
|
+
end
|
22
|
+
@around_each
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
module FactoryBotRunnerExt
|
27
|
+
def run(...)
|
28
|
+
::FactoryBot.around_each.call { super }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
::FactoryBot.extend(FactoryBotExt)
|
33
|
+
::FactoryBot::FactoryRunner.prepend(FactoryBotRunnerExt)
|
34
|
+
end
|
data/lib/demo_mode/version.rb
CHANGED
data/lib/demo_mode.rb
CHANGED
@@ -27,12 +27,12 @@ module DemoMode
|
|
27
27
|
'demo_mode_'
|
28
28
|
end
|
29
29
|
|
30
|
-
def configure(&
|
31
|
-
configuration.instance_eval(&
|
30
|
+
def configure(&)
|
31
|
+
configuration.instance_eval(&)
|
32
32
|
end
|
33
33
|
|
34
|
-
def add_persona(name = default_name, &
|
35
|
-
configuration.persona(name, &
|
34
|
+
def add_persona(name = default_name, &)
|
35
|
+
configuration.persona(name, &)
|
36
36
|
end
|
37
37
|
|
38
38
|
def callout_personas
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: demo_mode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Griffith
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: actionpack
|
@@ -15,7 +15,7 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - ">="
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: '
|
18
|
+
version: '7.2'
|
19
19
|
- - "<"
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '8.1'
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
requirements:
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: '
|
28
|
+
version: '7.2'
|
29
29
|
- - "<"
|
30
30
|
- !ruby/object:Gem::Version
|
31
31
|
version: '8.1'
|
@@ -35,7 +35,7 @@ dependencies:
|
|
35
35
|
requirements:
|
36
36
|
- - ">="
|
37
37
|
- !ruby/object:Gem::Version
|
38
|
-
version: '
|
38
|
+
version: '7.2'
|
39
39
|
- - "<"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '8.1'
|
@@ -45,7 +45,7 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '7.2'
|
49
49
|
- - "<"
|
50
50
|
- !ruby/object:Gem::Version
|
51
51
|
version: '8.1'
|
@@ -55,7 +55,7 @@ dependencies:
|
|
55
55
|
requirements:
|
56
56
|
- - ">="
|
57
57
|
- !ruby/object:Gem::Version
|
58
|
-
version: '
|
58
|
+
version: '7.2'
|
59
59
|
- - "<"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '8.1'
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '7.2'
|
69
69
|
- - "<"
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: '8.1'
|
@@ -75,7 +75,7 @@ dependencies:
|
|
75
75
|
requirements:
|
76
76
|
- - ">="
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version: '
|
78
|
+
version: '7.2'
|
79
79
|
- - "<"
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: '8.1'
|
@@ -85,7 +85,7 @@ dependencies:
|
|
85
85
|
requirements:
|
86
86
|
- - ">="
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
88
|
+
version: '7.2'
|
89
89
|
- - "<"
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: '8.1'
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
requirements:
|
110
110
|
- - ">="
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: '
|
112
|
+
version: '7.2'
|
113
113
|
- - "<"
|
114
114
|
- !ruby/object:Gem::Version
|
115
115
|
version: '8.1'
|
@@ -119,7 +119,7 @@ dependencies:
|
|
119
119
|
requirements:
|
120
120
|
- - ">="
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: '
|
122
|
+
version: '7.2'
|
123
123
|
- - "<"
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '8.1'
|
@@ -129,7 +129,7 @@ dependencies:
|
|
129
129
|
requirements:
|
130
130
|
- - ">="
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: '
|
132
|
+
version: '7.2'
|
133
133
|
- - "<"
|
134
134
|
- !ruby/object:Gem::Version
|
135
135
|
version: '8.1'
|
@@ -139,7 +139,7 @@ dependencies:
|
|
139
139
|
requirements:
|
140
140
|
- - ">="
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version: '
|
142
|
+
version: '7.2'
|
143
143
|
- - "<"
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '8.1'
|
@@ -357,14 +357,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
357
357
|
requirements:
|
358
358
|
- - ">="
|
359
359
|
- !ruby/object:Gem::Version
|
360
|
-
version: '3.
|
360
|
+
version: '3.2'
|
361
361
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
362
362
|
requirements:
|
363
363
|
- - ">="
|
364
364
|
- !ruby/object:Gem::Version
|
365
365
|
version: '0'
|
366
366
|
requirements: []
|
367
|
-
rubygems_version: 3.6.
|
367
|
+
rubygems_version: 3.6.8
|
368
368
|
specification_version: 4
|
369
369
|
summary: A configurable demo mode for your Rails app.
|
370
370
|
test_files: []
|