rom 3.0.0.rc2 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/lib/rom/schema.rb +14 -2
- data/lib/rom/setup/finalize/finalize_relations.rb +2 -2
- data/lib/rom/version.rb +1 -1
- data/rom.gemspec +1 -1
- data/spec/unit/rom/container_spec.rb +4 -0
- data/spec/unit/rom/relation/schema_spec.rb +2 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 078640069bc820b095d68303b641a154635a91f6
|
4
|
+
data.tar.gz: 79499e687dc324c807495be3e332cd27dee00002
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd576e0492c38c4b68ac39a7a9fe406d333035658d014541aa379698c08649064a93b1cb7db762d8c327d0f01fa1eb4b1e62c9d3693c83e1e97f0887286966c7
|
7
|
+
data.tar.gz: e930878f5a01d11b9c2c1cd09e2fddfb91584ac7c2daca875acb06f772921bafaa8755dd7fcedece03c7b9ebe04d75f277f1f9a42efd01780db8f08de728b2dd
|
data/Gemfile
CHANGED
data/lib/rom/schema.rb
CHANGED
@@ -324,8 +324,6 @@ module ROM
|
|
324
324
|
raise MissingAttributesError.new(name, missing_attributes)
|
325
325
|
end
|
326
326
|
|
327
|
-
options[:relations] = @relations = relations
|
328
|
-
|
329
327
|
block.call if block
|
330
328
|
|
331
329
|
count_index
|
@@ -362,6 +360,20 @@ module ROM
|
|
362
360
|
)
|
363
361
|
end
|
364
362
|
|
363
|
+
# Return a new schema with new options
|
364
|
+
#
|
365
|
+
# @example
|
366
|
+
# schema.with(inferrer: my_inferrer)
|
367
|
+
#
|
368
|
+
# @param [Hash] new_options
|
369
|
+
#
|
370
|
+
# @return [Schema]
|
371
|
+
#
|
372
|
+
# @api public
|
373
|
+
def with(new_options)
|
374
|
+
self.class.new(name, options.merge(new_options))
|
375
|
+
end
|
376
|
+
|
365
377
|
private
|
366
378
|
|
367
379
|
# @api private
|
@@ -51,11 +51,11 @@ module ROM
|
|
51
51
|
ds_proc = klass.dataset_proc || -> _ { self }
|
52
52
|
|
53
53
|
klass.schema(infer: true) unless klass.schema
|
54
|
-
klass.schema.finalize!(gateway: gateway, relations: registry)
|
54
|
+
schema = klass.schema.finalize!(gateway: gateway, relations: registry)
|
55
55
|
|
56
56
|
dataset = gateway.dataset(klass.dataset).instance_exec(klass, &ds_proc)
|
57
57
|
|
58
|
-
klass.new(dataset, __registry__: registry)
|
58
|
+
klass.new(dataset, __registry__: registry, schema: schema.with(relations: registry))
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
data/lib/rom/version.rb
CHANGED
data/rom.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.add_runtime_dependency 'dry-types', '~> 0.9', '>= 0.9.4'
|
21
21
|
gem.add_runtime_dependency 'dry-core', '~> 0.2', '>= 0.2.3'
|
22
22
|
gem.add_runtime_dependency 'dry-initializer', '~> 0.10', '>= 0.10.2'
|
23
|
-
gem.add_runtime_dependency 'rom-mapper', '~> 0.5
|
23
|
+
gem.add_runtime_dependency 'rom-mapper', '~> 0.5'
|
24
24
|
|
25
25
|
gem.add_development_dependency 'rake', '~> 10.3'
|
26
26
|
gem.add_development_dependency 'rspec', '~> 3.5'
|
@@ -89,6 +89,10 @@ RSpec.describe ROM::Container do
|
|
89
89
|
expect(container.relation(:tasks)).to be_kind_of(ROM::Relation)
|
90
90
|
expect(container.relation(:tasks).mappers.elements).to be_empty
|
91
91
|
end
|
92
|
+
|
93
|
+
it 'returns a relation with finalized schema' do
|
94
|
+
expect(container.relation(:tasks).schema.relations[:users]).to be(container.relations[:users])
|
95
|
+
end
|
92
96
|
end
|
93
97
|
|
94
98
|
describe '#mappers' do
|
@@ -27,6 +27,8 @@ RSpec.describe ROM::Relation, '.schema' do
|
|
27
27
|
expect(Test::Users.schema.primary_key).to eql([Test::Users.schema[:id]])
|
28
28
|
|
29
29
|
expect(Test::Users.schema).to eql(schema)
|
30
|
+
|
31
|
+
expect(Test::Users.schema.relations).to be_empty
|
30
32
|
end
|
31
33
|
|
32
34
|
it 'allows defining types for reading tuples' do
|
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: 3.0.0
|
4
|
+
version: 3.0.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: 2017-01-
|
11
|
+
date: 2017-01-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -104,14 +104,14 @@ dependencies:
|
|
104
104
|
requirements:
|
105
105
|
- - "~>"
|
106
106
|
- !ruby/object:Gem::Version
|
107
|
-
version: 0.5
|
107
|
+
version: '0.5'
|
108
108
|
type: :runtime
|
109
109
|
prerelease: false
|
110
110
|
version_requirements: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
112
|
- - "~>"
|
113
113
|
- !ruby/object:Gem::Version
|
114
|
-
version: 0.5
|
114
|
+
version: '0.5'
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
116
|
name: rake
|
117
117
|
requirement: !ruby/object:Gem::Requirement
|
@@ -392,9 +392,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
392
392
|
version: '0'
|
393
393
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
394
394
|
requirements:
|
395
|
-
- - "
|
395
|
+
- - ">="
|
396
396
|
- !ruby/object:Gem::Version
|
397
|
-
version:
|
397
|
+
version: '0'
|
398
398
|
requirements: []
|
399
399
|
rubyforge_project:
|
400
400
|
rubygems_version: 2.5.1
|