demo_mode 3.1.0 → 3.2.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/lib/demo_mode/factory_bot_ext.rb +22 -0
- data/lib/demo_mode/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32fe807f48ace30d24a2172d0b73965272b6d93057dd2447cb4587d386ef93a2
|
4
|
+
data.tar.gz: 568795bf8f52234c1d4ead6882762bfa6ec631e6a3242eada9848a7e050c6a0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5d183a6c1de1c237dfca4adf333e637223c6d89525249d36841888a432c5c6e8727d01debba0f790f86d5f732441848c8f6ba2e816f89e254666b65e661b72a
|
7
|
+
data.tar.gz: a29b4fef772ebb421e4f8236c911316bb5078c29a231e5241788b2c1053a2bef9fe760edf4cfc629b5de21897107564265d3e5a0106adeda39ed57ae22088da5
|
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
|
@@ -10,3 +10,25 @@ module FactoryBot
|
|
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
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.2.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
|
@@ -364,7 +364,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
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: []
|