rom-factory 0.10.1 → 0.11.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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.action_hero.yml +21 -0
  3. data/.devtools/templates/changelog.erb +43 -0
  4. data/.devtools/templates/release.erb +36 -0
  5. data/.github/FUNDING.yml +1 -0
  6. data/.github/ISSUE_TEMPLATE/bug-report.md +26 -0
  7. data/.github/ISSUE_TEMPLATE/config.yml +5 -0
  8. data/.github/SUPPORT.md +3 -0
  9. data/.github/workflows/ci.yml +87 -0
  10. data/.github/workflows/docsite.yml +38 -9
  11. data/.github/workflows/rubocop.yml +46 -0
  12. data/.github/workflows/sync_configs.yml +41 -18
  13. data/.rspec +1 -1
  14. data/.rubocop.yml +198 -40
  15. data/CHANGELOG.md +88 -33
  16. data/CODEOWNERS +1 -0
  17. data/CODE_OF_CONDUCT.md +1 -1
  18. data/CONTRIBUTING.md +4 -4
  19. data/Gemfile +22 -22
  20. data/Gemfile.devtools +20 -0
  21. data/LICENSE +1 -1
  22. data/README.md +13 -48
  23. data/Rakefile +1 -1
  24. data/benchmarks/basic.rb +10 -10
  25. data/changelog.yml +99 -0
  26. data/docsite/source/index.html.md +162 -1
  27. data/lib/rom/factory/attribute_registry.rb +2 -2
  28. data/lib/rom/factory/attributes/association.rb +52 -12
  29. data/lib/rom/factory/attributes/callable.rb +1 -1
  30. data/lib/rom/factory/attributes/value.rb +1 -1
  31. data/lib/rom/factory/attributes.rb +4 -6
  32. data/lib/rom/factory/builder/persistable.rb +3 -5
  33. data/lib/rom/factory/builder.rb +8 -18
  34. data/lib/rom/factory/constants.rb +1 -1
  35. data/lib/rom/factory/dsl.rb +36 -23
  36. data/lib/rom/factory/factories.rb +13 -15
  37. data/lib/rom/factory/registry.rb +2 -2
  38. data/lib/rom/factory/sequences.rb +1 -1
  39. data/lib/rom/factory/tuple_evaluator.rb +18 -22
  40. data/lib/rom/factory/version.rb +1 -1
  41. data/lib/rom/factory.rb +8 -5
  42. data/lib/rom-factory.rb +1 -1
  43. data/project.yml +3 -0
  44. data/rom-factory.gemspec +8 -11
  45. metadata +43 -43
  46. data/.codeclimate.yml +0 -12
  47. data/.github/ISSUE_TEMPLATE/----please-don-t-ask-for-support-via-issues.md +0 -10
  48. data/.github/ISSUE_TEMPLATE/----please-don-t-report-feature-requests-via-issues.md +0 -10
  49. data/.github/ISSUE_TEMPLATE/---a-detailed-bug-report.md +0 -30
  50. data/.github/ISSUE_TEMPLATE/---bug-report.md +0 -30
  51. data/.github/ISSUE_TEMPLATE/---feature-request.md +0 -18
  52. data/.github/workflows/custom_ci.yml +0 -118
  53. data/Appraisals +0 -9
  54. data/LICENSE.txt +0 -21
  55. data/gemfiles/faker_1.gemfile +0 -34
  56. data/gemfiles/faker_1.gemfile.lock +0 -178
  57. data/gemfiles/faker_2.gemfile +0 -34
  58. data/gemfiles/faker_2.gemfile.lock +0 -178
@@ -1,26 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'faker'
4
- require 'dry/core/inflector'
3
+ require "faker"
5
4
 
6
- require 'rom/factory/builder'
7
- require 'rom/factory/attribute_registry'
8
- require 'rom/factory/attributes'
5
+ require "rom/factory/builder"
6
+ require "rom/factory/attribute_registry"
7
+ require "rom/factory/attributes"
9
8
 
10
9
  module ROM
11
10
  module Factory
11
+ extend ::Dry::Core::Cache
12
+
12
13
  class << self
13
14
  # @api private
14
- def fake(type, *args)
15
- api = ::Faker.const_get(::Dry::Core::Inflector.classify(type.to_s))
15
+ def fake(*args, **options)
16
+ api = fetch_or_store(:faker, *args) do
17
+ *ns, method_name = args
16
18
 
