incremental_factory_names 0.0.1
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/README.md +58 -0
- data/lib/incremental_factory_names.rb +11 -0
- data/lib/incremental_factory_names/version.rb +3 -0
- data/spec/incremental_factory_names_spec.rb +29 -0
- data/spec/spec_helper.rb +9 -0
- metadata +90 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c21d53485dfa0ef44383327fecb473837e0e1d183c515e8465b625ef4a94ac5b
|
4
|
+
data.tar.gz: 90c38673209d41c0a09201ea8b6189baf8ddb31139960f0ea90767612427533f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5494c29ae2a7ba41e239373131bd47191ce85ef751b2425181e56f484fe29bdc0e7e0ee274289aa2ea318907863760e821a653249d1a9ee60f63d7e9c3caeed5
|
7
|
+
data.tar.gz: 0042f0c31a3b0419e762a24f000723ec4104324fbde61e2a493342e581deb1331a91278c5ade700be64126e021ca3cf116690700595d5eb17624253dc83dc636
|
data/README.md
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
# This gem helps generate incremental factory names for preventing randomly failure specs
|
2
|
+
|
3
|
+
## Installation
|
4
|
+
|
5
|
+
Add this line to your application's Gemfile:
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
gem 'incremental_factory_names'
|
9
|
+
```
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install incremental_factory_names
|
18
|
+
|
19
|
+
## Testing
|
20
|
+
|
21
|
+
Simply run with rake
|
22
|
+
|
23
|
+
```
|
24
|
+
rake
|
25
|
+
```
|
26
|
+
|
27
|
+
## Usage
|
28
|
+
|
29
|
+
spec/spec_helper.rb or another place you have for including modules:
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
include IncrementalFactoryNames
|
33
|
+
```
|
34
|
+
|
35
|
+
and in any factory you need to have incremental names:
|
36
|
+
```ruby
|
37
|
+
factory :user do
|
38
|
+
...
|
39
|
+
sequence(:name) { |n| incremental_factory_name(number: n) } # returns 'User 001', 'User 002', etc
|
40
|
+
...
|
41
|
+
```
|
42
|
+
|
43
|
+
with additional params:
|
44
|
+
```ruby
|
45
|
+
...
|
46
|
+
sequence(:name) { |n| incremental_factory_name(number: n, name: 'Name') } # returns 'Name 001', 'Name 002', etc
|
47
|
+
...
|
48
|
+
sequence(:name) { |n| incremental_factory_name(number: n, length: 5) } # returns 'User 00001', 'User 00002', etc
|
49
|
+
...
|
50
|
+
```
|
51
|
+
|
52
|
+
## Contributing
|
53
|
+
|
54
|
+
Bug reports and pull requests are welcome on GitHub at [incremental_factory_names](https://github.com/Snick555/incremental_factory_names). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
55
|
+
|
56
|
+
## License
|
57
|
+
|
58
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module IncrementalFactoryNames
|
2
|
+
DEFAULT_LENGTH = 3
|
3
|
+
|
4
|
+
def incremental_factory_name(number:, name: factory_name, length: DEFAULT_LENGTH)
|
5
|
+
"#{name} #{sprintf("%0#{length}d", number)}"
|
6
|
+
end
|
7
|
+
|
8
|
+
def factory_name
|
9
|
+
self.instance_variable_get('@instance').class.name.split(/(?=[A-Z])/).join(' ')
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'IncrementalFactoryNames' do
|
4
|
+
let(:factory_user) { FactoryUser.new }
|
5
|
+
|
6
|
+
it 'returns factory name with number' do
|
7
|
+
result = factory_user.incremental_factory_name(number: 99)
|
8
|
+
|
9
|
+
expect(result).to eq('Factory User 099')
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'returns custom name with number' do
|
13
|
+
result = factory_user.incremental_factory_name(number: 99, name: 'Another Factory User')
|
14
|
+
|
15
|
+
expect(result).to eq('Another Factory User 099')
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'returns factory name with number with sprint' do
|
19
|
+
result = factory_user.incremental_factory_name(number: 99, length: 5)
|
20
|
+
|
21
|
+
expect(result).to eq('Factory User 00099')
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'returns custom name with number with sprint' do
|
25
|
+
result = factory_user.incremental_factory_name(number: 99, name: 'Another Factory User', length: 5)
|
26
|
+
|
27
|
+
expect(result).to eq('Another Factory User 00099')
|
28
|
+
end
|
29
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: incremental_factory_names
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ihor Voloshyn
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-09-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: factory_bot
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: ''
|
56
|
+
email: snick2510@gmail.com
|
57
|
+
executables: []
|
58
|
+
extensions: []
|
59
|
+
extra_rdoc_files:
|
60
|
+
- README.md
|
61
|
+
files:
|
62
|
+
- README.md
|
63
|
+
- lib/incremental_factory_names.rb
|
64
|
+
- lib/incremental_factory_names/version.rb
|
65
|
+
- spec/incremental_factory_names_spec.rb
|
66
|
+
- spec/spec_helper.rb
|
67
|
+
homepage: https://github.com/Snick555/incremental_factory_names
|
68
|
+
licenses:
|
69
|
+
- MIT
|
70
|
+
metadata: {}
|
71
|
+
post_install_message:
|
72
|
+
rdoc_options: []
|
73
|
+
require_paths:
|
74
|
+
- lib
|
75
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
requirements: []
|
86
|
+
rubygems_version: 3.0.3
|
87
|
+
signing_key:
|
88
|
+
specification_version: 4
|
89
|
+
summary: Incremental Factory Names
|
90
|
+
test_files: []
|