rom-factory 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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