17
- if args[0].is_a?(Symbol)
18
- api.public_send(*args)
19
- else
20
- api.public_send(type, *args)
19
+ const = ns.reduce(::Faker) do |obj, name|
20
+ obj.const_get(::Dry::Core::Inflector.camelize(name))
21
+ end
22
+
23
+ const.method(method_name)
21
24
  end
25
+
26
+ api.(**options)
22
27
  end
23
- ruby2_keywords(:fake) if respond_to?(:ruby2_keywords, true)
24
28
  end
25
29
 
26
30
  # Factory builder DSL
@@ -33,7 +37,7 @@ module ROM
33
37
  attr_reader :_traits
34
38
 
35
39
  # @api private
36
- def initialize(name, attributes: AttributeRegistry.new, relation:, factories:, struct_namespace:)
40
+ def initialize(name, relation:, factories:, struct_namespace:, attributes: AttributeRegistry.new)
37
41
  @_name = name
38
42
  @_relation = relation
39
43
  @_factories = factories
@@ -83,26 +87,35 @@ module ROM
83
87
  #
84
88
  # @param [Symbol] type The value type to generate
85
89
  #
86
- # @overload fake(api, type)
90
+ # @overload fake(genre, type)
87
91
  # @example
88
92
  # f.email { fake(:internet, :email) }
89
93
  #
90
- # @param [Symbol] api The faker API identifier ie. :internet, :product etc.
94
+ # @param [Symbol] genre The faker API identifier ie. :internet, :product etc.
91
95
  # @param [Symbol] type The value type to generate
92
96
  #
93
- # @overload fake(api, type, *args)
97
+ # @overload fake(genre, type, **options)
94
98
  # @example
95
- # f.email { fake(:number, :between, 10, 100) }
99
+ # f.email { fake(:number, :between, from: 10, to: 100) }
96
100
  #
97
- # @param [Symbol] api The faker API identifier ie. :internet, :product etc.
101
+ # @param [Symbol] genre The faker API identifier ie. :internet, :product etc.
98
102
  # @param [Symbol] type The value type to generate
99
- # @param [Array] args Additional arguments
103
+ # @param [Hash] options Additional arguments
104
+ #
105
+ # @overload fake(genre, subgenre, type, **options)
106
+ # @example
107
+ # f.quote { fake(:books, :dune, :quote, character: 'stilgar') }
108
+ #
109
+ # @param [Symbol] genre The Faker genre of API i.e. :books, :creature, :games etc
110
+ # @param [Symbol] subgenre The subgenre of API i.e. :dune, :bird, :myst etc
111
+ # @param [Symbol] type the value type to generate
112
+ # @param [Hash] options Additional arguments
100
113
  #
101
- # @see https://github.com/stympy/faker/tree/master/doc
114
+ # @see https://github.com/faker-ruby/faker/tree/master/doc
102
115
  #
103
116
  # @api public
104
- def fake(*args)
105
- ::ROM::Factory.fake(*args)
117
+ def fake(type, *args, **options)
118
+ ::ROM::Factory.fake(type, *args, **options)
106
119
  end
107
120
 
108
121
  def trait(name, parents = [], &block)
@@ -135,7 +148,7 @@ module ROM
135
148
  assoc = _relation.associations[name]
136
149
 
137
150
  if assoc.is_a?(::ROM::SQL::Associations::OneToOne) && options.fetch(:count, 1) > 1
138
- ::Kernel.raise ::ArgumentError, 'count cannot be greater than 1 on a OneToOne'
151
+ ::Kernel.raise ::ArgumentError, "count cannot be greater than 1 on a OneToOne"
139
152
  end
140
153
 
141
154
  builder = -> { _factories.for_relation(assoc.target) }
@@ -1,12 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/configurable'
4
- require 'dry/core/inflector'
5
-
6
- require 'rom/initializer'
7
- require 'rom/struct'
8
- require 'rom/factory/dsl'
9
- require 'rom/factory/registry'
3
+ require "rom/initializer"
4
+ require "rom/struct"
5
+ require "rom/factory/dsl"
6
+ require "rom/factory/registry"
10
7
 
11
8
  module ROM::Factory
12
9
  # In-memory builder API
@@ -42,7 +39,7 @@ module ROM::Factory
42
39
  #
43
40
  # @api public
44
41
  def [](name, *traits, **attrs)
45
- registry[name].struct_namespace(struct_namespace).create(*traits, attrs)
42
+ registry[name].struct_namespace(struct_namespace).create(*traits, **attrs)
46
43
  end
47
44
  end
48
45
 
