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 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,3 @@
1
+ module IncrementalFactoryNames
2
+ VERSION = '0.0.1'
3
+ 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
@@ -0,0 +1,9 @@
1
+ require 'incremental_factory_names'
2
+
3
+ class FactoryUser
4
+ include IncrementalFactoryNames
5
+
6
+ def initialize
7
+ @instance = self
8
+ end
9
+ end
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: []