rom-yaml 2.0.0.rc2 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0db35321c0e4f8a0deea38c97b9a2933d194ecf89ccd33866039cf14dc4bcc20
4
- data.tar.gz: 061bad9881e18856539fdfa7e98f60ef4f641422759376566fb248dcdd0f4039
3
+ metadata.gz: b63ff9dddb8ef8002c507de08acd85f358b316faed57d7dfd5aeb6faf0d626be
4
+ data.tar.gz: a1402acd077bda7791a62fdb0f55336215eb1ce9144a75fde7ba17ddbce58db3
5
5
  SHA512:
6
- metadata.gz: 6d055c77a8c64379e1ec4c8500d0c9cc7fc5bef8b9f16048d7839bae94b2d3970dbba744abe3fc9977f7d00e32b6f77b771b457022d951a800b4ff99ec54c3d6
7
- data.tar.gz: 3dd87f092d10e04862e15f4d0727f703dce0b0ac6b72d45cc2ada9dba67f3ffd84366b0feac942e41a980e9f7caa15e3daa7263d75ae3eb9b457570d4b167565
6
+ metadata.gz: d5e45b39fe5a9f290e477841fe5b6d488d9452784e98c0d509467711058386ea0e13f502e78f5dc9c4e7e90deba6dc3c2479f566a14dd7f565386db11e59015c
7
+ data.tar.gz: af64f1e268319192d26b2cc4b2f502f6a0ad4214abff15d4faf5d7ba3959c274b993c2f1fab4981c1c7a737a8af23a690523cc264d2555da1156fffc270564c9
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --color
2
2
  --order random
3
+ --require ./spec/spec_helper.rb
@@ -1,6 +1,6 @@
1
- ## v2.0.0 to-be-released
1
+ ## v2.0.0 2019-04-22
2
2
 
3
- Updated to work with rom 4.0.0.
3
+ * Updated to work with rom ~> 4.1
4
4
 
5
5
  [Compare v1.0.1...v2.0.0](https://github.com/rom-rb/rom-yaml/compare/v1.0.1...v2.0.0)
6
6
 
@@ -10,7 +10,7 @@ module ROM
10
10
  #
11
11
  # @api private
12
12
  def self.row_proc
13
- Transforms[:hash_recursion, Transforms[:symbolize_keys]]
13
+ Transforms[:deep_symbolize_keys]
14
14
  end
15
15
  end
16
16
 
@@ -1,4 +1,5 @@
1
1
  require 'rom/memory'
2
+ require 'rom/yaml/schema'
2
3
 
3
4
  module ROM
4
5
  module YAML
@@ -7,6 +8,8 @@ module ROM
7
8
  # @api private
8
9
  class Relation < ROM::Memory::Relation
9
10
  adapter :yaml
11
+
12
+ schema_class YAML::Schema
10
13
  end
11
14
  end
12
15
  end
@@ -0,0 +1,12 @@
1
+ require 'rom/types'
2
+ require 'rom/schema'
3
+
4
+ module ROM
5
+ module YAML
6
+ # YAML relation schema
7
+ #
8
+ # @api public
9
+ class Schema < ROM::Schema
10
+ end
11
+ end
12
+ end
@@ -1,5 +1,5 @@
1
1
  module ROM
2
2
  module YAML
3
- VERSION = '2.0.0.rc2'.freeze
3
+ VERSION = '2.0.0'.freeze
4
4
  end
5
5
  end
@@ -18,9 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_runtime_dependency 'rom-core', '~> 4.0'
21
+ spec.add_runtime_dependency 'rom-core', '~> 4.1'
22
22
 
23
23
  spec.add_development_dependency 'bundler'
24
24
  spec.add_development_dependency 'rake'
25
- spec.add_development_dependency 'rubocop', '~> 0.28.0'
25
+ spec.add_development_dependency 'rubocop', '~> 0.49.0'
26
26
  end
@@ -1,8 +1,3 @@
1
- require 'spec_helper'
2
-
3
- require 'rom/lint/spec'
4
- require 'rom/repository'
5
-
6
1
  RSpec.describe ROM::YAML do
7
2
  let(:configuration) do
8
3
  ROM::Configuration.new(:yaml, path)
@@ -24,59 +19,30 @@ RSpec.describe ROM::YAML do
24
19
  attribute :roles, ROM::Types::Array
25
20
  end
26
21
 
22
+ auto_struct true
23
+
27
24
  def by_name(name)
28
25
  restrict(name: name)
29
26
  end
30
27
  end
31
28
  end
32
29
 
33
- let(:user_mapper) do
34
- Class.new(ROM::Mapper) do
35
- relation :users
36
- register_as :entity
37
-
38
- model name: 'Test::User'
39
-
40
- attribute :name
41
- attribute :email
42
-
43
- embedded :roles, type: :array do
44
- attribute :name, from: 'role_name'
45
- end
46
- end
47
- end
48
-
49
30
  before do
50
31
  configuration.register_relation(users_relation)
51
- configuration.register_mapper(user_mapper)
52
32
  end
53
33
 
54
- describe 'env#relation' do
55
- it 'returns mapped object' do
56
- jane = rom.relations[:users].map_with(:entity).by_name('Jane').first
34
+ describe 'Relation#first' do
35
+ it 'returns mapped struct' do
36
+ jane = rom.relations[:users].by_name('Jane').first
57
37
 
58
38
  expect(jane.name).to eql('Jane')
59
39
  expect(jane.email).to eql('jane@doe.org')
60
40
  expect(jane.roles.length).to eql(2)
61
41
  expect(jane.roles).to eql([
62
- { name: 'Member' }, { name: 'Admin' }
42
+ { role_name: 'Member' }, { role_name: 'Admin' }
63
43
  ])
64
44
  end
65
45
  end
66
-
67
- describe 'with a repository' do
68
- let(:repo) do
69
- Class.new(ROM::Repository[:users]).new(rom)
70
- end
71
-
72
- it 'auto-maps to structs' do
73
- user = repo.users.first
74
-
75
- expect(user.name).to eql('Jane')
76
- expect(user.email).to eql('jane@doe.org')
77
- expect(user.roles.size).to be(2)
78
- end
79
- end
80
46
  end
81
47
 
82
48
  describe 'multi-file setup' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rom-yaml
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc2
4
+ version: 2.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-11-21 00:00:00.000000000 Z
11
+ date: 2019-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rom-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4.0'
19
+ version: '4.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4.0'
26
+ version: '4.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.28.0
61
+ version: 0.49.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.28.0
68
+ version: 0.49.0
69
69
  description: YAML support for Ruby Object Mapper
70
70
  email:
71
71
  - piotr.solnica@gmail.com
@@ -88,6 +88,7 @@ files:
88
88
  - lib/rom/yaml/dataset.rb
89
89
  - lib/rom/yaml/gateway.rb
90
90
  - lib/rom/yaml/relation.rb
91
+ - lib/rom/yaml/schema.rb
91
92
  - lib/rom/yaml/version.rb
92
93
  - rakelib/rubocop.rake
93
94
  - rom-yaml.gemspec
@@ -113,12 +114,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
114
  version: '0'
114
115
  required_rubygems_version: !ruby/object:Gem::Requirement
115
116
  requirements:
116
- - - ">"
117
+ - - ">="
117
118
  - !ruby/object:Gem::Version
118
- version: 1.3.1
119
+ version: '0'
119
120
  requirements: []
120
- rubyforge_project:
121
- rubygems_version: 2.7.2
121
+ rubygems_version: 3.0.3
122
122
  signing_key:
123
123
  specification_version: 4
124
124
  summary: YAML support for Ruby Object Mapper