rom 0.9.1 → 1.0.0.beta1

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