rom-git 2.0.0 → 2.1.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -0
  3. data/.travis.yml +17 -0
  4. data/CHANGELOG.md +4 -0
  5. data/Gemfile +4 -2
  6. data/LICENSE.txt +1 -1
  7. data/README.md +23 -89
  8. data/Rakefile +3 -103
  9. data/lib/rom-git.rb +1 -1
  10. data/lib/rom/git.rb +1 -1
  11. data/lib/rom/git/dataset.rb +5 -13
  12. data/lib/rom/git/gateway.rb +20 -17
  13. data/lib/rom/git/relation.rb +5 -0
  14. data/lib/rom/git/version.rb +5 -0
  15. data/rom-git.gemspec +10 -12
  16. data/{test → spec}/fixtures/HEAD +0 -0
  17. data/{test → spec}/fixtures/logs/HEAD +0 -0
  18. data/spec/fixtures/logs/refs/heads/feature +0 -0
  19. data/{test → spec}/fixtures/logs/refs/heads/master +0 -0
  20. data/{test → spec}/fixtures/objects/0a/0d213d2bcc5d5fb3a39c134d253d160b7c14c4 +0 -0
  21. data/{test → spec}/fixtures/objects/10/1868c4ce62b7e96a1f7c3b64fa40285ee00d5e +0 -0
  22. data/{test → spec}/fixtures/objects/20/5f6b799e7d5c2524468ca006a0131aa57ecce7 +0 -0
  23. data/{test → spec}/fixtures/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99 +0 -0
  24. data/{test → spec}/fixtures/objects/49/b6dbdb939f0d9494d40f210bbaeb54d6a15c35 +0 -0
  25. data/{test → spec}/fixtures/objects/57/16ca5987cbf97d6bb54920bea6adde242d87e6 +0 -0
  26. data/{test → spec}/fixtures/objects/6f/331f786e8c5ca8ffb67d1dfd3b1e1942167e3e +0 -0
  27. data/{test → spec}/fixtures/objects/89/ff1a2aefcbff0f09197f0fd8beeb19a7b6e51c +0 -0
  28. data/{test → spec}/fixtures/objects/e7/d5223c10643012af885505e2fc7950f81214b6 +0 -0
  29. data/{test → spec}/fixtures/objects/f0/184ad83045ea3a7e32fb547d5275f21686558d +0 -0
  30. data/{test → spec}/fixtures/objects/fe/326fd5cb986e6ef3d83f02857fb5bc10333aa4 +0 -0
  31. data/{test/fixtures/refs/heads/master → spec/fixtures/refs/heads/feature} +0 -0
  32. data/spec/fixtures/refs/heads/master +1 -0
  33. data/spec/integration/gateway_spec.rb +71 -0
  34. data/spec/spec_helper.rb +17 -0
  35. metadata +37 -93
  36. data/test/integration/gateway_test.rb +0 -58
  37. data/test/integration/relation_test.rb +0 -31
  38. data/test/test_helper.rb +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9127df6dee3e69958709ed95a7d8324c4d64d3ec
4
- data.tar.gz: 4f6d9a43f647b2f297cd77c79b4ce3bdbb24fea5
3
+ metadata.gz: dc7c7847111033dcda9033ead9ae4d8c9181ed41
4
+ data.tar.gz: 60278f7a76878300cced492b235021a591a51ccf
5
5
  SHA512:
6
- metadata.gz: 7baa254bcca878d54345fa88259ce3a462fbd2e6ef15cff8ec58779bc911e8433cad61b27528729a05b8a4f607b636eb01f7c6c293a476d0a1769e1bf444dc9f
7
- data.tar.gz: b7975580bbbb61672c1e00a97b93641500f3ca2ce0508c181241d3b321f985d148458b7847e76fe8cffa5e756f7a9fe8863fb0d07b0e9443e78c2e9b9e65a1e9
6
+ metadata.gz: dbc659a12eab3caf1e9d79994313ee7292965d6bea104fe8aa2bd719858e2b5e0a6e25c36187dcb2823130d825d3b7fc322a1f26429bc5c2794f4e40435cf06c
7
+ data.tar.gz: 8254494552c97aec04ed92b82751a447713faad2f114eabc832fb28e77527b358f985b249ef315d280ec96c174ecda230f5c7b741394befc1aca4834ca3d8dc9
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --order random
3
+ --require ./spec/spec_helper
@@ -1,4 +1,21 @@
1
1
  language: ruby
