rom-yaml 0.4.0 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8ceb88973717d25e3a5664155deea9cce6425214
4
- data.tar.gz: 952ee95975a617674b7d09c33e1ccae1c3bb20a3
3
+ metadata.gz: 553c008fde88ee3c9ba6bbd9532f4146c74b16c0
4
+ data.tar.gz: e2668f054350d34a039e1b7f82710c7cb95d93a4
5
5
  SHA512:
6
- metadata.gz: 860636dc087aafa3d1ce694a983700fc75549ffa68c65248b2a5cffa90ff0cba399ac6b2edb8efc85545ac3b819b4b708801637f5ff551aaf2b9e02a4cc2cbac
7
- data.tar.gz: 6a97e9937ed37d663cb4aa7aeeef06117a004fa706ca848df14e51cba8637282ba6283d983eca148d2068deeebc14aabe17cd20615e403ec3752345a7fc0e6ea
6
+ metadata.gz: 52eba46a03299672bd71b13029fc7463403cc8f867e85af74d8a224f247c2d0842ce82103941f88a6595a9a43b04603f125c4c2682632605e6747f69cfb26e32
7
+ data.tar.gz: fda2fa185ad08c34b8ac0de2b79dbc4249db3649523841806fc27d160748da6015cefa2d9c3d569ba31a96155454a447500e3fdccb4a527f0e59ae05224abcb2
data/.travis.yml CHANGED
@@ -1,18 +1,24 @@
1
1
  language: ruby
2
+ dist: trusty
3
+ sudo: required
4
+ cache: bundler
2
5
  bundler_args: --without tools
3
- env:
4
- - CODECLIMATE_REPO_TOKEN=ef69eb6a9e19987527e5010a02bbf71cd4ddc8a5137ba308f299817f56d06e7f
5
6
  script: "bundle exec rake spec"
7
+ after_success:
8
+ - '[ -d coverage ] && bundle exec codeclimate-test-reporter'
6
9
  rvm:
7
- - 2.0
8
- - 2.1
9
- - 2.2
10
- - rbx-2
11
- - jruby-9000
12
- - ruby-head
10
+ - 2.2.6
11
+ - 2.3.3
12
+ - 2.4.0
13
+ - rbx-3
14
+ - jruby-9.1.5.0
15
+ env:
16
+ global:
17
+ - JRUBY_OPTS='--dev -J-Xmx1024M'
18
+ - COVERAGE='true'
13
19
  matrix:
14
20
  allow_failures:
15
- - rvm: ruby-head
21
+ - rvm: rbx-3
16
22
  notifications:
17
23
  webhooks:
18
24
  urls:
@@ -20,5 +26,3 @@ notifications:
20
26
  on_success: change
21
27
  on_failure: always
22
28
  on_start: false
