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.
- checksums.yaml +4 -4
- data/.action_hero.yml +21 -0
- data/.devtools/templates/changelog.erb +43 -0
- data/.devtools/templates/release.erb +36 -0
- data/.github/FUNDING.yml +1 -0
- data/.github/ISSUE_TEMPLATE/bug-report.md +26 -0
- data/.github/ISSUE_TEMPLATE/config.yml +5 -0
- data/.github/SUPPORT.md +3 -0
- data/.github/workflows/ci.yml +87 -0
- data/.github/workflows/docsite.yml +38 -9
- data/.github/workflows/rubocop.yml +46 -0
- data/.github/workflows/sync_configs.yml +41 -18
- data/.rspec +1 -1
- data/.rubocop.yml +198 -40
- data/CHANGELOG.md +88 -33
- data/CODEOWNERS +1 -0
- data/CODE_OF_CONDUCT.md +1 -1
- data/CONTRIBUTING.md +4 -4
- data/Gemfile +22 -22
- data/Gemfile.devtools +20 -0
- data/LICENSE +1 -1
- data/README.md +13 -48
- data/Rakefile +1 -1
- data/benchmarks/basic.rb +10 -10
- data/changelog.yml +99 -0
- data/docsite/source/index.html.md +162 -1
- data/lib/rom/factory/attribute_registry.rb +2 -2
- data/lib/rom/factory/attributes/association.rb +52 -12
- data/lib/rom/factory/attributes/callable.rb +1 -1
- data/lib/rom/factory/attributes/value.rb +1 -1
- data/lib/rom/factory/attributes.rb +4 -6
- data/lib/rom/factory/builder/persistable.rb +3 -5
- data/lib/rom/factory/builder.rb +8 -18
- data/lib/rom/factory/constants.rb +1 -1
- data/lib/rom/factory/dsl.rb +36 -23
- data/lib/rom/factory/factories.rb +13 -15
- data/lib/rom/factory/registry.rb +2 -2
- data/lib/rom/factory/sequences.rb +1 -1
- data/lib/rom/factory/tuple_evaluator.rb +18 -22
- data/lib/rom/factory/version.rb +1 -1
- data/lib/rom/factory.rb +8 -5
- data/lib/rom-factory.rb +1 -1
- data/project.yml +3 -0
- data/rom-factory.gemspec +8 -11
- metadata +43 -43
- data/.codeclimate.yml +0 -12
- data/.github/ISSUE_TEMPLATE/----please-don-t-ask-for-support-via-issues.md +0 -10
- data/.github/ISSUE_TEMPLATE/----please-don-t-report-feature-requests-via-issues.md +0 -10
- data/.github/ISSUE_TEMPLATE/---a-detailed-bug-report.md +0 -30
- data/.github/ISSUE_TEMPLATE/---bug-report.md +0 -30
- data/.github/ISSUE_TEMPLATE/---feature-request.md +0 -18
- data/.github/workflows/custom_ci.yml +0 -118
- data/Appraisals +0 -9
- data/LICENSE.txt +0 -21
- data/gemfiles/faker_1.gemfile +0 -34
- data/gemfiles/faker_1.gemfile.lock +0 -178
- data/gemfiles/faker_2.gemfile +0 -34
- data/gemfiles/faker_2.gemfile.lock +0 -178
data/lib/rom/factory/dsl.rb
CHANGED
@@ -1,26 +1,30 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require 'dry/core/inflector'
|
3
|
+
require "faker"
|
5
4
|
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
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(
|
15
|
-
api =
|
15
|
+
def fake(*args, **options)
|
16
|
+
api = fetch_or_store(:faker, *args) do
|
17
|
+
*ns, method_name = args
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
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,
|
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(
|
90
|
+
# @overload fake(genre, type)
|
87
91
|
# @example
|
88
92
|
# f.email { fake(:internet, :email) }
|
89
93
|
#
|
90
|
-
# @param [Symbol]
|
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(
|
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]
|
101
|
+
# @param [Symbol] genre The faker API identifier ie. :internet, :product etc.
|
98
102
|
# @param [Symbol] type The value type to generate
|
99
|
-
# @param [
|
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/
|
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,
|
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
|
4
|
-
require
|
5
|
-
|
6
|
-
require
|
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:
|
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 [
|
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, *
|
173
|
-
registry[name].struct_namespace(struct_namespace).persistable.create(*
|
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
|
208
|
-
ns ? {
|
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 =
|
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,
|
data/lib/rom/factory/registry.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
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
|
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
|
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
|
35
|
-
|
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(*
|
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
|
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
|
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
|
data/lib/rom/factory/version.rb
CHANGED
data/lib/rom/factory.rb
CHANGED
@@ -1,14 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
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 =
|
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 |
|
27
|
-
|
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
data/project.yml
ADDED
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
|
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
|
-
|
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.
|
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.
|
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.
|
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:
|
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
|
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
|
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
|
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
|
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: '
|
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: '
|
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.
|
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.
|
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
|
-
- ".
|
99
|
-
- ".
|
100
|
-
- ".
|
101
|
-
- ".github/
|
102
|
-
- ".github/ISSUE_TEMPLATE
|
103
|
-
- ".github/ISSUE_TEMPLATE
|
104
|
-
- ".github/
|
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:
|
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.
|
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
|
168
|
+
by FactoryBot.
|
169
169
|
test_files: []
|
data/.codeclimate.yml
DELETED
@@ -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: ...
|