rom 0.9.1 → 1.0.0.beta1

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 (143) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +30 -12
  3. data/.travis.yml +1 -1
  4. data/CHANGELOG.md +24 -0
  5. data/Gemfile +7 -3
  6. data/README.md +24 -11
  7. data/lib/rom.rb +9 -26
  8. data/lib/rom/command.rb +113 -75
  9. data/lib/rom/commands/class_interface.rb +115 -0
  10. data/lib/rom/commands/graph.rb +17 -23
  11. data/lib/rom/commands/graph/builder.rb +176 -0
  12. data/lib/rom/commands/graph/class_interface.rb +8 -2
  13. data/lib/rom/commands/graph/input_evaluator.rb +13 -9
  14. data/lib/rom/commands/lazy.rb +23 -17
  15. data/lib/rom/commands/lazy/create.rb +23 -0
  16. data/lib/rom/commands/lazy/delete.rb +27 -0
  17. data/lib/rom/commands/lazy/update.rb +34 -0
  18. data/lib/rom/commands/result.rb +14 -0
  19. data/lib/rom/commands/update.rb +0 -4
  20. data/lib/rom/configuration.rb +86 -0
  21. data/lib/rom/{setup_dsl/setup.rb → configuration_dsl.rb} +9 -7
  22. data/lib/rom/configuration_dsl/command.rb +43 -0
  23. data/lib/rom/{setup_dsl → configuration_dsl}/command_dsl.rb +5 -4
  24. data/lib/rom/configuration_dsl/mapper.rb +37 -0
  25. data/lib/rom/{setup_dsl → configuration_dsl}/mapper_dsl.rb +11 -5
  26. data/lib/rom/configuration_dsl/relation.rb +26 -0
  27. data/lib/rom/configuration_plugin.rb +17 -0
  28. data/lib/rom/constants.rb +5 -12
  29. data/lib/rom/container.rb +11 -8
  30. data/lib/rom/create_container.rb +61 -0
  31. data/lib/rom/environment.rb +27 -241
  32. data/lib/rom/gateway.rb +18 -2
  33. data/lib/rom/global.rb +24 -0
  34. data/lib/rom/global/plugin_dsl.rb +2 -0
  35. data/lib/rom/lint/spec.rb +0 -12
  36. data/lib/rom/lint/test.rb +0 -31
  37. data/lib/rom/memory/commands.rb +2 -2
  38. data/lib/rom/memory/gateway.rb +2 -0
  39. data/lib/rom/pipeline.rb +1 -1
  40. data/lib/rom/plugin_base.rb +1 -1
  41. data/lib/rom/plugin_registry.rb +12 -10
  42. data/lib/rom/plugins/configuration/configuration_dsl.rb +16 -0
  43. data/lib/rom/plugins/relation/key_inference.rb +31 -0
  44. data/lib/rom/plugins/relation/view.rb +90 -0
  45. data/lib/rom/plugins/relation/view/dsl.rb +32 -0
  46. data/lib/rom/relation.rb +1 -11
  47. data/lib/rom/relation/class_interface.rb +37 -50
  48. data/lib/rom/setup.rb +13 -104
  49. data/lib/rom/setup/auto_registration.rb +55 -0
  50. data/lib/rom/setup/finalize.rb +113 -127
  51. data/lib/rom/setup/finalize/commands.rb +67 -0
  52. data/lib/rom/setup/finalize/mappers.rb +36 -0
  53. data/lib/rom/setup/finalize/relations.rb +53 -0
  54. data/lib/rom/support/configurable.rb +21 -7
  55. data/lib/rom/version.rb +1 -1
  56. data/rakelib/mutant.rake +4 -1
  57. data/rom.gemspec +3 -4
  58. data/spec/fixtures/app/commands/create_user.rb +2 -0
  59. data/spec/fixtures/app/mappers/user_list.rb +2 -0
  60. data/spec/fixtures/app/relations/users.rb +2 -0
  61. data/spec/fixtures/lib/persistence/commands/create_user.rb +6 -0
  62. data/spec/fixtures/lib/persistence/mappers/user_list.rb +6 -0
  63. data/spec/fixtures/lib/persistence/relations/users.rb +6 -0
  64. data/spec/{unit/rom → integration}/command_registry_spec.rb +8 -9
  65. data/spec/integration/commands/create_spec.rb +17 -13
  66. data/spec/integration/commands/delete_spec.rb +12 -11
  67. data/spec/integration/commands/error_handling_spec.rb +5 -4
  68. data/spec/integration/commands/graph_builder_spec.rb +213 -0
  69. data/spec/integration/commands/graph_spec.rb +112 -49
  70. data/spec/integration/commands/update_spec.rb +14 -11
  71. data/spec/integration/commands_spec.rb +60 -0
  72. data/spec/integration/mappers/combine_spec.rb +7 -6
  73. data/spec/integration/mappers/deep_embedded_spec.rb +5 -6
  74. data/spec/integration/mappers/definition_dsl_spec.rb +19 -18
  75. data/spec/integration/mappers/embedded_spec.rb +11 -12
  76. data/spec/integration/mappers/exclude_spec.rb +5 -6
  77. data/spec/integration/mappers/fold_spec.rb +8 -7
  78. data/spec/integration/mappers/group_spec.rb +16 -15
  79. data/spec/integration/mappers/overwrite_attributes_value_spec.rb +5 -5
  80. data/spec/integration/mappers/prefix_separator_spec.rb +5 -7
  81. data/spec/integration/mappers/prefix_spec.rb +5 -7
  82. data/spec/integration/mappers/prefixing_attributes_spec.rb +7 -7
  83. data/spec/integration/mappers/registering_custom_mappers_spec.rb +4 -5
  84. data/spec/integration/mappers/renaming_attributes_spec.rb +18 -18
  85. data/spec/integration/mappers/step_spec.rb +11 -12
  86. data/spec/integration/mappers/symbolizing_attributes_spec.rb +11 -8
  87. data/spec/integration/mappers/unfold_spec.rb +9 -10
  88. data/spec/integration/mappers/ungroup_spec.rb +10 -11
  89. data/spec/integration/mappers/unwrap_spec.rb +10 -15
  90. data/spec/integration/mappers/wrap_spec.rb +16 -15
  91. data/spec/{unit/rom → integration}/memory/commands/create_spec.rb +7 -5
  92. data/spec/{unit/rom → integration}/memory/commands/delete_spec.rb +7 -5
  93. data/spec/{unit/rom → integration}/memory/commands/update_spec.rb +7 -5
  94. data/spec/integration/multi_env_spec.rb +16 -124
  95. data/spec/integration/multi_repo_spec.rb +9 -9
  96. data/spec/integration/relations/default_dataset_spec.rb +15 -0
  97. data/spec/integration/relations/inheritance_spec.rb +5 -7
  98. data/spec/integration/relations/reading_spec.rb +32 -65
  99. data/spec/integration/relations/registry_dsl_spec.rb +5 -4
  100. data/spec/integration/repositories/extending_relations_spec.rb +6 -7
  101. data/spec/integration/repositories/setting_logger_spec.rb +5 -7
  102. data/spec/integration/setup_spec.rb +49 -61
  103. data/spec/shared/command_graph.rb +50 -0
  104. data/spec/shared/container.rb +9 -0
  105. data/spec/shared/gateway_only.rb +6 -0
  106. data/spec/shared/no_container.rb +16 -0
  107. data/spec/shared/one_behavior.rb +4 -4
  108. data/spec/shared/users_and_tasks.rb +5 -17
  109. data/spec/spec_helper.rb +5 -3
  110. data/spec/test/memory_repository_lint_test.rb +1 -1
  111. data/spec/unit/rom/auto_registration_spec.rb +54 -0
  112. data/spec/unit/rom/commands/graph_spec.rb +18 -44
  113. data/spec/unit/rom/commands/lazy_spec.rb +246 -35
  114. data/spec/unit/rom/commands/result_spec.rb +56 -0
  115. data/spec/unit/rom/commands_spec.rb +9 -73
  116. data/spec/unit/rom/configurable_spec.rb +49 -0
  117. data/spec/unit/rom/configuration_spec.rb +61 -0
  118. data/spec/unit/rom/container_spec.rb +39 -33
  119. data/spec/unit/rom/create_container_spec.rb +151 -0
  120. data/spec/unit/rom/environment_spec.rb +123 -0
  121. data/spec/unit/rom/gateway_spec.rb +58 -2
  122. data/spec/unit/rom/global_spec.rb +10 -7
  123. data/spec/unit/rom/plugin_spec.rb +44 -25
  124. data/spec/unit/rom/plugins/relation/key_inference_spec.rb +27 -0
  125. data/spec/unit/rom/plugins/relation/view_spec.rb +47 -0
  126. data/spec/unit/rom/relation/composite_spec.rb +20 -20
  127. data/spec/unit/rom/relation/curried_spec.rb +10 -11
  128. data/spec/unit/rom/relation/graph_spec.rb +27 -27
  129. data/spec/unit/rom/relation/lazy/combine_spec.rb +26 -20
  130. data/spec/unit/rom/relation/lazy_spec.rb +38 -38
  131. data/spec/unit/rom/relation/loaded_spec.rb +2 -3
  132. data/spec/unit/rom/relation_spec.rb +39 -2
  133. metadata +58 -66
  134. data/lib/rom/commands/abstract.rb +0 -184
  135. data/lib/rom/environment_plugin.rb +0 -17
  136. data/lib/rom/environment_plugins/auto_registration.rb +0 -38
  137. data/lib/rom/repository.rb +0 -16
  138. data/lib/rom/setup_dsl/command.rb +0 -36
  139. data/lib/rom/setup_dsl/mapper.rb +0 -32
  140. data/lib/rom/setup_dsl/relation.rb +0 -30
  141. data/spec/integration/inline_setup_spec.rb +0 -65
  142. data/spec/unit/rom/repository_spec.rb +0 -12
  143. data/spec/unit/rom/setup_spec.rb +0 -253