23
- before_install:
24
- - gem install bundler -v 1.10.6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## v1.0.0 to-be-released
2
+
3
+ ### Added
4
+
5
+ * [BREAKING] Schema support in relations (you *must* define schemas now) (solnic)
6
+ * Support for rom-repository (solnic)
7
+
8
+ ### Changed
9
+
10
+ * `YAML` relations inherit now from `Memory::Relation` (solnic)
11
+
12
+ [Compare v0.4.0...v1.0.0](https://github.com/rom-rb/rom-yaml/compare/v0.4.0...v1.0.0)
13
+
1
14
  ## v0.4.0
2
15
 
3
16
  ### Changed
data/Gemfile CHANGED
@@ -6,6 +6,8 @@ group :test do
6
6
  gem 'byebug', platform: :mri
7
7
  gem 'inflecto'
8
8
  gem 'rom', git: 'https://github.com/rom-rb/rom.git', branch: 'master'
9
+ gem 'rom-mapper', git: 'https://github.com/rom-rb/rom-mapper.git', branch: 'master'
10
+ gem 'rom-repository', git: 'https://github.com/rom-rb/rom-repository.git', branch: 'master'
9
11
  gem 'rspec', '~> 3.1'
10
12
  gem 'codeclimate-test-reporter', require: false
11
13
  gem 'virtus'
data/README.md CHANGED
@@ -4,16 +4,16 @@
4
4
  [codeclimate]: https://codeclimate.com/github/rom-rb/rom-yaml
5
5
  [inchpages]: http://inch-ci.org/github/rom-rb/rom-yaml
6
6
 
7
- # ROM::YAML
7
+ # rom-yaml
8
8
 
9
9
  [![Gem Version](https://badge.fury.io/rb/rom-yaml.svg)][gem]
10
10
  [![Build Status](https://travis-ci.org/rom-rb/rom-yaml.svg?branch=master)][travis]
11
- [![Dependency Status](https://gemnasium.com/rom-rb/rom-yaml.png)][gemnasium]
11
+ [![Dependency Status](https://gemnasium.com/rom-rb/rom-yaml.svg)][gemnasium]
12
12
  [![Code Climate](https://codeclimate.com/github/rom-rb/rom-yaml/badges/gpa.svg)][codeclimate]
13
13
  [![Test Coverage](https://codeclimate.com/github/rom-rb/rom-yaml/badges/coverage.svg)][codeclimate]
14
14
  [![Inline docs](http://inch-ci.org/github/rom-rb/rom-yaml.svg?branch=master)][inchpages]
15
15
 
16
- YAML support for [Ruby Object Mapper](https://github.com/rom-rb/rom)
16
+ YAML support for [rom-rb](https://github.com/rom-rb/rom)
17
17
 
18
18
  ## Installation
19
19
 
@@ -1,13 +1,14 @@
1
- require 'rom/relation'
1
+ require 'rom/memory'
2
+ require 'rom/plugins/relation/key_inference'
2
3
 
3
4
  module ROM
4
5
  module YAML
5
6
  # YAML-specific relation subclass
6
7
  #
7
8
  # @api private
8
- class Relation < ROM::Relation
9
+ class Relation < ROM::Memory::Relation
9
10
  adapter :yaml
10
- forward :join, :project, :restrict, :order
11
+ use :key_inference
11
12
  end
12
13
  end
13
14
  end
@@ -1,5 +1,5 @@
1
1
  module ROM
2
2
  module YAML
3
- VERSION = '0.4.0'.freeze
3
+ VERSION = '1.0.0.beta1'.freeze
4
4
  end
5
5
  end
data/rom-yaml.gemspec CHANGED
@@ -18,7 +18,7 @@ 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", "~> 2.0"
21
+ spec.add_runtime_dependency "rom", "~> 3.0.0.beta"
22
22
 
23
23
  spec.add_development_dependency 'bundler'
24
24
  spec.add_development_dependency 'rake'
@@ -1,16 +1,15 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  require 'rom/lint/spec'
4
+ require 'rom/repository'
4
5
 
5
- describe 'YAML adapter' do
6
+ RSpec.describe 'YAML adapter' do
6
7
  let(:configuration) do
7
8
  ROM::Configuration.new( :yaml, path )
8
9
  end
9
10
 
10
11
  let(:root) { Pathname(__FILE__).dirname.join('..') }
11
12
 
12
-
13
-
14
13
  let(:path) { "#{root}/fixtures/test_db.yml" }
15
14
  let(:container) { ROM.container(configuration) }
16
15
 
@@ -29,7 +28,11 @@ describe 'YAML adapter' do
29
28
 
30
29
  let(:users_relation) do
31
30
  Class.new(ROM::YAML::Relation) do
32
- dataset :users
31
+ schema(:users) do
32
+ attribute :name, ROM::Types::String
33
+ attribute :email, ROM::Types::String
34
+ attribute :roles, ROM::Types::Array
35
+ end
33
36
 
34
37
  def by_name(name)
35
38
  restrict(name: name)
@@ -42,7 +45,7 @@ describe 'YAML adapter' do
42
45
  relation :users
43
46
  register_as :entity
44
47
 
45
- model name: 'User'
48
+ model name: 'Test::User'
46
49
 
47
50
  attribute :name
48
51
  attribute :email
@@ -70,6 +73,20 @@ describe 'YAML adapter' do
70
73
  ])
71
74
  end
72
75
  end
76
+
77
+ describe 'with a repository' do
78
+ let(:repo) do
79
+ Class.new(ROM::Repository[:users]).new(rom)
80
+ end
81
+
82
+ it 'auto-maps to structs' do
83
+ user = repo.users.first
84
+
85
+ expect(user.name).to eql('Jane')
86
+ expect(user.email).to eql('jane@doe.org')
87
+ expect(user.roles.size).to be(2)
88
+ end
89
+ end
73
90
  end
74
91
 
75
92
  describe 'multi-file setup' do
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,10 @@
1
1
  # encoding: utf-8
2
2
 
3
- if RUBY_ENGINE == 'rbx'
4
- require "codeclimate-test-reporter"
5
- CodeClimate::TestReporter.start
3
+ if RUBY_ENGINE == 'ruby' && RUBY_VERSION >= '2.4.0' && ENV['CI'] == 'true'
4
+ require 'simplecov'
5
+ SimpleCov.start do
6
+ add_filter '/spec/'
7
+ end
6
8
  end
7
9
 
8
10
  require 'rom-yaml'
@@ -15,3 +17,17 @@ end
15
17
  root = Pathname(__FILE__).dirname
16
18
 
17
19
  Dir[root.join('shared/*.rb').to_s].each { |f| require f }
20
+
21
+ module Test
22
+ def self.remove_constants
23
+ constants.each(&method(:remove_const))
24
+ end
25
+ end
26
+
27
+ RSpec.configure do |config|
28
+ config.after do
29
+ Test.remove_constants
30
+ end
31
+
32
+ config.disable_monkey_patching!
33
+ end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  require 'rom/lint/spec'
4
4
 
5
- describe ROM::YAML::Dataset do
5
+ RSpec.describe ROM::YAML::Dataset do
6
6
  let(:data) { [{ id: 1 }, { id: 2 }] }
7
7
  let(:dataset) { ROM::YAML::Dataset.new(data) }
8
8
 
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  require 'rom/lint/spec'
4
4
 
5
- describe ROM::YAML::Gateway do
5
+ RSpec.describe ROM::YAML::Gateway do
6
6
  let(:root) { Pathname(__FILE__).dirname.join('..') }
7
7
 
8
8
  it_behaves_like 'a rom gateway' 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: 0.4.0
4
+ version: 1.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-30 00:00:00.000000000 Z
11
+ date: 2017-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rom
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
19
+ version: 3.0.0.beta
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: '2.0'
26
+ version: 3.0.0.beta
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -97,7 +97,7 @@ files:
97
97
  - spec/integration/adapter_spec.rb
98
98
  - spec/spec_helper.rb
99
99
  - spec/unit/dataset_spec.rb
100
- - spec/unit/repository_spec.rb
100
+ - spec/unit/gateway_spec.rb
101
101
  homepage: http://rom-rb.org
102
102
  licenses:
103
103
  - MIT
@@ -113,12 +113,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
113
  version: '0'
114
114
  required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - ">="
116
+ - - ">"
117
117
  - !ruby/object:Gem::Version
118
- version: '0'
118
+ version: 1.3.1
119
119
  requirements: []
120
120
  rubyforge_project:
121
- rubygems_version: 2.5.1
121
+ rubygems_version: 2.6.3
122
122
  signing_key:
123
123
  specification_version: 4
124
124
  summary: YAML support for Ruby Object Mapper
@@ -129,5 +129,4 @@ test_files:
129
129
  - spec/integration/adapter_spec.rb
130
130
  - spec/spec_helper.rb
131
131
  - spec/unit/dataset_spec.rb
132
- - spec/unit/repository_spec.rb
133
- has_rdoc:
132
+ - spec/unit/gateway_spec.rb