@@ -147,7 +144,7 @@ module ROM::Factory
147
144
  name,
148
145
  relation: relation,
149
146
  factories: self,
150
- struct_namespace: builder_sturct_namespace(namespace),
147
+ struct_namespace: builder_struct_namespace(namespace),
151
148
  &block
152
149
  ).call
153
150
  end
@@ -164,13 +161,14 @@ module ROM::Factory
164
161
  # MyFactory[:user, name: "Jane"]
165
162
  #
166
163
  # @param [Symbol] name The name of the registered factory
167
- # @param [Hash] attrs An optional hash with attributes
164
+ # @param [Array<Symbol>] traits List of traits to apply
165
+ # @param [Hash] attrs optional attributes to override the defaults
168
166
  #
169
167
  # @return [ROM::Struct]
170
168
  #
171
169
  # @api public
172
- def [](name, *args)
173
- registry[name].struct_namespace(struct_namespace).persistable.create(*args)
170
+ def [](name, *traits, **attrs)
171
+ registry[name].struct_namespace(struct_namespace).persistable.create(*traits, **attrs)
174
172
  end
175
173
 
176
174
  # Return in-memory struct builder
@@ -204,8 +202,8 @@ module ROM::Factory
204
202
  end
205
203
 
206
204
  # @api private
207
- def builder_sturct_namespace(ns)
208
- ns ? { namespace: ns, overridable: false } : { namespace: struct_namespace, overridable: true }
205
+ def builder_struct_namespace(ns)
206
+ ns ? {namespace: ns, overridable: false} : {namespace: struct_namespace, overridable: true}
209
207
  end
210
208
 
211
209
  # @api private
@@ -226,7 +224,7 @@ module ROM::Factory
226
224
  # @api private
227
225
  def extend_builder(name, parent, relation_name, ns, &block)
228
226
  namespace = parent.options[:struct_namespace]
229
- namespace = builder_sturct_namespace(ns) if ns
227
+ namespace = builder_struct_namespace(ns) if ns
230
228
  relation = rom.relations.fetch(relation_name) { parent.relation }