@@ -0,0 +1,67 @@
1
+ require 'rom/support/registry'
2
+ require 'rom/command_registry'
3
+
4
+ module ROM
5
+ class Finalize
6
+ class FinalizeCommands
7
+ # Build command registry hash for provided relations
8
+ #
9
+ # @param [RelationRegistry] relations registry
10
+ # @param [Hash] gateways
11
+ # @param [Array] command_classes a list of command subclasses
12
+ #
13
+ # @api private
14
+ def initialize(relations, gateways, command_classes)
15
+ @relations = relations
16
+ @gateways = gateways
17
+ @command_classes = command_classes
18
+ end
19
+
20
+ # @return [Hash]
21
+ #
22
+ # @api private
23
+ def run!
24
+ registry = @command_classes.each_with_object({}) do |klass, h|
25
+ rel_name = klass.relation
26
+ next unless rel_name
27
+
28
+ relation = @relations[rel_name]
29
+ name = klass.register_as || klass.default_name
30
+
31
+ gateway = @gateways[relation.class.gateway]
32
+ gateway.extend_command_class(klass, relation.dataset)
33
+
34
+ klass.send(:include, relation_methods_mod(relation.class))
35
+
36
+ (h[rel_name] ||= {})[name] = klass.build(relation)
37
+ end
38
+
39
+ commands = registry.each_with_object({}) do |(name, rel_commands), h|
40
+ h[name] = CommandRegistry.new(rel_commands)
41
+ end
42
+
43
+ Registry.new(commands)
44
+ end
45
+
46
+ # @api private
47
+ def relation_methods_mod(relation_class)
48
+ mod = Module.new
49
+ relation_class.view_methods.each do |meth|
50
+ mod.module_eval <<-RUBY
51
+ def #{meth}(*args)
52
+ response = relation.public_send(:#{meth}, *args)
53
+
54
+ if response.is_a?(relation.class)
55
+ new(response)
56
+ else
57
+ response
58
+ end
59
+ end
60
+ RUBY
61
+ end
62
+
63
+ mod
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,36 @@
1
+ require 'rom/support/registry'
2
+
3
+ module ROM
4
+ class Finalize
5
+ class FinalizeMappers
6
+ # @api private
7
+ def initialize(mapper_classes, mapper_objects)
8
+ @mapper_classes = mapper_classes
9
+ @mapper_objects = mapper_objects
10
+ end
11
+
12
+ # @api private
13
+ def run!
14
+ registry = @mapper_classes.each_with_object({}) do |klass, h|
15
+ name = klass.register_as || klass.relation
16
+ (h[klass.base_relation] ||= {})[name] = klass.build
17
+ end
18
+
19
+ registry_hash = registry.each_with_object({}).each { |(relation, mappers), h|
20
+ h[relation] = MapperRegistry.new(mappers)
21
+ }
22
+
23
+ @mapper_objects.each do |relation, mappers|
24
+ if registry_hash.key?(relation)
25
+ mappers_registry = registry_hash[relation]
26
+ mappers.each { |name, mapper| mappers_registry[name] = mapper }
27
+ else
28
+ registry_hash[relation] = MapperRegistry.new(mappers)
29
+ end
30
+ end
31
+
32
+ Registry.new(registry_hash)
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,53 @@
1
+ require 'rom/relation_registry'
2
+
3
+ module ROM
4
+ class Finalize
5
+ class FinalizeRelations
6
+ # Build relation registry of specified descendant classes
7
+ #
8
+ # This is used by the setup
9
+ #
10
+ # @param [Hash] gateways
11
+ # @param [Array] relation_classes a list of relation descendants
12
+ #
13
+ # @api private
14
+ def initialize(gateways, relation_classes)
15
+ @gateways = gateways
16
+ @relation_classes = relation_classes
17
+ end
18
+
19
+ # @return [Hash]
20
+ #
21
+ # @api private
22
+ def run!
23
+ registry = {}
24
+
25
+ @relation_classes.each do |klass|
26
+ # TODO: raise a meaningful error here and add spec covering the case
27
+ # where klass' gateway points to non-existant repo
28
+ gateway = @gateways.fetch(klass.gateway)
29
+ ds_proc = klass.dataset_proc || -> { self }
30
+ dataset = gateway.dataset(klass.dataset).instance_exec(&ds_proc)
31
+
32
+ relation = klass.new(dataset, __registry__: registry)
33
+
34
+ name = klass.register_as
35
+
36
+ if registry.key?(name)
37
+ raise RelationAlreadyDefinedError,
38
+ "Relation with `register_as #{name.inspect}` registered more " \
39
+ "than once"
40
+ end
41
+
42
+ registry[name] = relation
43
+ end
44
+
45
+ registry.each_value do |relation|
46
+ relation.class.finalize(registry, relation)
47
+ end
48
+
49
+ RelationRegistry.new(registry)
50
+ end
51
+ end
52
+ end
53
+ end
@@ -7,8 +7,8 @@ module ROM
7
7
  attr_reader :settings
8
8
 
9
9
  # @api private
10
- def initialize
11
- @settings = {}
10
+ def initialize(settings = {})
11
+ @settings = settings
12
12
  end
13
13
 
14
14
  # @api public
@@ -23,19 +23,33 @@ module ROM
23
23
 
24
24
  # @api private
25
25
  def freeze
26
- settings.each_value { |value| value.freeze }
26
+ settings.each_value(&:freeze)
27
27
  super
28
28
  end
29
29
 
30
30
  # @api private
31
- def respond_to_missing?(name, include_private = false)
31
+ def respond_to_missing?(_name, _include_private = false)
32
32
  true
33
33
  end
34
-
34
+
35
+ def dup
36
+ self.class.new(dup_settings(settings))
37
+ end
38
+
35
39
  private
40
+
41
+ def dup_settings(settings)
42
+ settings.each_with_object({}) do |(key, value), new_settings|
43
+ if value.is_a?(self.class)
44
+ new_settings[key] = value.dup
45
+ else
46
+ new_settings[key] = value
47
+ end
48
+ end
49
+ end
36
50
 
37
51
  # @api private
38
- def method_missing(meth, *args, &block)
52
+ def method_missing(meth, *args, &_block)
39
53
  return settings.fetch(meth, nil) if frozen?
40
54
 
41
55
  name = meth.to_s
@@ -50,7 +64,7 @@ module ROM
50
64
 
51
65
  # @api private
52
66
  def writer?(name)
53
- ! WRITER_REGEXP.match(name).nil?
67
+ !WRITER_REGEXP.match(name).nil?
54
68
  end
55
69
  end
56
70
 
data/lib/rom/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module ROM
2
- VERSION = '0.9.1'.freeze
2
+ VERSION = '1.0.0.beta1'.freeze
3
3
  end
data/rakelib/mutant.rake CHANGED
@@ -4,11 +4,14 @@ task :mutant do
4
4
  if subject == 'mutant'
5
5
  abort "usage: rake mutant SUBJECT\nexample: rake mutant ROM::Header"
6
6
  else
7
+ sep = subject.include?('#') ? '#' : '.'
8
+ ns = subject.split(sep).first
9
+
7
10
  opts = {
8
11
  'include' => 'lib',
9
12
  'require' => 'rom',
10
13
  'use' => 'rspec',
11
- 'ignore-subject' => "#{subject}#respond_to_missing?"
14
+ 'ignore-subject' => "#{ns}#respond_to_missing?"
12
15
  }.to_a.map { |k, v| "--#{k} #{v}" }.join(' ')
13
16
 
14
17
  exec("bundle exec mutant #{opts} #{subject}")
data/rom.gemspec CHANGED
@@ -15,10 +15,9 @@ Gem::Specification.new do |gem|
15
15
  gem.test_files = `git ls-files -- {spec}/*`.split("\n")
16
16
  gem.license = 'MIT'
17
17
 
18
- gem.add_runtime_dependency 'transproc', '~> 0.3', '>= 0.3.0'
19
- gem.add_runtime_dependency 'equalizer', '~> 0.0', '>= 0.0.9'
20
- gem.add_runtime_dependency 'rom-support', '~> 0.1', '>= 0.1.0'
21
- gem.add_runtime_dependency 'rom-mapper', '~> 0.2', '>= 0.2.0'
18
+ gem.add_runtime_dependency 'dry-equalizer', '~> 0.2'
19
+ gem.add_runtime_dependency 'rom-support', '~> 1.0.0.beta1'
20
+ gem.add_runtime_dependency 'rom-mapper', '~> 0.3.0.beta1'
22
21
 
23
22
  gem.add_development_dependency 'rake', '~> 10.3'
24
23
  gem.add_development_dependency 'rspec', '~> 3.3'
@@ -0,0 +1,2 @@
1
+ class CreateUser
2
+ end
@@ -0,0 +1,2 @@
1
+ class UserList
2
+ end
@@ -0,0 +1,2 @@
1
+ class Users
2
+ end
@@ -0,0 +1,6 @@
1
+ module Persistence
2
+ module Commands
3
+ class CreateUser
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Persistence
2
+ module Mappers
3
+ class UserList
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Persistence
2
+ module Relations
3
+ class Users
4
+ end
5
+ end
6
+ end
@@ -1,19 +1,18 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'ROM::CommandRegistry' do
4
- subject(:env) { setup.finalize }
4
+ include_context 'container'
5
5
 
6
- let(:setup) { ROM.setup(:memory) }
7
- let(:users) { env.command(:users) }
6
+ let(:users) { container.command(:users) }
8
7
 
9
8
  before do
10
- setup.relation(:users)
9
+ configuration.relation(:users)
11
10
 
12
- setup.commands(:users) do
13
- define(:create) do
14
- validator proc { |input| raise(ROM::CommandError) unless input[:name] }
15
- end
16
- end
11
+ configuration.register_command(Class.new(ROM::Commands::Create[:memory]) do
12
+ register_as :create
13
+ relation :users
14
+ validator proc { |input| raise(ROM::CommandError) unless input[:name] }
15
+ end)
17
16
  end
18
17
 
19
18
  describe '#try' do
@@ -1,10 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'Commands / Create' do
4
+ include_context 'container'
4
5
  include_context 'users and tasks'
5
6
 
6
- let(:users) { rom.commands.users }
7
- let(:tasks) { rom.commands.tasks }
7
+ let(:users) { container.commands.users }
8
+ let(:tasks) { container.commands.tasks }
8
9
 
9
10
  before do
10
11
  module Test
@@ -19,8 +20,8 @@ describe 'Commands / Create' do
19
20
  end
20
21
  end
21
22
 
22
- setup.relation(:users)
23
- setup.relation(:tasks)
23
+ configuration.relation(:users)
24
+ configuration.relation(:tasks)
24
25
 
25
26
  class Test::CreateUser < ROM::Commands::Create[:memory]
26
27
  relation :users
@@ -62,6 +63,9 @@ describe 'Commands / Create' do
62
63
  attribute :name
63
64
  attribute :title
64
65
  end
66
+
67
+ configuration.register_command(Test::CreateUser, Test::CreateTask)
68
+ configuration.register_mapper(Test::UserMapper, Test::TaskMapper)
65
69
  end
66
70
 
67
71
  it 'inserts user on successful validation' do
@@ -87,12 +91,12 @@ describe 'Commands / Create' do
87
91
 
88
92
  expect(result.error).to be_instance_of(Test::ValidationError)
89
93
  expect(result.error.message).to eql(":name and :email are required")
90
- expect(rom.relations.users.count).to be(2)
94
+ expect(container.relations.users.count).to be(2)
91
95
  end
92
96
 
93
97
  describe '"result" option' do
94
98
  it 'returns a single tuple when set to :one' do
95
- setup.commands(:users) do
99
+ configuration.commands(:users) do
96
100
  define(:create_one, type: :create) do
97
101
  result :one
98
102
  end
@@ -109,12 +113,12 @@ describe 'Commands / Create' do
109
113
 
110
114
  it 'allows only valid result types' do
111
115
  expect {
112
- setup.commands(:users) do
116
+ configuration.commands(:users) do
113
117
  define(:create_one, type: :create) do
114
118
  result :invalid_type
115
119
  end
116
120
  end
117
- setup.finalize
121
+ container
118
122
  }.to raise_error(ROM::Options::InvalidOptionValueError)
119
123
  end
120
124
  end
@@ -125,7 +129,7 @@ describe 'Commands / Create' do
125
129
  end
126
130
 
127
131
  it 'uses registered mapper to process the result for :one result' do
128
- command = rom.command(:users).as(:entity).create
132
+ command = container.command(:users).as(:entity).create
129
133
  result = command[attributes]
130
134
 
131
135
  expect(result).to eql(Test::User.new(attributes))
@@ -138,11 +142,11 @@ describe 'Commands / Create' do
138
142
  mapper_input = tuples
139
143
  end
140
144
 
141
- left = rom.command(:users).as(:entity).create.with(
145
+ left = container.command(:users).as(:entity).create.with(
142
146
  name: 'Jane', email: 'jane@doe.org'
143
147
  )
144
148
 
145
- right = rom.command(:tasks).as(:entity).create.with(
149
+ right = container.command(:tasks).as(:entity).create.with(
146
150
  title: 'Jane task'
147
151
  )
148
152
 
@@ -157,11 +161,11 @@ describe 'Commands / Create' do
157
161
  end
158
162
 
159
163
  it 'uses registered mapper to process the result for :many results' do
160
- setup.commands(:users) do
164
+ configuration.commands(:users) do
161
165
  define(:create_many, type: :create)
162
166
  end
163
167
 
164
- command = rom.command(:users).as(:entity).create_many
168
+ command = container.command(:users).as(:entity).create_many
165
169
  result = command[attributes]
166
170
 
167
171
  expect(result).to eql([Test::User.new(attributes)])
@@ -1,12 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'Commands / Delete' do
4
+ include_context 'container'
4
5
  include_context 'users and tasks'
5
6
 
6
- subject(:users) { rom.commands.users }
7
+ subject(:users) { container.commands.users }
7
8
 
8
9
  before do
9
- setup.relation(:users) do
10
+ configuration.relation(:users) do
10
11
  def by_name(name)
11
12
  restrict(name: name)
12
13
  end
@@ -14,7 +15,7 @@ describe 'Commands / Delete' do
14
15
  end
15
16
 
16
17
  it 'deletes all tuples when there is no restriction' do
17
- setup.commands(:users) do
18
+ configuration.commands(:users) do
18
19
  define(:delete)
19
20
  end
20
21
 
@@ -25,11 +26,11 @@ describe 'Commands / Delete' do
25
26
  { name: 'Joe', email: 'joe@doe.org' }
26
27
  ])
27
28
 
28
- expect(rom.relation(:users)).to match_array([])
29
+ expect(container.relation(:users)).to match_array([])
29
30
  end
30
31
 
31
32
  it 'deletes tuples matching restriction' do
32
- setup.commands(:users) do
33
+ configuration.commands(:users) do
33
34
  define(:delete)
34
35
  end
35
36
 
@@ -37,13 +38,13 @@ describe 'Commands / Delete' do
37
38
 
38
39
  expect(result).to match_array([{ name: 'Joe', email: 'joe@doe.org' }])
39
40
 
40
- expect(rom.relation(:users)).to match_array([
41
- { name: 'Jane', email: 'jane@doe.org' },
41
+ expect(container.relation(:users)).to match_array([
42
+ { name: 'Jane', email: 'jane@doe.org' }
42
43
  ])
43
44
  end
44
45
 
45
46
  it 'returns untouched relation if there are no tuples to delete' do
46
- setup.commands(:users) do
47
+ configuration.commands(:users) do
47
48
  define(:delete)
48
49
  end
49
50
 
@@ -53,7 +54,7 @@ describe 'Commands / Delete' do
53
54
  end
54
55
 
55
56
  it 'returns deleted tuple when result is set to :one' do
56
- setup.commands(:users) do
57
+ configuration.commands(:users) do
57
58
  define(:delete_one, type: :delete) do
58
59
  result :one
59
60
  end
@@ -65,7 +66,7 @@ describe 'Commands / Delete' do
65
66
  end
66
67
 
67
68
  it 'raises when result is set to :one and relation contains more tuples' do
68
- setup.commands(:users) do
69
+ configuration.commands(:users) do
69
70
  define(:delete) do
70
71
  result :one
71
72
  end
@@ -75,7 +76,7 @@ describe 'Commands / Delete' do
75
76
 
76
77
  expect(result.error).to be_instance_of(ROM::TupleCountMismatchError)
77
78
 
78
- expect(rom.relations.users.to_a).to match_array([
79
+ expect(container.relations.users.to_a).to match_array([
79
80
  { name: 'Jane', email: 'jane@doe.org' },
80
81
  { name: 'Joe', email: 'joe@doe.org' }
81
82
  ])