rom 0.7.1 → 0.8.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/.gitignore +1 -0
- data/.rubocop.yml +5 -8
- data/CHANGELOG.md +28 -1
- data/CODE_OF_CONDUCT.md +13 -0
- data/Gemfile +2 -2
- data/lib/rom.rb +1 -1
- data/lib/rom/command.rb +7 -5
- data/lib/rom/command_registry.rb +1 -1
- data/lib/rom/commands.rb +0 -2
- data/lib/rom/commands/abstract.rb +55 -25
- data/lib/rom/commands/composite.rb +13 -1
- data/lib/rom/commands/delete.rb +0 -8
- data/lib/rom/commands/graph.rb +102 -0
- data/lib/rom/commands/graph/class_interface.rb +69 -0
- data/lib/rom/commands/lazy.rb +87 -0
- data/lib/rom/constants.rb +22 -0
- data/lib/rom/env.rb +48 -18
- data/lib/rom/gateway.rb +132 -0
- data/lib/rom/global.rb +19 -19
- data/lib/rom/header.rb +42 -16
- data/lib/rom/header/attribute.rb +37 -15
- data/lib/rom/lint/gateway.rb +94 -0
- data/lib/rom/lint/spec.rb +15 -3
- data/lib/rom/lint/test.rb +45 -14
- data/lib/rom/mapper.rb +23 -10
- data/lib/rom/mapper/attribute_dsl.rb +157 -18
- data/lib/rom/memory.rb +1 -1
- data/lib/rom/memory/commands.rb +10 -8
- data/lib/rom/memory/dataset.rb +22 -2
- data/lib/rom/memory/{repository.rb → gateway.rb} +10 -10
- data/lib/rom/pipeline.rb +2 -1
- data/lib/rom/processor/transproc.rb +105 -14
- data/lib/rom/relation.rb +4 -4
- data/lib/rom/relation/class_interface.rb +19 -13
- data/lib/rom/relation/graph.rb +22 -0
- data/lib/rom/relation/lazy.rb +5 -3
- data/lib/rom/repository.rb +9 -118
- data/lib/rom/setup.rb +21 -14
- data/lib/rom/setup/finalize.rb +19 -19
- data/lib/rom/setup_dsl/relation.rb +10 -1
- data/lib/rom/support/deprecations.rb +21 -3
- data/lib/rom/support/enumerable_dataset.rb +1 -1
- data/lib/rom/version.rb +1 -1
- data/rom.gemspec +2 -4
- data/spec/integration/commands/delete_spec.rb +6 -0
- data/spec/integration/commands/graph_spec.rb +235 -0
- data/spec/integration/mappers/combine_spec.rb +14 -5
- data/spec/integration/mappers/definition_dsl_spec.rb +6 -1
- data/spec/integration/mappers/exclude_spec.rb +28 -0
- data/spec/integration/mappers/fold_spec.rb +16 -0
- data/spec/integration/mappers/group_spec.rb +0 -22
- data/spec/integration/mappers/prefix_separator_spec.rb +54 -0
- data/spec/integration/mappers/prefix_spec.rb +50 -0
- data/spec/integration/mappers/reusing_mappers_spec.rb +21 -0
- data/spec/integration/mappers/step_spec.rb +120 -0
- data/spec/integration/mappers/unfold_spec.rb +93 -0
- data/spec/integration/mappers/ungroup_spec.rb +127 -0
- data/spec/integration/mappers/unwrap_spec.rb +2 -2
- data/spec/integration/multi_repo_spec.rb +11 -11
- data/spec/integration/repositories/setting_logger_spec.rb +2 -2
- data/spec/integration/setup_spec.rb +11 -1
- data/spec/shared/command_behavior.rb +18 -0
- data/spec/shared/materializable.rb +4 -2
- data/spec/shared/users_and_tasks.rb +3 -3
- data/spec/test/memory_repository_lint_test.rb +4 -4
- data/spec/unit/rom/commands/graph_spec.rb +198 -0
- data/spec/unit/rom/commands/lazy_spec.rb +88 -0
- data/spec/unit/rom/commands_spec.rb +2 -2
- data/spec/unit/rom/env_spec.rb +26 -0
- data/spec/unit/rom/gateway_spec.rb +90 -0
- data/spec/unit/rom/global_spec.rb +4 -3
- data/spec/unit/rom/mapper/dsl_spec.rb +42 -1
- data/spec/unit/rom/mapper_spec.rb +4 -1
- data/spec/unit/rom/memory/commands/create_spec.rb +21 -0
- data/spec/unit/rom/memory/commands/delete_spec.rb +21 -0
- data/spec/unit/rom/memory/commands/update_spec.rb +21 -0
- data/spec/unit/rom/memory/relation_spec.rb +42 -10
- data/spec/unit/rom/memory/repository_spec.rb +3 -3
- data/spec/unit/rom/processor/transproc_spec.rb +75 -0
- data/spec/unit/rom/relation/lazy/combine_spec.rb +33 -4
- data/spec/unit/rom/relation/lazy_spec.rb +9 -1
- data/spec/unit/rom/repository_spec.rb +4 -63
- data/spec/unit/rom/setup_spec.rb +19 -5
- metadata +28 -38
- data/.ruby-version +0 -1
- data/lib/rom/lint/repository.rb +0 -94
@@ -2,11 +2,11 @@ require 'spec_helper'
|
|
2
2
|
require 'rom/lint/spec'
|
3
3
|
require 'rom/memory'
|
4
4
|
|
5
|
-
describe ROM::Memory::
|
6
|
-
let(:
|
5
|
+
describe ROM::Memory::Gateway do
|
6
|
+
let(:gateway) { ROM::Memory::Gateway }
|
7
7
|
let(:uri) { nil }
|
8
8
|
|
9
|
-
it_behaves_like "a rom
|
9
|
+
it_behaves_like "a rom gateway" do
|
10
10
|
let(:identifier) { :memory }
|
11
11
|
end
|
12
12
|
end
|
@@ -269,6 +269,81 @@ describe ROM::Processor::Transproc do
|
|
269
269
|
end
|
270
270
|
end
|
271
271
|
|
272
|
+
context 'unwrapping tuples' do
|
273
|
+
let(:relation) do
|
274
|
+
[
|
275
|
+
{ 'user' => { 'name' => 'Leo', 'task' => { 'title' => 'Task 1' } } },
|
276
|
+
{ 'user' => { 'name' => 'Joe', 'task' => { 'title' => 'Task 2' } } }
|
277
|
+
]
|
278
|
+
end
|
279
|
+
|
280
|
+
context 'when no mapping is needed' do
|
281
|
+
let(:attributes) do
|
282
|
+
[
|
283
|
+
['user', type: :hash, unwrap: true, header: [['name'], ['task']]]
|
284
|
+
]
|
285
|
+
end
|
286
|
+
|
287
|
+
it 'returns unwrapped tuples' do
|
288
|
+
expect(transproc[relation]).to eql([
|
289
|
+
{ 'name' => 'Leo', 'task' => { 'title' => 'Task 1' } },
|
290
|
+
{ 'name' => 'Joe', 'task' => { 'title' => 'Task 2' } }
|
291
|
+
])
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
context 'partially' do
|
296
|
+
context 'without renaming the rest of the wrap' do
|
297
|
+
let(:attributes) do
|
298
|
+
[
|
299
|
+
['user', type: :hash, unwrap: true, header: [['task']]]
|
300
|
+
]
|
301
|
+
end
|
302
|
+
|
303
|
+
it 'returns unwrapped tuples' do
|
304
|
+
expect(transproc[relation]).to eql([
|
305
|
+
{ 'user' => { 'name' => 'Leo' }, 'task' => { 'title' => 'Task 1' } },
|
306
|
+
{ 'user' => { 'name' => 'Joe' }, 'task' => { 'title' => 'Task 2' } }
|
307
|
+
])
|
308
|
+
end
|
309
|
+
end
|
310
|
+
|
311
|
+
context 'with renaming the rest of the wrap' do
|
312
|
+
let(:attributes) do
|
313
|
+
[
|
314
|
+
['man', from: 'user', type: :hash, unwrap: true, header: [['task']]]
|
315
|
+
]
|
316
|
+
end
|
317
|
+
|
318
|
+
it 'returns unwrapped tuples' do
|
319
|
+
expect(transproc[relation]).to eql([
|
320
|
+
{ 'man' => { 'name' => 'Leo' }, 'task' => { 'title' => 'Task 1' } },
|
321
|
+
{ 'man' => { 'name' => 'Joe' }, 'task' => { 'title' => 'Task 2' } }
|
322
|
+
])
|
323
|
+
end
|
324
|
+
end
|
325
|
+
end
|
326
|
+
|
327
|
+
context 'deeply' do
|
328
|
+
let(:attributes) do
|
329
|
+
[
|
330
|
+
['user', type: :hash, unwrap: true, header: [
|
331
|
+
['name'],
|
332
|
+
['title'],
|
333
|
+
['task', type: :hash, unwrap: true, header: [['title']]]
|
334
|
+
]]
|
335
|
+
]
|
336
|
+
end
|
337
|
+
|
338
|
+
it 'returns unwrapped tuples' do
|
339
|
+
expect(transproc[relation]).to eql([
|
340
|
+
{ 'name' => 'Leo', 'title' => 'Task 1' },
|
341
|
+
{ 'name' => 'Joe', 'title' => 'Task 2' }
|
342
|
+
])
|
343
|
+
end
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
272
347
|
context 'grouping tuples' do
|
273
348
|
let(:relation) do
|
274
349
|
[
|
@@ -36,8 +36,8 @@ describe ROM::Relation::Lazy, '#combine' do
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
setup.
|
40
|
-
setup.
|
39
|
+
setup.gateways[:default].dataset(:tags).insert(task: 'be cool', name: 'red')
|
40
|
+
setup.gateways[:default].dataset(:tags).insert(task: 'be cool', name: 'green')
|
41
41
|
end
|
42
42
|
|
43
43
|
let(:users) { rom.relation(:users) }
|
@@ -85,6 +85,12 @@ describe ROM::Relation::Lazy, '#combine' do
|
|
85
85
|
}
|
86
86
|
}
|
87
87
|
|
88
|
+
it 'raises error when composite relation is passed as a node' do
|
89
|
+
expect {
|
90
|
+
users.combine(tasks >> proc {})
|
91
|
+
}.to raise_error(ROM::UnsupportedRelationError)
|
92
|
+
end
|
93
|
+
|
88
94
|
it 'supports more than one eagerly-loaded relation' do
|
89
95
|
expected = [
|
90
96
|
{
|
@@ -101,7 +107,30 @@ describe ROM::Relation::Lazy, '#combine' do
|
|
101
107
|
]
|
102
108
|
|
103
109
|
user_with_tasks_and_tags = users.by_name('Jane')
|
104
|
-
|
110
|
+
.combine(tasks.for_users, tags.for_users)
|
111
|
+
|
112
|
+
result = user_with_tasks_and_tags >> map_user_with_tasks_and_tags
|
113
|
+
|
114
|
+
expect(result).to match_array(expected)
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'supports more than one eagerly-loaded relation via chaining' do
|
118
|
+
expected = [
|
119
|
+
{
|
120
|
+
name: 'Jane',
|
121
|
+
email: 'jane@doe.org',
|
122
|
+
tasks: [
|
123
|
+
{ name: 'Jane', title: 'be cool', priority: 2 }
|
124
|
+
],
|
125
|
+
tags: [
|
126
|
+
{ task: 'be cool', name: 'red', user: 'Jane' },
|
127
|
+
{ task: 'be cool', name: 'green', user: 'Jane' }
|
128
|
+
]
|
129
|
+
}
|
130
|
+
]
|
131
|
+
|
132
|
+
user_with_tasks_and_tags = users.by_name('Jane')
|
133
|
+
.combine(tasks.for_users).combine(tags.for_users)
|
105
134
|
|
106
135
|
result = user_with_tasks_and_tags >> map_user_with_tasks_and_tags
|
107
136
|
|
@@ -121,7 +150,7 @@ describe ROM::Relation::Lazy, '#combine' do
|
|
121
150
|
]
|
122
151
|
|
123
152
|
user_with_tasks = users.by_name('Jane')
|
124
|
-
|
153
|
+
.combine(tasks.for_users.combine(tags.for_tasks))
|
125
154
|
|
126
155
|
result = user_with_tasks >> map_user_with_tasks
|
127
156
|
|
@@ -49,6 +49,14 @@ describe ROM::Relation::Lazy do
|
|
49
49
|
let(:relation) { users }
|
50
50
|
end
|
51
51
|
|
52
|
+
describe '#map_with' do
|
53
|
+
it 'raises error when unknown mapper was selected' do
|
54
|
+
expect {
|
55
|
+
users.as(:not_here)
|
56
|
+
}.to raise_error(ROM::MapperMissingError, /not_here/)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
52
60
|
describe '#method_missing' do
|
53
61
|
it 'forwards to relation and auto-curries' do
|
54
62
|
relation = users.by_name_and_email_sorted('Jane')
|
@@ -80,7 +88,7 @@ describe ROM::Relation::Lazy do
|
|
80
88
|
end
|
81
89
|
|
82
90
|
it 'returns original response if it is not a relation' do
|
83
|
-
expect(users.
|
91
|
+
expect(users.gateway).to be(:default)
|
84
92
|
end
|
85
93
|
|
86
94
|
it 'raises NoMethodError when relation does not respond to a method' do
|
@@ -1,71 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ROM::Repository do
|
4
|
-
describe '.setup' do
|
5
|
-
it 'sets up a repository based on a type' do
|
6
|
-
repository_class = Class.new(ROM::Repository) do
|
7
|
-
attr_reader :args
|
8
4
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
allow(ROM::Repository).to receive(:class_from_symbol)
|
15
|
-
.with(:wormhole).and_return(repository_class)
|
16
|
-
|
17
|
-
args = %w(hello world)
|
18
|
-
repository = ROM::Repository.setup(:wormhole, *args)
|
19
|
-
|
20
|
-
expect(repository).to be_instance_of(repository_class)
|
21
|
-
expect(repository.args).to eq(args)
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'raises an exception if the type is not supported' do
|
25
|
-
expect {
|
26
|
-
ROM::Repository.setup(:bogus, "memory://test")
|
27
|
-
}.to raise_error(ROM::AdapterLoadError, /bogus/)
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'accepts a repository instance' do
|
31
|
-
repository = ROM::Repository.new
|
32
|
-
expect(ROM::Repository.setup(repository)).to be(repository)
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'raises an exception if instance and arguments are passed' do
|
36
|
-
repository = ROM::Repository.new
|
37
|
-
|
38
|
-
expect { ROM::Repository.setup(repository, 'foo://bar') }.to raise_error(
|
39
|
-
ArgumentError,
|
40
|
-
"Can't accept arguments when passing an instance"
|
41
|
-
)
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'raises an exception if a URI string is passed' do
|
45
|
-
expect { ROM::Repository.setup('memory://test') }.to raise_error(
|
46
|
-
ArgumentError,
|
47
|
-
/URIs without an explicit scheme are not supported anymore/
|
48
|
-
)
|
49
|
-
end
|
5
|
+
it "warns when inherited from" do
|
6
|
+
expect {
|
7
|
+
Class.new(ROM::Repository)
|
8
|
+
}.to output(/inherit from ROM::Gateway/).to_stderr
|
50
9
|
end
|
51
10
|
|
52
|
-
describe '.class_from_symbol' do
|
53
|
-
it 'instantiates a repository based on type' do
|
54
|
-
klass = ROM::Repository.class_from_symbol(:memory)
|
55
|
-
expect(klass).to be(ROM::Memory::Repository)
|
56
|
-
end
|
57
11
|
|
58
|
-
it 'raises an exception if the type is not supported' do
|
59
|
-
expect { ROM::Repository.class_from_symbol(:bogus) }
|
60
|
-
.to raise_error(ROM::AdapterLoadError, /bogus/)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
describe '#disconnect' do
|
65
|
-
it 'does nothing' do
|
66
|
-
repository_class = Class.new(ROM::Repository)
|
67
|
-
repository = repository_class.new
|
68
|
-
expect(repository.disconnect).to be(nil)
|
69
|
-
end
|
70
|
-
end
|
71
12
|
end
|
data/spec/unit/rom/setup_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ROM::Setup do
|
4
4
|
describe '#finalize' do
|
5
|
-
context 'with
|
5
|
+
context 'with gateway that supports schema inferring' do
|
6
6
|
it 'builds relation from inferred schema' do
|
7
7
|
setup = ROM.setup(:memory)
|
8
8
|
repo = setup.default
|
@@ -93,8 +93,8 @@ describe ROM::Setup do
|
|
93
93
|
let(:setup) { ROM::Setup.new({}) }
|
94
94
|
let(:env) { setup.finalize }
|
95
95
|
|
96
|
-
it 'builds empty
|
97
|
-
expect(env.
|
96
|
+
it 'builds empty gateways' do
|
97
|
+
expect(env.gateways).to eql({})
|
98
98
|
end
|
99
99
|
|
100
100
|
it 'builds empty relations' do
|
@@ -112,7 +112,7 @@ describe ROM::Setup do
|
|
112
112
|
end
|
113
113
|
|
114
114
|
describe '#method_missing' do
|
115
|
-
it 'returns a
|
115
|
+
it 'returns a gateway if it is defined' do
|
116
116
|
repo = double('repo')
|
117
117
|
setup = ROM::Setup.new(repo: repo)
|
118
118
|
|
@@ -127,7 +127,7 @@ describe ROM::Setup do
|
|
127
127
|
end
|
128
128
|
|
129
129
|
describe '#[]' do
|
130
|
-
it 'returns a
|
130
|
+
it 'returns a gateway if it is defined' do
|
131
131
|
repo = double('repo')
|
132
132
|
setup = ROM::Setup.new(repo: repo)
|
133
133
|
|
@@ -140,4 +140,18 @@ describe ROM::Setup do
|
|
140
140
|
expect { setup[:not_here] }.to raise_error(KeyError, /not_here/)
|
141
141
|
end
|
142
142
|
end
|
143
|
+
|
144
|
+
describe 'defining components when adapter was not registered' do
|
145
|
+
it 'raises error when trying to define a relation' do
|
146
|
+
expect {
|
147
|
+
Class.new(ROM::Relation[:not_here])
|
148
|
+
}.to raise_error(ROM::AdapterNotPresentError, /not_here/)
|
149
|
+
end
|
150
|
+
|
151
|
+
it 'raises error when trying to define a command' do
|
152
|
+
expect {
|
153
|
+
Class.new(ROM::Commands::Create[:not_here])
|
154
|
+
}.to raise_error(ROM::AdapterNotPresentError, /not_here/)
|
155
|
+
end
|
156
|
+
end
|
143
157
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Solnica
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: transproc
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '0.2'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.2.
|
22
|
+
version: 0.2.4
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '0.2'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.2.
|
32
|
+
version: 0.2.4
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: equalizer
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -65,47 +65,19 @@ dependencies:
|
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '10.3'
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
|
-
name: rspec
|
68
|
+
name: rspec
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
71
|
- - "~>"
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version: '3.
|
73
|
+
version: '3.3'
|
74
74
|
type: :development
|
75
75
|
prerelease: false
|
76
76
|
version_requirements: !ruby/object:Gem::Requirement
|
77
77
|
requirements:
|
78
78
|
- - "~>"
|
79
79
|
- !ruby/object:Gem::Version
|
80
|
-
version: '3.
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: rspec-mocks
|
83
|
-
requirement: !ruby/object:Gem::Requirement
|
84
|
-
requirements:
|
85
|
-
- - "~>"
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: '3.2'
|
88
|
-
type: :development
|
89
|
-
prerelease: false
|
90
|
-
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
requirements:
|
92
|
-
- - "~>"
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: '3.2'
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: rspec-expectations
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
98
|
-
requirements:
|
99
|
-
- - "~>"
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '3.2'
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
requirements:
|
106
|
-
- - "~>"
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: '3.2'
|
80
|
+
version: '3.3'
|
109
81
|
description: Persistence and mapping toolkit for Ruby
|
110
82
|
email: piotr.solnica@gmail.com
|
111
83
|
executables: []
|
@@ -116,9 +88,9 @@ files:
|
|
116
88
|
- ".rspec"
|
117
89
|
- ".rubocop.yml"
|
118
90
|
- ".rubocop_todo.yml"
|
119
|
-
- ".ruby-version"
|
120
91
|
- ".travis.yml"
|
121
92
|
- CHANGELOG.md
|
93
|
+
- CODE_OF_CONDUCT.md
|
122
94
|
- CONTRIBUTING.md
|
123
95
|
- Gemfile
|
124
96
|
- Guardfile
|
@@ -133,17 +105,21 @@ files:
|
|
133
105
|
- lib/rom/commands/composite.rb
|
134
106
|
- lib/rom/commands/create.rb
|
135
107
|
- lib/rom/commands/delete.rb
|
108
|
+
- lib/rom/commands/graph.rb
|
109
|
+
- lib/rom/commands/graph/class_interface.rb
|
110
|
+
- lib/rom/commands/lazy.rb
|
136
111
|
- lib/rom/commands/result.rb
|
137
112
|
- lib/rom/commands/update.rb
|
138
113
|
- lib/rom/constants.rb
|
139
114
|
- lib/rom/env.rb
|
115
|
+
- lib/rom/gateway.rb
|
140
116
|
- lib/rom/global.rb
|
141
117
|
- lib/rom/global/plugin_dsl.rb
|
142
118
|
- lib/rom/header.rb
|
143
119
|
- lib/rom/header/attribute.rb
|
144
120
|
- lib/rom/lint/enumerable_dataset.rb
|
121
|
+
- lib/rom/lint/gateway.rb
|
145
122
|
- lib/rom/lint/linter.rb
|
146
|
-
- lib/rom/lint/repository.rb
|
147
123
|
- lib/rom/lint/spec.rb
|
148
124
|
- lib/rom/lint/test.rb
|
149
125
|
- lib/rom/mapper.rb
|
@@ -154,8 +130,8 @@ files:
|
|
154
130
|
- lib/rom/memory.rb
|
155
131
|
- lib/rom/memory/commands.rb
|
156
132
|
- lib/rom/memory/dataset.rb
|
133
|
+
- lib/rom/memory/gateway.rb
|
157
134
|
- lib/rom/memory/relation.rb
|
158
|
-
- lib/rom/memory/repository.rb
|
159
135
|
- lib/rom/memory/storage.rb
|
160
136
|
- lib/rom/model_builder.rb
|
161
137
|
- lib/rom/pipeline.rb
|
@@ -198,19 +174,26 @@ files:
|
|
198
174
|
- spec/integration/commands/create_spec.rb
|
199
175
|
- spec/integration/commands/delete_spec.rb
|
200
176
|
- spec/integration/commands/error_handling_spec.rb
|
177
|
+
- spec/integration/commands/graph_spec.rb
|
201
178
|
- spec/integration/commands/update_spec.rb
|
202
179
|
- spec/integration/mappers/combine_spec.rb
|
203
180
|
- spec/integration/mappers/deep_embedded_spec.rb
|
204
181
|
- spec/integration/mappers/definition_dsl_spec.rb
|
205
182
|
- spec/integration/mappers/embedded_spec.rb
|
183
|
+
- spec/integration/mappers/exclude_spec.rb
|
206
184
|
- spec/integration/mappers/fold_spec.rb
|
207
185
|
- spec/integration/mappers/group_spec.rb
|
208
186
|
- spec/integration/mappers/overwrite_attributes_value_spec.rb
|
187
|
+
- spec/integration/mappers/prefix_separator_spec.rb
|
188
|
+
- spec/integration/mappers/prefix_spec.rb
|
209
189
|
- spec/integration/mappers/prefixing_attributes_spec.rb
|
210
190
|
- spec/integration/mappers/registering_custom_mappers_spec.rb
|
211
191
|
- spec/integration/mappers/renaming_attributes_spec.rb
|
212
192
|
- spec/integration/mappers/reusing_mappers_spec.rb
|
193
|
+
- spec/integration/mappers/step_spec.rb
|
213
194
|
- spec/integration/mappers/symbolizing_attributes_spec.rb
|
195
|
+
- spec/integration/mappers/unfold_spec.rb
|
196
|
+
- spec/integration/mappers/ungroup_spec.rb
|
214
197
|
- spec/integration/mappers/unwrap_spec.rb
|
215
198
|
- spec/integration/mappers/wrap_spec.rb
|
216
199
|
- spec/integration/multi_repo_spec.rb
|
@@ -219,6 +202,7 @@ files:
|
|
219
202
|
- spec/integration/repositories/extending_relations_spec.rb
|
220
203
|
- spec/integration/repositories/setting_logger_spec.rb
|
221
204
|
- spec/integration/setup_spec.rb
|
205
|
+
- spec/shared/command_behavior.rb
|
222
206
|
- spec/shared/enumerable_dataset.rb
|
223
207
|
- spec/shared/materializable.rb
|
224
208
|
- spec/shared/one_behavior.rb
|
@@ -229,14 +213,20 @@ files:
|
|
229
213
|
- spec/support/mutant.rb
|
230
214
|
- spec/test/memory_repository_lint_test.rb
|
231
215
|
- spec/unit/rom/command_registry_spec.rb
|
216
|
+
- spec/unit/rom/commands/graph_spec.rb
|
217
|
+
- spec/unit/rom/commands/lazy_spec.rb
|
232
218
|
- spec/unit/rom/commands/result_spec.rb
|
233
219
|
- spec/unit/rom/commands_spec.rb
|
234
220
|
- spec/unit/rom/env_spec.rb
|
221
|
+
- spec/unit/rom/gateway_spec.rb
|
235
222
|
- spec/unit/rom/global_spec.rb
|
236
223
|
- spec/unit/rom/header_spec.rb
|
237
224
|
- spec/unit/rom/mapper/dsl_spec.rb
|
238
225
|
- spec/unit/rom/mapper_registry_spec.rb
|
239
226
|
- spec/unit/rom/mapper_spec.rb
|
227
|
+
- spec/unit/rom/memory/commands/create_spec.rb
|
228
|
+
- spec/unit/rom/memory/commands/delete_spec.rb
|
229
|
+
- spec/unit/rom/memory/commands/update_spec.rb
|
240
230
|
- spec/unit/rom/memory/dataset_spec.rb
|
241
231
|
- spec/unit/rom/memory/relation_spec.rb
|
242
232
|
- spec/unit/rom/memory/repository_spec.rb
|