231
229
  DSL.new(
232
230
  name,
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rom/factory/constants'
3
+ require "rom/factory/constants"
4
4
 
5
5
  module ROM
6
6
  module Factory
@@ -28,7 +28,7 @@ module ROM
28
28
  # @api private
29
29
  def [](name)
30
30
  elements.fetch(name) do
31
- raise FactoryNotDefinedError.new(name)
31
+ raise FactoryNotDefinedError, name
32
32
  end
33
33
  end
34
34
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'singleton'
3
+ require "singleton"
4
4
 
5
5
  module ROM
6
6
  module Factory
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rom/factory/sequences'
3
+ require "rom/factory/sequences"
4
4
 
5
5
  module ROM
6
6
  module Factory
@@ -31,13 +31,13 @@ module ROM
31
31
  end
32
32
 
33
33
  # @api private
34
- def defaults(traits, attrs, opts = EMPTY_HASH)
35
- evaluate(traits, attrs, opts).merge(attrs)
34
+ def defaults(traits, attrs, **opts)
35
+ mergeable_attrs = select_mergeable_attrs(traits, attrs)
36
+ evaluate(traits, attrs, opts).merge(mergeable_attrs)
36
37
  end
37
38
 
38
39
  # @api private
39
- def struct(*args)
40
- traits, attrs = extract_tuple(args)
40
+ def struct(*traits, **attrs)
41
41
  merged_attrs = struct_attrs.merge(defaults(traits, attrs, persist: false))
42
42
  is_callable = proc { |_name, value| value.respond_to?(:call) }
43
43
 
@@ -92,28 +92,17 @@ module ROM
92
92
  relation.primary_key
93
93
  end
94
94
 
95
- # @api private
96
- def extract_tuple(args)
97
- if !args.empty? && args.last.is_a?(::Hash)
98
- *traits, attrs = args
99
-
100
- [traits, attrs]
101
- else
102
- [args, EMPTY_HASH]
103
- end
104
- end
105
-
106
95
  private
107
96
 
108
97
  # @api private
109
98
  def evaluate(traits, attrs, opts)
110
- evaluate_values(attrs, opts)
99
+ evaluate_values(attrs)
111
100
  .merge(evaluate_associations(attrs, opts))
112
101
  .merge(evaluate_traits(traits, attrs, opts))
113
102
  end
114
103
 
115
104
  # @api private
116
- def evaluate_values(attrs, opts)
105
+ def evaluate_values(attrs)
117
106
  attributes.values.tsort.each_with_object({}) do |attr, h|
118
107
  deps = attr.dependency_names.map { |k| h[k] }.compact
119
108
  result = attr.(attrs, *deps)
@@ -129,7 +118,7 @@ module ROM
129
118
 
130
119
  traits_attrs = self.traits.values_at(*traits).flat_map(&:elements)
131
120
  registry = AttributeRegistry.new(traits_attrs)
132
- self.class.new(registry, relation).defaults([], attrs, opts)
121
+ self.class.new(registry, relation).defaults([], attrs, **opts)
133
122
  end
134
123
 
135
124
  # @api private
@@ -148,9 +137,9 @@ module ROM
148
137
 
149
138
  # @api private
150
139
  def struct_attrs
151
- struct_attrs = relation.schema.
152
- reject(&:primary_key?).
153
- map { |attr| [attr.name, nil] }.to_h
140
+ struct_attrs = relation.schema
141
+ .reject(&:primary_key?)
142
+ .map { |attr| [attr.name, nil] }.to_h
154
143
 
155
144
  if primary_key
156
145
  struct_attrs.merge(primary_key => next_id)
@@ -163,6 +152,13 @@ module ROM
163
152
  def next_id
164
153
  sequence.()
165
154
  end
155
+
156
+ def select_mergeable_attrs(traits, attrs)
157
+ unmergeable = assocs(traits).select(&:through?).map do |a|
158
+ Dry::Core::Inflector.singularize(a.assoc.target.name.to_sym).to_sym
159
+ end
160
+ attrs.dup.delete_if { |key, _| unmergeable.include?(key) }
161
+ end
166
162
  end
167
163
  end
168
164
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ROM
4
4
  module Factory
5
- VERSION = '0.10.1'
5
+ VERSION = "0.11.0"
6
6
  end
7
7
  end
data/lib/rom/factory.rb CHANGED
@@ -1,14 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/core/class_builder'
4
- require 'rom/factory/factories'
3
+ require "dry/core"
4
+ require "dry/configurable"
5
+ require "dry/struct"
6
+
7
+ require "rom/factory/factories"
5
8
 
6
9
  module ROM
7
10
  # Main ROM::Factory API
8
11
  #
9
12
  # @api public
10
13
  module Factory
11
- DEFAULT_NAME = 'Factories'.freeze
14
+ DEFAULT_NAME = "Factories"
12
15
 
13
16
  # Configure a new factory
14
17
  #
@@ -23,8 +26,8 @@ module ROM
23
26
  #
24
27
  # @api public
25
28
  def self.configure(name = DEFAULT_NAME, &block)
26
- klass = Dry::Core::ClassBuilder.new(name: name, parent: Factories).call do |klass|
27
- klass.configure(&block)
29
+ klass = Dry::Core::ClassBuilder.new(name: name, parent: Factories).call do |c|
30
+ c.configure(&block)
28
31
  end
29
32
 
30
33
  klass.new(klass.config.rom)
data/lib/rom-factory.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rom/factory'
3
+ require "rom/factory"
data/project.yml ADDED
@@ -0,0 +1,3 @@
1
+ name: rom-factory
2
+ custom_ci: true
3
+ codacy_id: 5fd26fae687549218458879b1a607e18
data/rom-factory.gemspec CHANGED
@@ -11,28 +11,25 @@ Gem::Specification.new do |spec|
11
11
  spec.authors = ["Janis Miezitis", "Piotr Solnica"]
12
12
  spec.email = ["janjiss@gmail.com", "piotr.solnica@gmail.com"]
13
13
 
14
- spec.summary = %q{ROM based builder library to make your specs awesome. DSL partially inspired by FactoryGirl.}
14
+ spec.summary = %q{ROM based builder library to make your specs awesome. DSL partially inspired by FactoryBot.}
15
15
  spec.description = %q{}
16
16
  spec.homepage = "https://github.com/rom-rb/rom-factory"
17
17
  spec.license = "MIT"
18
18
 
19
19
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
20
20
  # to allow pushing to a single host or delete this section to allow pushing to any host.
21
- if spec.respond_to?(:metadata)
22
- spec.metadata['allowed_push_host'] = "https://rubygems.org"
23
- else
24
- raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
25
- end
21
+ spec.metadata['allowed_push_host'] = "https://rubygems.org"
26
22
 
27
23
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
28
24
  spec.bindir = "exe"
29
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
26
  spec.require_paths = ["lib"]
31
27
 
32
- spec.add_dependency "dry-configurable", "~> 0.7"
33
- spec.add_dependency "dry-core", "~> 0.4"
34
- spec.add_dependency 'faker', '>= 1.7', '< 3.0'
35
- spec.add_dependency 'rom-core', '~> 5.0'
28
+ spec.required_ruby_version = ">= 2.7.0"
36
29
 
37
- spec.add_development_dependency 'appraisal'
30
+ spec.add_runtime_dependency "dry-configurable", "~> 1.0"
31
+ spec.add_runtime_dependency "dry-core", "~> 1.0"
32
+ spec.add_runtime_dependency "dry-struct", "~> 1.6"
33
+ spec.add_runtime_dependency "faker", ">= 2.0", "< 3.0"
34
+ spec.add_runtime_dependency "rom-core", "~> 5.3"
38
35
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rom-factory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janis Miezitis
8
8
  - Piotr Solnica
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-12-28 00:00:00.000000000 Z
12
+ date: 2022-11-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dry-configurable
@@ -17,35 +17,49 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '0.7'
20
+ version: '1.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '0.7'
27
+ version: '1.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: dry-core
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '0.4'
34
+ version: '1.0'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '0.4'
41
+ version: '1.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: dry-struct
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.6'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.6'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: faker
44
58
  requirement: !ruby/object:Gem::Requirement
45
59
  requirements:
46
60
  - - ">="
47
61
  - !ruby/object:Gem::Version
48
- version: '1.7'
62
+ version: '2.0'
49
63
  - - "<"
50
64
  - !ruby/object:Gem::Version
51
65
  version: '3.0'
@@ -55,7 +69,7 @@ dependencies:
55
69
  requirements:
56
70
  - - ">="
57
71
  - !ruby/object:Gem::Version
58
- version: '1.7'
72
+ version: '2.0'
59
73
  - - "<"
60
74
  - !ruby/object:Gem::Version
61
75
  version: '3.0'
@@ -65,28 +79,14 @@ dependencies:
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '5.0'
82
+ version: '5.3'
69
83
  type: :runtime
70
84
  prerelease: false
71
85
  version_requirements: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '5.0'
76
- - !ruby/object:Gem::Dependency
77
- name: appraisal
78
- requirement: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- type: :development
84
- prerelease: false
85
- version_requirements: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '5.3'
90
90
  description: ''
91
91
  email:
92
92
  - janjiss@gmail.com
@@ -95,34 +95,33 @@ executables: []
95
95
  extensions: []
96
96
  extra_rdoc_files: []
97
97
  files:
98
- - ".codeclimate.yml"
99
- - ".github/ISSUE_TEMPLATE/----please-don-t-ask-for-support-via-issues.md"
100
- - ".github/ISSUE_TEMPLATE/----please-don-t-report-feature-requests-via-issues.md"
101
- - ".github/ISSUE_TEMPLATE/---a-detailed-bug-report.md"
102
- - ".github/ISSUE_TEMPLATE/---bug-report.md"
103
- - ".github/ISSUE_TEMPLATE/---feature-request.md"
104
- - ".github/workflows/custom_ci.yml"
98
+ - ".action_hero.yml"
99
+ - ".devtools/templates/changelog.erb"
100
+ - ".devtools/templates/release.erb"
101
+ - ".github/FUNDING.yml"
102
+ - ".github/ISSUE_TEMPLATE/bug-report.md"
103
+ - ".github/ISSUE_TEMPLATE/config.yml"
104
+ - ".github/SUPPORT.md"
105
+ - ".github/workflows/ci.yml"
105
106
  - ".github/workflows/docsite.yml"
107
+ - ".github/workflows/rubocop.yml"
106
108
  - ".github/workflows/sync_configs.yml"
107
109
  - ".gitignore"
108
110
  - ".rspec"
109
111
  - ".rubocop.yml"
110
112
  - ".yardopts"
111
- - Appraisals
112
113
  - CHANGELOG.md
114
+ - CODEOWNERS
113
115
  - CODE_OF_CONDUCT.md
114
116
  - CONTRIBUTING.md
115
117
  - Gemfile
118
+ - Gemfile.devtools
116
119
  - LICENSE
117
- - LICENSE.txt
118
120
  - README.md
119
121
  - Rakefile
120
122
  - benchmarks/basic.rb
123
+ - changelog.yml
121
124
  - docsite/source/index.html.md
122
- - gemfiles/faker_1.gemfile
123
- - gemfiles/faker_1.gemfile.lock
124
- - gemfiles/faker_2.gemfile
125
- - gemfiles/faker_2.gemfile.lock
126
125
  - lib/rom-factory.rb
127
126
  - lib/rom/factory.rb
128
127
  - lib/rom/factory/attribute_registry.rb
@@ -140,13 +139,14 @@ files:
140
139
  - lib/rom/factory/sequences.rb
141
140
  - lib/rom/factory/tuple_evaluator.rb
142
141
  - lib/rom/factory/version.rb
142
+ - project.yml
143
143
  - rom-factory.gemspec
144
144
  homepage: https://github.com/rom-rb/rom-factory
145
145
  licenses:
146
146
  - MIT
147
147
  metadata:
148
148
  allowed_push_host: https://rubygems.org
149
- post_install_message:
149
+ post_install_message:
150
150
  rdoc_options: []
151
151
  require_paths:
152
152
  - lib
@@ -154,16 +154,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
154
154
  requirements:
155
155
  - - ">="
156
156
  - !ruby/object:Gem::Version
157
- version: '0'
157
+ version: 2.7.0
158
158
  required_rubygems_version: !ruby/object:Gem::Requirement
159
159
  requirements:
160
160
  - - ">="
161
161
  - !ruby/object:Gem::Version
162
162
  version: '0'
163
163
  requirements: []
164
- rubygems_version: 3.1.2
165
- signing_key:
164
+ rubygems_version: 3.3.7
165
+ signing_key:
166
166
  specification_version: 4
167
167
  summary: ROM based builder library to make your specs awesome. DSL partially inspired
168
- by FactoryGirl.
168
+ by FactoryBot.
169
169
  test_files: []
data/.codeclimate.yml DELETED
@@ -1,12 +0,0 @@
1
- # this file is managed by rom-rb/devtools project
2
-
3
- version: "2"
4
-
5
- exclude_patterns:
6
- - "benchmarks/"
7
- - "examples/"
8
- - "spec/"
9
-
10
- plugins:
11
- rubocop:
12
- enabled: true
@@ -1,10 +0,0 @@
1
- ---
2
- name: "⚠️ Please don't ask for support via issues"
3
- about: See CONTRIBUTING.md for more information
4
- title: ''
5
- labels: ''
6
- assignees: ''
7
-
8
- ---
9
-
10
-
@@ -1,10 +0,0 @@
1
- ---
2
- name: "⚠️ Please don't report feature requests via issues"
3
- about: See CONTRIBUTING.md for more information
4
- title: ''
5
- labels: ''
6
- assignees: ''
7
-
8
- ---
9
-
10
-
@@ -1,30 +0,0 @@
1
- ---
2
- name: "\U0001F41B A detailed bug report"
3
- about: Report a bug
4
- title: ''
5
- labels: bug
6
- assignees: ''
7
-
8
- ---
9
-
10
- **Before you submit this: WE ONLY ACCEPT BUG REPORTS**
11
-
12
- For more information see [our contribution guidelines](https://github.com/rom-rb/rom/blob/master/CONTRIBUTING.md)
13
-
14
- **Describe the bug**
15
-
16
- A clear and concise description of what the bug is.
17
-
18
- **To Reproduce**
19
-
20
- Provide detailed steps to reproduce, an executable script would be best.
21
-
22
- **Expected behavior**
23
-
24
- A clear and concise description of what you expected to happen.
25
-
26
- **Your environment**
27
-
28
- - Affects my production application: **YES/NO**
29
- - Ruby version: ...
30
- - OS: ...
@@ -1,30 +0,0 @@
1
- ---
2
- name: "\U0001F41B Bug report"
3
- about: See CONTRIBUTING.md for more information
4
- title: ''
5
- labels: bug
6
- assignees: ''
7
-
8
- ---
9
-
10
- **Before you submit this: WE ONLY ACCEPT BUG REPORTS AND FEATURE REQUESTS**
11
-
12
- For more information see [our contribution guidelines](https://github.com/rom-rb/rom/blob/master/CONTRIBUTING.md)
13
-
14
- **Describe the bug**
15
-
16
- A clear and concise description of what the bug is.
17
-
18
- **To Reproduce**
19
-
20
- Provide detailed steps to reproduce, an executable script would be best.
21
-
22
- **Expected behavior**
23
-
24
- A clear and concise description of what you expected to happen.
25
-
26
- **Your environment**
27
-
28
- - Affects my production application: **YES/NO**
29
- - Ruby version: ...
30
- - OS: ...