2
+ bundler_args: --without tools
3
+ script: "bundle exec rake spec"
2
4
  rvm:
5
+ - 2.0
3
6
  - 2.1
7
+ - 2.2
8
+ - rbx-2
9
+ - jruby-9.0.5.0
4
10
  - ruby-head
11
+ matrix:
12
+ allow_failures:
13
+ - rvm: ruby-head
14
+ - rvm: jruby-9.0.5.0
15
+ notifications:
16
+ webhooks:
17
+ urls:
18
+ - https://webhooks.gitter.im/e/39e1225f489f38b0bd09
19
+ on_success: change
20
+ on_failure: always
21
+ on_start: false
@@ -1,3 +1,7 @@
1
+ # v2.1.0 2016-08-01
2
+
3
+ Update to work with rom 2.0.0 and rom-repository
4
+
1
5
  # v2.0.0
2
6
 
3
7
  ## BREAKING CHANGE
data/Gemfile CHANGED
@@ -1,6 +1,8 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
+
2
3
  gemspec
3
4
 
4
5
  group :test do
5
- gem 'inflecto'
6
+ gem 'rom-repository'
7
+ gem 'codeclimate-test-reporter'
6
8
  end
@@ -1,4 +1,4 @@
1
- Copyright (c) 2015 Franck Verrot
1
+ Copyright (c) 2015-2016 Franck Verrot, Piotr Solnica
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,106 +1,40 @@
1
- # ROM::Git [![Travis](https://secure.travis-ci.org/rom-rb/rom-git.png)](http://travis-ci.org/rom-rb/rom-git)
2
- Minimal Git support for [Ruby Object Mapper](https://github.com/rom-rb/rom).
3
- Currently only supports reading from the repository.
1
+ [gem]: https://rubygems.org/gems/rom-git
2
+ [travis]: https://travis-ci.org/rom-rb/rom-git
3
+ [gemnasium]: https://gemnasium.com/rom-rb/rom-git
4
+ [codeclimate]: https://codeclimate.com/github/rom-rb/rom-git
5
+ [inchpages]: http://inch-ci.org/github/rom-rb/rom-git
4
6
 
7
+ # rom-git
5
8
 
6
- ## Installation
7
-
8
- Add this line to your application's Gemfile:
9
-
10
- gem 'rom-git'
11
-
12
- And then execute:
13
-
14
- $ bundle
15
-
16
- Or install it yourself as:
17
-
18
- $ gem install rom-git
19
-
20
- Alternatively, you can spawn a `pry` console right away by just running:
21
-
22
- $ rake console
23
-
24
-
25
- ## Usage
26
-
27
- ### Set up the adapter, relation and mapper
28
-
29
- ```ruby
30
- setup = ROM.setup("git://path/to_some_git_repo", branch: 'refs/heads/master')
31
-
32
- setup.schema do
33
- base_relation(:commits) do
34
- repository :default
9
+ [![Gem Version](https://badge.fury.io/rb/rom-git.svg)][gem]
10
+ [![Build Status](https://travis-ci.org/rom-rb/rom-git.svg?branch=master)][travis]
11
+ [![Dependency Status](https://gemnasium.com/rom-rb/rom-git.svg)][gemnasium]
12
+ [![Code Climate](https://codeclimate.com/github/rom-rb/rom-git/badges/gpa.svg)][codeclimate]
13
+ [![Test Coverage](https://codeclimate.com/github/rom-rb/rom-git/badges/coverage.svg)][codeclimate]
14
+ [![Inline docs](http://inch-ci.org/github/rom-rb/rom-git.svg?branch=master)][inchpages]
35
15
 
36
- attribute "sha1"
37
- attribute "message"
38
- attribute "committer"
39
- end
40
- end
41
16
 
42
- setup.relation(:commits) do
43
- def by_committer(committer_name)
44
- find_all { |row| row[:committer] == committer_name }
45
- end
17
+ Git adapter for [Ruby Object Mapper](https://github.com/rom-rb/rom).
46
18
 
47
- def find_commit(sha1)
48
- find_all { |row| row[:sha1] == sha1 }
49
- end
50
- end
51
-
52
-
53
- setup.mappers do
54
- define(:commits) do
55
- model (Class.new do
56
- include Anima.new(:sha1, :message, :committer)
57
- end)
58
- end
59
- end
60
- setup
61
- end
62
-
63
- rom = setup.finalize
64
- ```
65
-
66
- ### Find commits by committer
67
-
68
- ```ruby
69
- commit = rom.read(:commits).by_committer('Franck Verrot').to_a.first
70
-
71
- commit.sha1 # => '101868c4ce62b7e96a1f7c3b64fa40285ee00d5e'
72
- commit.message # => 'commit (initial): Initial commit'
73
- commit.committer # => 'Franck Verrot'
74
- ```
19
+ * [API docs](http://rubydoc.info/gems/rom-git)
20
+ * [ROM user docs](http://rom-rb.org/learn)
75
21
 
22
+ ## Installation
76
23
 
77
- ### Get a relation's attributes
24
+ Add this line to your application's Gemfile:
78
25
 
79
26
  ```ruby
80
- rom.relations.commits.header # => %w(sha1 message committer)
27
+ gem 'rom-git'
81
28
  ```
82
29
 
30
+ And then execute:
83
31
 
84
- ### Find a commit by its SHA1
85
-
86
- ```ruby
87
- sha1 = 'fe326fd5cb986e6ef3d83f02857fb5bc10333aa4'
88
- commit = subject.read(:commits).find_commit(sha1).to_a.first
89
-
90
- commit.sha1 # => sha1
91
- commit.message # => 'commit: Add bar'
92
- commit.committer # => 'Franck Verrot'
93
- ```
32
+ $ bundle
94
33
 
95
- ## Contributing
34
+ Or install it yourself as:
96
35
 
97
- 1. Fork it ( https://github.com/franckverrot/rom-git/fork )
98
- 2. Create your feature branch (`git checkout -b my-new-feature`)
99
- 3. Commit your changes (`git commit -am 'Add some feature'`)
100
- 4. Push to the branch (`git push origin my-new-feature`)
101
- 5. Create new Pull Request
36
+ $ gem install rom-git
102
37
 
103
38
  ## License
104
39
 
105
- MIT License - Copyright 2015 Franck Verrot
106
- See LICENSE.txt for details.
40
+ See `LICENSE` file.
data/Rakefile CHANGED
@@ -1,104 +1,4 @@
1
- # rom-git - Git support for the ROM Ruby Object Mapper
2
- # Copyright (C) 2015 Franck Verrot <franck@verrot.fr>
1
+ require 'rspec/core/rake_task'
3
2
 
4
- # This program is free software: you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation, either version 3 of the License, or
7
- # (at your option) any later version.
8
-
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
-
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
-
17
- require 'rubygems'
18
- require 'rubygems/specification'
19
-
20
- require 'bundler'
21
- Bundler::GemHelper.install_tasks
22
-
23
- $:<< 'lib'
24
- require 'rom-git'
25
-
26
- $stdout.puts """
27
- rom-git - Copyright (C) 2015 Franck Verrot <franck@verrot.fr>
28
- This program comes with ABSOLUTELY NO WARRANTY; for details type `rake license'.
29
- This is free software, and you are welcome to redistribute it
30
- under certain conditions; type `rake license' for details.
31
-
32
- """
33
-
34
- require 'rake/testtask'
35
- Rake::TestTask.new do |t|
36
- t.libs << "test"
37
- t.pattern = "test/**/*_test.rb"
38
- #t.verbose = true
39
- #t.warning = true
40
- end
41
-
42
- Rake::TestTask.new(:unit_tests) do |t|
43
- t.libs << "test"
44
- t.pattern = "test/unit/**/*_test.rb"
45
- #t.verbose = true
46
- #t.warning = true
47
- end
48
-
49
- Rake::TestTask.new(:integration_tests) do |t|
50
- t.libs << "test"
51
- t.pattern = "test/integration/**/*_test.rb"
52
- #t.verbose = true
53
- #t.warning = true
54
- end
55
-
56
-
57
- def gemspec
58
- @gemspec ||= begin
59
- file = File.expand_path('../rom-git.gemspec', __FILE__)
60
- eval(File.read(file), binding, file)
61
- end
62
- end
63
-
64
- desc "Clean the current directory"
65
- task :clean do
66
- rm_rf 'tmp'
67
- rm_rf 'pkg'
68
- end
69
-
70
- desc "Run the full spec suite"
71
- task :full => ["clean", "test"]
72
-
73
- desc "install the gem locally"
74
- task :install => :package do
75
- sh %{gem install pkg/#{gemspec.name}-#{gemspec.version}}
76
- end
77
-
78
- desc "validate the gemspec"
79
- task :gemspec do
80
- gemspec.validate
81
- end
82
-
83
- desc "Build the gem"
84
- task :gem => [:gemspec, :build] do
85
- mkdir_p "pkg"
86
- sh "gem build rom-git.gemspec"
87
- mv "#{gemspec.full_name}.gem", "pkg"
88
- end
89
-
90
- desc "Install rom-git"
91
- task :install => :gem do
92
- sh "gem install pkg/#{gemspec.full_name}.gem"
93
- end
94
-
95
- task :default => :full
96
-
97
- task :license do
98
- `open http://www.gnu.org/licenses/gpl.txt`
99
- end
100
-
101
- task :console do
102
- require 'pry'
103
- Pry.start
104
- end
3
+ RSpec::Core::RakeTask.new(:spec)
4
+ task default: :spec
@@ -1 +1 @@
1
- require "rom/git"
1
+ require 'rom/git'
@@ -1,4 +1,4 @@
1
- require "rugged"
1
+ require 'rugged'
2
2
 
3
3
  require 'rom'
4
4
  require 'rom/git/gateway'
@@ -3,27 +3,19 @@ require 'rom/memory/dataset'
3
3
  module ROM
4
4
  module Git
5
5
  class Dataset < ROM::Memory::Dataset
6
- option :path, reader: true
7
- option :options, reader: true
8
- option :gateway, reader: true
9
-
10
6
  def self.row_proc
11
7
  lambda do |row|
12
8
  {
13
9
  sha1: row[:id_new] || row[:sha1],
14
10
  message: row[:message],
15
- committer: (row[:committer].fetch(:name, 'unknown committer name') rescue row[:committer].to_s)
11
+ committer: (begin
12
+ row[:committer].fetch(:name, 'unknown committer name')
13
+ rescue
14
+ row[:committer].to_s
15
+ end)
16
16
  }
17
17
  end
18
18
  end
19
-
20
- def reload!
21
- @data = gateway.reset_data
22
- end
23
-
24
- def count
25
- @data.count
26
- end
27
19
  end
28
20
  end
29
21
  end
@@ -1,36 +1,39 @@
1
+ require 'rom/support/options'
2
+ require 'rom/support/constants'
3
+
1
4
  require 'rom/gateway'
2
5
  require 'rom/git/dataset'
3
6
 
4
7
  module ROM
5
8
  module Git
6
9
  class Gateway < ROM::Gateway
7
- def initialize(path, options = {})
8
- super()
9
- @path = path
10
- @options = options
10
+ DEFAULT_BRANCH = 'refs/heads/master'.freeze
11
+ include Options
12
+
13
+ option :path, accept: String, reader: true
14
+
15
+ option :branch, accept: String, reader: true, default: DEFAULT_BRANCH
16
+
17
+ attr_reader :datasets
18
+
19
+ attr_reader :repo
20
+
21
+ def initialize(path, options = EMPTY_HASH)
22
+ super
11
23
  @datasets = {}
12
- reset_data
24
+ @repo = Rugged::Repository.new(path)
13
25
  end
14
26
 
15
27
  def [](name)
16
- @datasets[name]
28
+ datasets[name]
17
29
  end
18
30
 
19
31
  def dataset(name)
20
- @datasets[name] = Dataset.new(@connection, path: @path, options: @options, gateway: self)
32
+ datasets[name] = Dataset.new(repo.references[branch].log)
21
33
  end
22
34
 
23
35
  def dataset?(name)
24
- @datasets.key?(name)
25
- end
26
-
27
- def reset_data
28
- repo = Rugged::Repository.new(@path)
29
- walker = Rugged::Walker.new(repo)
30
- branch = (@options || {}).fetch(:branch, 'refs/head/master')
31
- ref = repo.references[branch]
32
-
33
- @connection = ref.log rescue []
36
+ datasets.key?(name)
34
37
  end
35
38
  end
36
39
  end
@@ -1,4 +1,6 @@
1
1
  require 'rom/relation'
2
+ require 'rom/plugins/relation/key_inference'
3
+ require 'rom/plugins/relation/view'
2
4
 
3
5
  module ROM
4
6
  module Git
@@ -7,6 +9,9 @@ module ROM
7
9
 
8
10
  forward :join, :project, :restrict, :order
9
11
 
12
+ use :view
13
+ use :key_inference
14
+
10
15
  def count
11
16
  dataset.count
12
17
  end
@@ -0,0 +1,5 @@
1
+ module ROM
2
+ module Git
3
+ VERSION = '2.1.0'.freeze
4
+ end
5
+ end
@@ -1,27 +1,25 @@
1
1
  # coding: utf-8
2
2
 
3
+ require File.expand_path('../lib/rom/git/version', __FILE__)
4
+
3
5
  Gem::Specification.new do |spec|
4
6
  spec.name = "rom-git"
5
- spec.version = "2.0.0"
6
- spec.authors = ["Franck Verrot"]
7
- spec.email = ["franck@verrot.fr"]
8
- spec.summary = "Git support for the ROM Ruby Object Mapper"
7
+ spec.version = ROM::Git::VERSION
8
+ spec.authors = ["Franck Verrot", "Piotr Solnica"]
9
+ spec.email = ["franck@verrot.fr", "piotr.solnica+oss@gmail.com"]
10
+ spec.summary = "Git adapter for the rom-rb"
9
11
  spec.description = spec.summary
10
- spec.homepage = "https://github.com/franckverrot/rom-git"
12
+ spec.homepage = "http://rom-rb.org"
11
13
  spec.license = "MIT"
12
14
 
13
15
  spec.files = `git ls-files -z`.split("\x0")
14
16
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
15
17
  spec.test_files = spec.files.grep(%r{^test/})
16
18
 
17
- spec.add_runtime_dependency "rom", "~> 0.8.0"
18
-
19
- spec.add_dependency "rugged"
19
+ spec.add_runtime_dependency "rom", "~> 2.0"
20
+ spec.add_runtime_dependency "rugged", "~> 0.24"
20
21
 
21
22
  spec.add_development_dependency "bundler"
22
23
  spec.add_development_dependency "rake"
23
- spec.add_development_dependency "minitest"
24
- spec.add_development_dependency "pry"
25
- spec.add_development_dependency "inflecto"
26
- spec.add_development_dependency "virtus"
24
+ spec.add_development_dependency "rspec"
27
25
  end
File without changes
File without changes
File without changes
@@ -0,0 +1 @@
1
+ 49b6dbdb939f0d9494d40f210bbaeb54d6a15c35
@@ -0,0 +1,71 @@
1
+ require 'ostruct'
2
+
3
+ RSpec.describe 'Git gateway' do
4
+ describe 'using the default (master) branch' do
5
+ let(:path) { File.expand_path('./spec/fixtures') }
6
+
7
+ let(:rom) do
8
+ ROM.container(:git, path) do |conf|
9
+ conf.relation(:commits) do
10
+
11
+ def by_sha1(sha1)
12
+ restrict(sha1: sha1)
13
+ end
14
+
15
+ def by_committer(committer_name)
16
+ restrict(committer: committer_name)
17
+ end
18
+ end
19
+
20
+ conf.mappers do
21
+ define(:commits) do
22
+ model OpenStruct
23
+ register_as :entity
24
+ end
25
+ end
26
+ end
27
+ end
28
+
29
+ shared_context 'a mapped relation tuple' do
30
+ it 'returns restricted and mapped object' do
31
+ commit = rom.relation(:commits)
32
+ .as(:entity).by_sha1('101868c4ce62b7e96a1f7c3b64fa40285ee00d5e').one
33
+
34
+ expect(commit.sha1).to eql('101868c4ce62b7e96a1f7c3b64fa40285ee00d5e')
35
+ expect(commit.message).to eql('commit (initial): Initial commit')
36
+ expect(commit.committer).to eql('Franck Verrot')
37
+ end
38
+ end
39
+
40
+ describe 'using a relation with a custom mapper' do
41
+ let(:commit) do
42
+ rom.relation(:commits)
43
+ .as(:entity).by_sha1('101868c4ce62b7e96a1f7c3b64fa40285ee00d5e').one
44
+ end
45
+
46
+ include_context 'a mapped relation tuple'
47
+ end
48
+
49
+ describe 'using a repository' do
50
+ let(:repo) do
51
+ Class.new(ROM::Repository[:commits]).new(rom)
52
+ end
53
+
54
+ let(:commits) { repo.commits.one }
55
+
56
+ include_context 'a mapped relation tuple'
57
+ end
58
+
59
+ describe 'setup' do
60
+ it 'raises when branch name is invalid' do
61
+ expect { ROM.container(:git, path, branch: 'not-here') { |conf| conf.relation(:commits) } }
62
+ .to raise_error(Rugged::ReferenceError, /not-here/)
63
+ end
64
+
65
+ it 'configures with a custom branch' do
66
+ rom = ROM.container(:git, path, branch: 'refs/heads/feature') { |conf| conf.relation(:commits) }
67
+ expect(rom.relations[:commits].count).to be(0)
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ if RUBY_ENGINE == 'ruby' && RUBY_VERSION >= '2.3.1'
4
+ require "codeclimate-test-reporter"
5
+ CodeClimate::TestReporter.start
6
+ end
7
+
8
+ require 'rom-git'
9
+
10
+ begin
11
+ require 'byebug'
12
+ rescue LoadError
13
+ end
14
+
15
+ root = Pathname(__FILE__).dirname
16
+
17
+ Dir[root.join('shared/*.rb').to_s].each { |f| require f }
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rom-git
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franck Verrot
8
+ - Piotr Solnica
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-08-03 00:00:00.000000000 Z
12
+ date: 2016-07-31 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rom
@@ -16,28 +17,28 @@ dependencies:
16
17
  requirements:
17
18
  - - "~>"
18
19
  - !ruby/object:Gem::Version
19
- version: 0.8.0
20
+ version: '2.0'
20
21
  type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - "~>"
25
26
  - !ruby/object:Gem::Version
26
- version: 0.8.0
27
+ version: '2.0'
27
28
  - !ruby/object:Gem::Dependency
28
29
  name: rugged
29
30
  requirement: !ruby/object:Gem::Requirement
30
31
  requirements:
31
- - - ">="
32
+ - - "~>"
32
33
  - !ruby/object:Gem::Version
33
- version: '0'
34
+ version: '0.24'
34
35
  type: :runtime
35
36
  prerelease: false
36
37
  version_requirements: !ruby/object:Gem::Requirement
37
38
  requirements:
38
- - - ">="
39
+ - - "~>"
39
40
  - !ruby/object:Gem::Version
40
- version: '0'
41
+ version: '0.24'
41
42
  - !ruby/object:Gem::Dependency
42
43
  name: bundler
43
44
  requirement: !ruby/object:Gem::Requirement
@@ -67,49 +68,7 @@ dependencies:
67
68
  - !ruby/object:Gem::Version
68
69
  version: '0'
69
70
  - !ruby/object:Gem::Dependency
70
- name: minitest
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: inflecto
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: virtus
71
+ name: rspec
113
72
  requirement: !ruby/object:Gem::Requirement
114
73
  requirements:
115
74
  - - ">="
@@ -122,14 +81,16 @@ dependencies:
122
81
  - - ">="
123
82
  - !ruby/object:Gem::Version
124
83
  version: '0'
125
- description: Git support for the ROM Ruby Object Mapper
84
+ description: Git adapter for the rom-rb
126
85
  email:
127
86
  - franck@verrot.fr
87
+ - piotr.solnica+oss@gmail.com
128
88
  executables: []
129
89
  extensions: []
130
90
  extra_rdoc_files: []
131
91
  files:
132
92
  - ".gitignore"
93
+ - ".rspec"
133
94
  - ".travis.yml"
134
95
  - CHANGELOG.md
135
96
  - Gemfile
@@ -141,26 +102,28 @@ files:
141
102
  - lib/rom/git/dataset.rb
142
103
  - lib/rom/git/gateway.rb
143
104
  - lib/rom/git/relation.rb
105
+ - lib/rom/git/version.rb
144
106
  - rom-git.gemspec
145
- - test/fixtures/HEAD
146
- - test/fixtures/logs/HEAD
147
- - test/fixtures/logs/refs/heads/master
148
- - test/fixtures/objects/0a/0d213d2bcc5d5fb3a39c134d253d160b7c14c4
149
- - test/fixtures/objects/10/1868c4ce62b7e96a1f7c3b64fa40285ee00d5e
150
- - test/fixtures/objects/20/5f6b799e7d5c2524468ca006a0131aa57ecce7
151
- - test/fixtures/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99
152
- - test/fixtures/objects/49/b6dbdb939f0d9494d40f210bbaeb54d6a15c35
153
- - test/fixtures/objects/57/16ca5987cbf97d6bb54920bea6adde242d87e6
154
- - test/fixtures/objects/6f/331f786e8c5ca8ffb67d1dfd3b1e1942167e3e
155
- - test/fixtures/objects/89/ff1a2aefcbff0f09197f0fd8beeb19a7b6e51c
156
- - test/fixtures/objects/e7/d5223c10643012af885505e2fc7950f81214b6
157
- - test/fixtures/objects/f0/184ad83045ea3a7e32fb547d5275f21686558d
158
- - test/fixtures/objects/fe/326fd5cb986e6ef3d83f02857fb5bc10333aa4
159
- - test/fixtures/refs/heads/master
160
- - test/integration/gateway_test.rb
161
- - test/integration/relation_test.rb
162
- - test/test_helper.rb
163
- homepage: https://github.com/franckverrot/rom-git
107
+ - spec/fixtures/HEAD
108
+ - spec/fixtures/logs/HEAD
109
+ - spec/fixtures/logs/refs/heads/feature
110
+ - spec/fixtures/logs/refs/heads/master
111
+ - spec/fixtures/objects/0a/0d213d2bcc5d5fb3a39c134d253d160b7c14c4
112
+ - spec/fixtures/objects/10/1868c4ce62b7e96a1f7c3b64fa40285ee00d5e
113
+ - spec/fixtures/objects/20/5f6b799e7d5c2524468ca006a0131aa57ecce7
114
+ - spec/fixtures/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99
115
+ - spec/fixtures/objects/49/b6dbdb939f0d9494d40f210bbaeb54d6a15c35
116
+ - spec/fixtures/objects/57/16ca5987cbf97d6bb54920bea6adde242d87e6
117
+ - spec/fixtures/objects/6f/331f786e8c5ca8ffb67d1dfd3b1e1942167e3e
118
+ - spec/fixtures/objects/89/ff1a2aefcbff0f09197f0fd8beeb19a7b6e51c
119
+ - spec/fixtures/objects/e7/d5223c10643012af885505e2fc7950f81214b6
120
+ - spec/fixtures/objects/f0/184ad83045ea3a7e32fb547d5275f21686558d
121
+ - spec/fixtures/objects/fe/326fd5cb986e6ef3d83f02857fb5bc10333aa4
122
+ - spec/fixtures/refs/heads/feature
123
+ - spec/fixtures/refs/heads/master
124
+ - spec/integration/gateway_spec.rb
125
+ - spec/spec_helper.rb
126
+ homepage: http://rom-rb.org
164
127
  licenses:
165
128
  - MIT
166
129
  metadata: {}
@@ -180,27 +143,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
143
  version: '0'
181
144
  requirements: []
182
145
  rubyforge_project:
183
- rubygems_version: 2.4.6
146
+ rubygems_version: 2.5.1
184
147
  signing_key:
185
148
  specification_version: 4
186
- summary: Git support for the ROM Ruby Object Mapper
187
- test_files:
188
- - test/fixtures/HEAD
189
- - test/fixtures/logs/HEAD
190
- - test/fixtures/logs/refs/heads/master
191
- - test/fixtures/objects/0a/0d213d2bcc5d5fb3a39c134d253d160b7c14c4
192
- - test/fixtures/objects/10/1868c4ce62b7e96a1f7c3b64fa40285ee00d5e
193
- - test/fixtures/objects/20/5f6b799e7d5c2524468ca006a0131aa57ecce7
194
- - test/fixtures/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99
195
- - test/fixtures/objects/49/b6dbdb939f0d9494d40f210bbaeb54d6a15c35
196
- - test/fixtures/objects/57/16ca5987cbf97d6bb54920bea6adde242d87e6
197
- - test/fixtures/objects/6f/331f786e8c5ca8ffb67d1dfd3b1e1942167e3e
198
- - test/fixtures/objects/89/ff1a2aefcbff0f09197f0fd8beeb19a7b6e51c
199
- - test/fixtures/objects/e7/d5223c10643012af885505e2fc7950f81214b6
200
- - test/fixtures/objects/f0/184ad83045ea3a7e32fb547d5275f21686558d
201
- - test/fixtures/objects/fe/326fd5cb986e6ef3d83f02857fb5bc10333aa4
202
- - test/fixtures/refs/heads/master
203
- - test/integration/gateway_test.rb
204
- - test/integration/relation_test.rb
205
- - test/test_helper.rb
206
- has_rdoc:
149
+ summary: Git adapter for the rom-rb
150
+ test_files: []
@@ -1,58 +0,0 @@
1
- require 'test_helper'
2
- require 'virtus'
3
-
4
- describe 'Git gateway' do
5
- describe 'using the default (master) branch' do
6
- let(:path) { File.expand_path('./test/fixtures') }
7
- let(:rom_setup) do
8
- ROM.setup(
9
- commits: [
10
- :git,
11
- path,
12
- branch: 'refs/heads/master'
13
- ]
14
- )
15
- end
16
- let(:rom) { rom_setup.finalize }
17
-
18
- before do
19
- rom_setup.relation(:commits) do
20
- gateway :commits
21
-
22
- def by_sha1(sha1)
23
- restrict(sha1: sha1)
24
- end
25
-
26
- def by_committer(committer_name)
27
- restrict(committer: committer_name)
28
- end
29
- end
30
-
31
- rom_setup.mappers do
32
- define(:commits) do
33
- model(Class.new do
34
- include Virtus.model
35
-
36
- attribute :sha1, String
37
- attribute :message, String
38
- attribute :committer, String
39
- end)
40
-
41
- register_as :entity
42
- end
43
- end
44
- end
45
-
46
- describe 'env#relation' do
47
- it 'returns restricted and mapped object' do
48
- commit = rom.relation(:commits).as(:entity).by_sha1('101868c4ce62b7e96a1f7c3b64fa40285ee00d5e').to_a.first
49
-
50
- assert_equal '101868c4ce62b7e96a1f7c3b64fa40285ee00d5e', commit.sha1
51
- assert_equal 'commit (initial): Initial commit', commit.message
52
- assert_equal 'Franck Verrot', commit.committer
53
- end
54
- end
55
-
56
- # describe 'with a custom branch'
57
- end
58
- end
@@ -1,31 +0,0 @@
1
- require "test_helper"
2
-
3
- describe "Git Gateway" do
4
- let(:path) { File.expand_path("./test/fixtures") }
5
- let(:rom_setup) do
6
- ROM.setup(
7
- commits: [
8
- :git,
9
- path,
10
- branch: 'refs/heads/master'
11
- ]
12
- )
13
- end
14
-
15
- before do
16
- ROM.plugins do
17
- adapter :git do
18
- register :test_plugin, Module.new, type: :relation
19
- end
20
- end
21
- end
22
-
23
- describe "relation with plugin" do
24
- it "shouldn't raise error" do
25
- rom_setup.relation(:commits) do
26
- gateway :commits
27
- use :test_plugin
28
- end
29
- end
30
- end
31
- end
@@ -1,5 +0,0 @@
1
- gem 'minitest'
2
-
3
- require 'minitest/autorun'
4
- require 'rom-git'
5
- require 'pry'