rom-factory 0.5.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b0e9af2bccde24058817960957099aa19a54cda9
4
- data.tar.gz: f99643318992b7df49913638a47043086a992519
2
+ SHA256:
3
+ metadata.gz: f5b3b45c040487ccf89d27457241ba3b117e51ed1a346e089d0da8f6bb223fb1
4
+ data.tar.gz: c56f6cac0fd002de3cb4b34e272704086cf4fd196e66e3931c82c9a17fbccfe1
5
5
  SHA512:
6
- metadata.gz: 6f8a9de64072548a7e3597000b27898d4a6041f6e999be10837ef917a56ae0bade2437bc8cd85b260e9bee006e8f7042ceb6792e65e22e602dd356bea54d6c59
7
- data.tar.gz: a809541e1f0bb8a36b8c6b7ee7c3f41f0e36c9964bb70aebd072cfc1c78658fb8b4d31e46b912bcfbae5e5a629d57e3d9c8ba4139c6c6fc636efc0198033161e
6
+ metadata.gz: decd39e777394bdc13022f9ae17c2a340bf325d66950c7487b6ffc60505e4b1097d437fc9e0a8cda287ac2e47aef71145ea5191d26b8d8d6fa6ecb9581e0fdd9
7
+ data.tar.gz: 2c2d34cfe48bcc3909b3599ea8fa241ae974c4993e021bcfdededbdba5a5c0f62e4a91a393033173ba649fcb74e3ded0458562d426c2b3b948275b1cc5639da6
@@ -0,0 +1,6 @@
1
+ engines:
2
+ rubocop:
3
+ enabled: true
4
+ ratings:
5
+ paths:
6
+ - lib/**
@@ -10,8 +10,9 @@ script: "bundle exec rake spec"
10
10
  after_success:
11
11
  - '[ -d coverage ] && bundle exec codeclimate-test-reporter'
12
12
  rvm:
13
- - 2.3.4
14
- - 2.4.1
13
+ - 2.5.0
14
+ - 2.4.2
15
+ - 2.3.6
15
16
  - jruby-9.1.13.0
16
17
  env:
17
18
  global:
@@ -1,4 +1,20 @@
1
- ## 0.5.0 to-be-released
1
+ ## 0.6.0 2018-01-31
2
+
3
+ ### Added
4
+
5
+ * Support for factories with custom struct namespaces (solnic)
6
+
7
+ ### Changed
8
+
9
+ * Accessing a factory which is not defined will result in `FactoryNotDefinedError` exception (GustavoCaso + solnic)
10
+
11
+ ### Fixed
12
+
13
+ * Using dependent attributes with sequences works correctly, ie `f.sequence(:login) { |i, name| "name-#{i}"}` (solnic)
14
+
15
+ [Compare v0.5.0...v0.6.0](https://github.com/rom-rb/rom-factory/compare/v0.5.0...v0.6.0)
16
+
17
+ ## 0.5.0 2017-10-24
2
18
 
3
19
  ### Added
4
20
 
data/Gemfile CHANGED
@@ -3,29 +3,21 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  gem 'rake', '~> 12.0'
6
- gem 'simplecov', require: false, platform: :mri
7
- gem 'codeclimate-test-reporter', require: false, platform: :mri
8
-
9
6
  gem 'rspec', '~> 3.0'
10
7
 
11
8
  group :test do
12
9
  gem 'rom-sql', '~> 2.1'
13
10
  gem 'inflecto'
14
11
  gem 'pry-byebug', platforms: :mri
15
- gem 'pry', platforms: %i(jruby rbx)
16
- gem 'codeclimate-test-reporter', require: false
17
- gem 'simplecov', require: false
18
-
19
- if RUBY_ENGINE == 'rbx'
20
- gem 'pg', '~> 0.18.0', platforms: :rbx
21
- else
22
- gem 'pg', platforms: :mri
23
- end
12
+ gem 'pry', platforms: :jruby
13
+ gem 'codeclimate-test-reporter'
14
+ gem 'simplecov'
24
15
 
25
- gem 'mysql2', platforms: [:mri, :rbx]
16
+ gem 'pg', '~> 0.21', platforms: :mri
17
+ gem 'mysql2', platforms: :mri
26
18
  gem 'jdbc-postgres', platforms: :jruby
27
19
  gem 'jdbc-mysql', platforms: :jruby
28
- gem 'sqlite3', '~> 1.3', platforms: [:mri, :rbx]
20
+ gem 'sqlite3', '~> 1.3', platforms: :mri
29
21
  gem 'jdbc-sqlite3', platforms: :jruby
30
22
  end
31
23
 
@@ -37,7 +29,6 @@ end
37
29
  group :benchmarks do
38
30
  gem 'activerecord'
39
31
  gem 'benchmark-ips'
40
- gem 'factory_girl'
32
+ gem 'factory_bot'
41
33
  gem 'fabrication'
42
- gem 'pg', platforms: :mri
43
34
  end
@@ -1,7 +1,7 @@
1
1
  require 'rom-factory'
2
2
  require 'rom-core'
3
3
  require 'active_record'
4
- require 'factory_girl'
4
+ require 'factory_bot'
5
5
  require 'fabrication'
6
6
  require 'benchmark/ips'
7
7
 
@@ -33,7 +33,7 @@ end
33
33
 
34
34
  ActiveRecord::Base.establish_connection(DATABASE_URL)
35
35
 
36
- FactoryGirl.define do
36
+ FactoryBot.define do
37
37
  factory(:user) do
38
38
  first_name "John"
39
39
  last_name "Doe"
@@ -54,9 +54,9 @@ Benchmark.ips do |x|
54
54
  end
55
55
  end
56
56
 
57
- x.report('factory_girl') do
57
+ x.report('factory_bot') do
58
58
  1000.times do
59
- FactoryGirl.create(:user)
59
+ FactoryBot.create(:user)
60
60
  end
61
61
  end
62
62
 
@@ -21,9 +21,11 @@ module ROM
21
21
  #
22
22
  # @api public
23
23
  def self.configure(name = DEFAULT_NAME, &block)
24
- Dry::Core::ClassBuilder.new(name: name, parent: Factories).call do |klass|
24
+ klass = Dry::Core::ClassBuilder.new(name: name, parent: Factories).call do |klass|
25
25
  klass.configure(&block)
26
26
  end
27
+
28
+ klass.new(klass.config.rom)
27
29
  end
28
30
  end
29
31
  end
@@ -5,7 +5,7 @@ module ROM::Factory
5
5
  attr_reader :name, :dsl, :block
6
6
 
7
7
  # @api private
8
- def initialize(name, dsl = nil, &block)
8
+ def initialize(name, dsl, block)
9
9
  @name = name
10
10
  @dsl = dsl
11
11
  @block = block
@@ -9,9 +9,8 @@ module ROM::Factory
9
9
  @block = block
10
10
  end
11
11
 
12
- def call(attrs = EMPTY_HASH)
13
- return if attrs.key?(name)
14
- block.call(increment)
12
+ def call(*args)
13
+ block.call(increment, *args)
15
14
  end
16
15
 
17
16
  def to_proc
@@ -25,6 +24,10 @@ module ROM::Factory
25
24
  def dependency_names
26
25
  EMPTY_ARRAY
27
26
  end
27
+
28
+ def parameters
29
+ block.parameters
30
+ end
28
31
  end
29
32
  end
30
33
  end
@@ -1,24 +1,24 @@
1
1
  require 'dry/core/constants'
2
2
 
3
+ require 'rom/struct'
4
+ require 'rom/initializer'
3
5
  require 'rom/factory/tuple_evaluator'
4
6
  require 'rom/factory/builder/persistable'
5
7
 
6
8
  module ROM::Factory
7
9
  # @api private
8
10
  class Builder
9
- include Dry::Core::Constants
11
+ extend ROM::Initializer
10
12
 
11
- # @api private
12
- attr_reader :attributes
13
+ include Dry::Core::Constants
13
14
 
14
- # @api private
15
- attr_reader :tuple_evaluator
15
+ # @!attribute [r] attributes
16
+ # @return [ROM::Factory::Attributes]
17
+ param :attributes
16
18
 
17
- # @api private
18
- def initialize(attributes, relation)
19
- @attributes = attributes
20
- @tuple_evaluator = TupleEvaluator.new(attributes, relation)
21
- end
19
+ # @!attribute [r] relation
20
+ # @return [ROM::Relation]
21
+ option :relation, reader: false
22
22
 
23
23
  # @api private
24
24
  def tuple(attrs = EMPTY_HASH)
@@ -32,8 +32,18 @@ module ROM::Factory
32
32
  alias_method :create, :struct
33
33
 
34
34
  # @api private
35
- def persistable
36
- Persistable.new(self)
35
+ def struct_namespace(namespace)
36
+ with(relation: relation.struct_namespace(namespace))
37
+ end
38
+
39
+ # @api private
40
+ def persistable(struct_namespace = ROM::Struct)
41
+ Persistable.new(self, relation.struct_namespace(struct_namespace))
42
+ end
43
+
44
+ # @api private
45
+ def tuple_evaluator
46
+ @__tuple_evaluator__ ||= TupleEvaluator.new(attributes, options[:relation])
37
47
  end
38
48
 
39
49
  # @api private
@@ -0,0 +1,9 @@
1
+ module ROM
2
+ module Factory
3
+ class FactoryNotDefinedError < StandardError
4
+ def initialize(name)
5
+ super("Factory +#{name}+ not defined")
6
+ end
7
+ end
8
+ end
9
+ end
@@ -39,7 +39,7 @@ module ROM
39
39
 
40
40
  # @api private
41
41
  def call
42
- ::ROM::Factory::Builder.new(_attributes, _relation)
42
+ ::ROM::Factory::Builder.new(_attributes, relation: _relation)
43
43
  end
44
44
 
45
45
  # Delegate to a builder and persist a struct
@@ -138,13 +138,13 @@ module ROM
138
138
 
139
139
  # @api private
140
140
  def define_sequence(name, block)
141
- _attributes << attributes::Callable.new(name, self, &attributes::Sequence.new(name, &block))
141
+ _attributes << attributes::Callable.new(name, self, attributes::Sequence.new(name, &block))
142
142
  end
143
143
 
144
144
  # @api private
145
145
  def define_attr(name, *args, &block)
146
146
  if block
147
- _attributes << attributes::Callable.new(name, self, &block)
147
+ _attributes << attributes::Callable.new(name, self, block)
148
148
  else
149
149
  _attributes << attributes::Value.new(name, *args)
150
150
  end
@@ -1,7 +1,10 @@
1
1
  require 'dry/configurable'
2
2
  require 'dry/core/inflector'
3
3
 
4
+ require 'rom/initializer'
5
+ require 'rom/struct'
4
6
  require 'rom/factory/dsl'
7
+ require 'rom/factory/registry'
5
8
 
6
9
  module ROM::Factory
7
10
  # In-memory builder API
@@ -12,9 +15,14 @@ module ROM::Factory
12
15
  # @return [Hash<Symbol=>Builder>]
13
16
  attr_reader :registry
14
17
 
18
+ # @!attribute [r] struct_namespace
19
+ # @return [Module]
20
+ attr_reader :struct_namespace
21
+
15
22
  # @api private
16
- def initialize(registry)
23
+ def initialize(registry, struct_namespace)
17
24
  @registry = registry
25
+ @struct_namespace = struct_namespace
18
26
  end
19
27
 
20
28
  # Build an in-memory struct
@@ -32,7 +40,7 @@ module ROM::Factory
32
40
  #
33
41
  # @api public
34
42
  def [](name, attrs = {})
35
- registry[name].create(attrs)
43
+ registry[name].struct_namespace(struct_namespace).create(attrs)
36
44
  end
37
45
  end
38
46
 
@@ -41,144 +49,169 @@ module ROM::Factory
41
49
  # @api public
42
50
  class Factories
43
51
  extend Dry::Configurable
52
+ extend ROM::Initializer
44
53
 
45
54
  setting :rom
46
55
 
47
- class << self
48
- # @!attribute [r] registry
49
- # @return [Hash<Symbol=>Builder>]
50
- attr_reader :registry
51
-
52
- # @!attribute [r] structs
53
- # @return [Structs] In-memory struct builder instance
54
- attr_reader :structs
55
-
56
- # @api private
57
- def inherited(klass)
58
- registry = {}
59
- klass.instance_variable_set(:'@registry', registry)
60
- klass.instance_variable_set(:'@structs', Structs.new(registry))
61
- super
56
+ # @!attribute [r] rom
57
+ # @return [ROM::Container] configured rom container
58
+ param :rom
59
+
60
+ # @!attribute [r] struct_namespace
61
+ # @return [Structs] in-memory struct builder instance
62
+ option :struct_namespace, optional: true, default: proc { ROM::Struct }
63
+
64
+ # @!attribute [r] registry
65
+ # @return [Hash<Symbol=>Builder>] a map with defined db-backed builders
66
+ option :registry, default: proc { Registry.new }
67
+
68
+ # Define a new builder
69
+ #
70
+ # @example a simple builder
71
+ # MyFactory.define(:user) do |f|
72
+ # f.name "Jane"
73
+ # f.email "jane@doe.org"
74
+ # end
75
+ #
76
+ # @example a builder using auto-generated fake values
77
+ # MyFactory.define(:user) do |f|
78
+ # f.name { fake(:name) }
79
+ # f.email { fake(:internet, :email) }
80
+ # end
81
+ #
82
+ # @example a builder using sequenced values
83
+ # MyFactory.define(:user) do |f|
84
+ # f.sequence(:name) { |n| "user-#{n}" }
85
+ # end
86
+ #
87
+ # @example a builder using values from other attribute(s)
88
+ # MyFactory.define(:user) do |f|
89
+ # f.name "Jane"
90
+ # f.email { |name| "#{name.downcase}@rom-rb.org" }
91
+ # end
92
+ #
93
+ # @example a builder with "belongs-to" association
94
+ # MyFactory.define(:group) do |f|
95
+ # f.name "Admins"
96
+ # end
97
+ #
98
+ # MyFactory.define(:user) do |f|
99
+ # f.name "Jane"
100
+ # f.association(:group)
101
+ # end
102
+ #
103
+ # @example a builder with "has-many" association
104
+ # MyFactory.define(:group) do |f|
105
+ # f.name "Admins"
106
+ # f.association(:users, count: 2)
107
+ # end
108
+ #
109
+ # MyFactory.define(:user) do |f|
110
+ # f.sequence(:name) { |n| "user-#{n}" }
111
+ # end
112
+ #
113
+ # @example a builder which extends another builder
114
+ # MyFactory.define(:user) do |f|
115
+ # f.name "Jane"
116
+ # f.admin false
117
+ # end
118
+ #
119
+ # MyFactory.define(admin: :user) do |f|
120
+ # f.admin true
121
+ # end
122
+ #
123
+ # @param [Symbol, Hash<Symbol=>Symbol>] spec Builder identifier, can point to a parent builder too
124
+ # @param [Hash] opts Additional options
125
+ # @option opts [Symbol] relation An optional relation name (defaults to pluralized builder name)
126
+ #
127
+ # @return [ROM::Factory::Builder]
128
+ #
129
+ # @api public
130
+ def define(spec, **opts, &block)
131
+ name, parent = spec.is_a?(Hash) ? spec.flatten(1) : spec
132
+
133
+ if registry.key?(name)
134
+ raise ArgumentError, "#{name.inspect} factory has been already defined"
62
135
  end
63
136
 
64
- # Define a new builder
65
- #
66
- # @example a simple builder
67
- # MyFactory.define(:user) do |f|
68
- # f.name "Jane"
69
- # f.email "jane@doe.org"
70
- # end
71
- #
72
- # @example a builder using auto-generated fake values
73
- # MyFactory.define(:user) do |f|
74
- # f.name { fake(:name) }
75
- # f.email { fake(:internet, :email) }
76
- # end
77
- #
78
- # @example a builder using sequenced values
79
- # MyFactory.define(:user) do |f|
80
- # f.sequence(:name) { |n| "user-#{n}" }
81
- # end
82
- #
83
- # @example a builder using values from other attribute(s)
84
- # MyFactory.define(:user) do |f|
85
- # f.name "Jane"
86
- # f.email { |name| "#{name.downcase}@rom-rb.org" }
87
- # end
88
- #
89
- # @example a builder with "belongs-to" association
90
- # MyFactory.define(:group) do |f|
91
- # f.name "Admins"
92
- # end
93
- #
94
- # MyFactory.define(:user) do |f|
95
- # f.name "Jane"
96
- # f.association(:group)
97
- # end
98
- #
99
- # @example a builder with "has-many" association
100
- # MyFactory.define(:group) do |f|
101
- # f.name "Admins"
102
- # f.association(:users, count: 2)
103
- # end
104
- #
105
- # MyFactory.define(:user) do |f|
106
- # f.sequence(:name) { |n| "user-#{n}" }
107
- # end
108
- #
109
- # @example a builder which extends another builder
110
- # MyFactory.define(:user) do |f|
111
- # f.name "Jane"
112
- # f.admin false
113
- # end
114
- #
115
- # MyFactory.define(admin: :user) do |f|
116
- # f.admin true
117
- # end
118
- #
119
- # @param [Symbol, Hash<Symbol=>Symbol>] spec Builder identifier, can point to a parent builder too
120
- # @param [Hash] opts Additional options
121
- # @option opts [Symbol] relation An optional relation name (defaults to pluralized builder name)
122
- #
123
- # @return [ROM::Factory::Builder]
124
- #
125
- # @api public
126
- def define(spec, **opts, &block)
127
- name, parent = spec.is_a?(Hash) ? spec.flatten(1) : spec
128
-
129
- if registry.key?(name)
130
- raise ArgumentError, "#{name.inspect} factory has been already defined"
137
+ builder =
138
+ if parent
139
+ extend_builder(name, registry[parent], &block)
140
+ else
141
+ relation_name = opts.fetch(:relation) { infer_relation(name) }
142
+ relation = rom.relations[relation_name]
143
+ DSL.new(name, relation: relation.struct_namespace(struct_namespace), factories: self, &block).call
131
144
  end
132
145
 
133
- builder =
134
- if parent
135
- extend_builder(name, registry[parent], &block)
136
- else
137
- relation_name = opts.fetch(:relation) { infer_relation(name) }
138
- relation = config.rom.relations[relation_name]
139
- DSL.new(name, relation: relation, factories: self, &block).call
140
- end
146
+ registry[name] = builder
147
+ end
141
148
 
142
- registry[name] = builder
143
- end
149
+ # Create and persist a new struct
150
+ #
151
+ # @example create a struct with default attributes
152
+ # MyFactory[:user]
153
+ #
154
+ # @example create a struct with some attributes overridden
155
+ # MyFactory[:user, name: "Jane"]
156
+ #
157
+ # @param [Symbol] name The name of the registered factory
158
+ # @param [Hash] attrs An optional hash with attributes
159
+ #
160
+ # @return [ROM::Struct]
161
+ #
162
+ # @api public
163
+ def [](name, attrs = {})
164
+ registry[name].persistable(struct_namespace).create(attrs)
165
+ end
144
166
 
145
- # Create and persist a new struct
146
- #
147
- # @example create a struct with default attributes
148
- # MyFactory[:user]
149
- #
150
- # @example create a struct with some attributes overridden
151
- # MyFactory[:user, name: "Jane"]
152
- #
153
- # @param [Symbol] name The name of the registered factory
154
- # @param [Hash] attrs An optional hash with attributes
155
- #
156
- # @return [ROM::Struct]
157
- #
158
- # @api public
159
- def [](name, attrs = {})
160
- registry[name].persistable.create(attrs)
161
- end
167
+ # Return in-memory struct builder
168
+ #
169
+ # @return [Structs]
170
+ #
171
+ # @api public
172
+ def structs
173
+ @__structs__ ||= Structs.new(registry, struct_namespace)
174
+ end
162
175
 
163
- # @api private
164
- def for_relation(relation)
165
- registry.fetch(infer_factory_name(relation.name.to_sym))
176
+ # Get factories with a custom struct namespace
177
+ #
178
+ # @example
179
+ # EntityFactory = MyFactory.struct_namespace(MyApp::Entities)
180
+ #
181
+ # EntityFactory[:user]
182
+ # # => #<MyApp::Entities::User id=2 ...>
183
+ #
184
+ # @param [Module] namespace
185
+ #
186
+ # @return [Factories]
187
+ #
188
+ # @api public
189
+ def struct_namespace(namespace = Undefined)
190
+ if namespace.equal?(Undefined)
191
+ options[:struct_namespace]
192
+ else
193
+ with(struct_namespace: namespace)
166
194
  end
195
+ end
167
196
 
168
- # @api private
169
- def infer_factory_name(name)
170
- ::Dry::Core::Inflector.singularize(name).to_sym
171
- end
197
+ # @api private
198
+ def for_relation(relation)
199
+ registry[infer_factory_name(relation.name.to_sym)]
200
+ end
172
201
 
173
- # @api private
174
- def infer_relation(name)
175
- ::Dry::Core::Inflector.pluralize(name).to_sym
176
- end
202
+ # @api private
203
+ def infer_factory_name(name)
204
+ ::Dry::Core::Inflector.singularize(name).to_sym
205
+ end
177
206
 
178
- # @api private
179
- def extend_builder(name, parent, &block)
180
- DSL.new(name, attributes: parent.attributes, relation: parent.relation, factories: self, &block).call
181
- end
207
+ # @api private
208
+ def infer_relation(name)
209
+ ::Dry::Core::Inflector.pluralize(name).to_sym
210
+ end
211
+
212
+ # @api private
213
+ def extend_builder(name, parent, &block)
214
+ DSL.new(name, attributes: parent.attributes, relation: parent.relation, factories: self, &block).call
182
215
  end
183
216
  end
184
217
  end
@@ -0,0 +1,34 @@
1
+ require 'rom/factory/constants'
2
+
3
+ module ROM
4
+ module Factory
5
+ # @api private
6
+ class Registry
7
+ # @!attribute [r] elements
8
+ # @return [Hash] a hash with factory builders
9
+ attr_reader :elements
10
+
11
+ # @api private
12
+ def initialize
13
+ @elements = {}
14
+ end
15
+
16
+ # @api private
17
+ def key?(name)
18
+ elements.key?(name)
19
+ end
20
+
21
+ # @api private
22
+ def []=(name, builder)
23
+ elements[name] = builder
24
+ end
25
+
26
+ # @api private
27
+ def [](name)
28
+ elements.fetch(name) do
29
+ raise FactoryNotDefinedError.new(name)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,35 @@
1
+ require 'singleton'
2
+
3
+ module ROM
4
+ module Factory
5
+ # @api private
6
+ class Sequences
7
+ include Singleton
8
+
9
+ # @api private
10
+ attr_reader :registry
11
+
12
+ # @api private
13
+ def self.[](relation)
14
+ key = :"#{relation.gateway}-#{relation.name.dataset}"
15
+ -> { instance.next(key) }
16
+ end
17
+
18
+ # @api private
19
+ def initialize
20
+ reset
21
+ end
22
+
23
+ # @api private
24
+ def next(key)
25
+ registry[key] += 1
26
+ end
27
+
28
+ # @api private
29
+ def reset
30
+ @registry = Concurrent::Map.new { |h, k| h[k] = 0 }
31
+ self
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,3 +1,5 @@
1
+ require 'rom/factory/sequences'
2
+
1
3
  module ROM
2
4
  module Factory
3
5
  # @api private
@@ -19,7 +21,7 @@ module ROM
19
21
  @attributes = attributes
20
22
  @relation = relation.with(auto_struct: true)
21
23
  @model = @relation.combine(*assoc_names).mapper.model
22
- @sequence = 0
24
+ @sequence = Sequences[relation]
23
25
  end
24
26
 
25
27
  # @api private
@@ -97,7 +99,7 @@ module ROM
97
99
 
98
100
  # @api private
99
101
  def next_id
100
- @sequence += 1
102
+ sequence.()
101
103
  end
102
104
  end
103
105
  end
@@ -1,5 +1,5 @@
1
1
  module ROM
2
2
  module Factory
3
- VERSION = '0.5.0'.freeze
3
+ VERSION = '0.6.0'.freeze
4
4
  end
5
5
  end
@@ -29,7 +29,6 @@ Gem::Specification.new do |spec|
29
29
 
30
30
  spec.add_dependency "dry-configurable", "~> 0.7"
31
31
  spec.add_dependency "dry-core", "~> 0.3", ">= 0.3.1"
32
- spec.add_dependency "dry-struct", "~> 0.3"
33
32
  spec.add_dependency "rom-core", "~> 4.0"
34
33
  spec.add_dependency "faker", "~> 1.7"
35
34
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rom-factory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janis Miezitis
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-10-24 00:00:00.000000000 Z
12
+ date: 2018-01-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dry-configurable
@@ -45,20 +45,6 @@ dependencies:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.3.1
48
- - !ruby/object:Gem::Dependency
49
- name: dry-struct
50
- requirement: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0.3'
55
- type: :runtime
56
- prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.3'
62
48
  - !ruby/object:Gem::Dependency
63
49
  name: rom-core
64
50
  requirement: !ruby/object:Gem::Requirement
@@ -95,6 +81,7 @@ executables: []
95
81
  extensions: []
96
82
  extra_rdoc_files: []
97
83
  files:
84
+ - ".codeclimate.yml"
98
85
  - ".gitignore"
99
86
  - ".rspec"
100
87
  - ".travis.yml"
@@ -116,8 +103,11 @@ files:
116
103
  - lib/rom/factory/attributes/value.rb
117
104
  - lib/rom/factory/builder.rb
118
105
  - lib/rom/factory/builder/persistable.rb
106
+ - lib/rom/factory/constants.rb
119
107
  - lib/rom/factory/dsl.rb
120
108
  - lib/rom/factory/factories.rb
109
+ - lib/rom/factory/registry.rb
110
+ - lib/rom/factory/sequences.rb
121
111
  - lib/rom/factory/tuple_evaluator.rb
122
112
  - lib/rom/factory/version.rb
123
113
  - rom-factory.gemspec
@@ -142,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
132
  version: '0'
143
133
  requirements: []
144
134
  rubyforge_project:
145
- rubygems_version: 2.6.11
135
+ rubygems_version: 2.7.4
146
136
  signing_key:
147
137
  specification_version: 4
148
138
  summary: ROM based builder library to make your specs awesome. DSL partially inspired