repomen 0.1.0 → 0.1.1

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
  SHA1:
3
- metadata.gz: 63ac43befeaebea67aa8343a8f243d2ff9b112b6
4
- data.tar.gz: 2a2295e0dc6d2da195f433e9f7504021e0c3df04
3
+ metadata.gz: cb6865efd46b5cf841cd5f99cdeadb0889bea0fd
4
+ data.tar.gz: 31abc290a77820980ad0ca1c4ae974930919cebb
5
5
  SHA512:
6
- metadata.gz: 55440f797e16409a07b4d36c16a0199ddc6e4d37c1ee3c33fc46ebf3193722bec5421735c49eeac4c841f03d229ca9fa612637307cdff8d4367d9626e55ed256
7
- data.tar.gz: 5527d4fde6febe9fb05e7d3c017452606a009da6935711d0582ddd3ce054ee2d66ee202d7778905ae33ce449221102308545bb87cac09494552d69c7b454008f
6
+ metadata.gz: 2fe58a0f5771ceb6078557b0826e7086aa292dcd28d9094d8cd6bd722c456892c1d108d337b836d25fa91cbd8100f668a56e54a16e0412b9768cb9cf2a1d1614
7
+ data.tar.gz: c19d5e253d1378678f35e6f7feed8fa2d1310c24b09d29d83ccc1f012f852c57f294e882d890d9fd1077ce68561261de9ed848586b06f9c4d45d24a07d1e214e
@@ -1 +1 @@
1
- ruby-2.0.0
1
+ ruby-2.1.0
@@ -14,9 +14,21 @@ module Repomen
14
14
  @path = File.join(config.work_dir, path)
15
15
  end
16
16
 
17
+ def branch_name
18
+ raise NotImplementedError
19
+ end
20
+
21
+ def change_branch(name)
22
+ raise NotImplementedError
23
+ end
24
+
17
25
  def retrieve
18
26
  raise NotImplementedError
19
27
  end
28
+
29
+ def revision
30
+ raise NotImplementedError
31
+ end
20
32
  end
21
33
  end
22
34
  end
@@ -8,6 +8,20 @@ module Repomen
8
8
  # @todo Uses git's CLI, since Rugged is not playing nice GitHub
9
9
  # Why is that?
10
10
  class Git < Base
11
+ def branch_name
12
+ branch = nil
13
+ in_dir do
14
+ branch = git 'rev-parse', '--abbrev-ref', 'HEAD'
15
+ end
16
+ branch.strip
17
+ end
18
+
19
+ def change_branch(name)
20
+ in_dir do
21
+ git :checkout, name, '--quiet'
22
+ end
23
+ end
24
+
11
25
  # Removes the repo from the filesystem
12
26
  # @return [void]
13
27
  def discard
@@ -22,6 +36,15 @@ module Repomen
22
36
  else
23
37
  clone_repo
24
38
  end
39
+ $?.success?
40
+ end
41
+
42
+ def revision
43
+ rev = nil
44
+ in_dir do
45
+ rev = git 'rev-parse', 'HEAD'
46
+ end
47
+ rev.strip
25
48
  end
26
49
 
27
50
  private
@@ -30,9 +53,13 @@ module Repomen
30
53
  `git #{args.join(' ')}`
31
54
  end
32
55
 
56
+ def in_dir(dir = @path, &block)
57
+ Dir.chdir(dir, &block)
58
+ end
59
+
33
60
  def clone_repo
34
61
  FileUtils.mkdir_p path
35
- git :clone, url, path, '--depth=1 --quiet'
62
+ git(:clone, url, path, '--quiet')
36
63
  end
37
64
 
38
65
  def git_options
@@ -48,14 +75,13 @@ module Repomen
48
75
  end
49
76
 
50
77
  def pull
51
- old_dir = Dir.pwd
52
- Dir.chdir path
53
- git :pull, '--quiet'
54
- Dir.chdir old_dir
78
+ in_dir do
79
+ git(:pull, '--quiet')
80
+ end
55
81
  end
56
82
 
57
83
  def repo_exists?
58
- File.exists?(path) && File.directory?(path)
84
+ File.exist?( File.join(path, ".git") )
59
85
  end
60
86
  end
61
87
  end
@@ -14,12 +14,15 @@ module Repomen
14
14
  class Retriever
15
15
  include WithDefaultConfig
16
16
 
17
- attr_reader :url, :path
17
+ attr_reader :url
18
+ attr_reader :path
19
+ attr_reader :service
18
20
 
19
21
  def initialize(url, config = default_config, &block)
20
- service = Repo::Service.for(url)
21
- @handler = service.handler_class.new(url, repo_dir(service), config)
22
- @handler.retrieve
22
+ @url = url
23
+ @service = Repo::Service.for(url)
24
+ @handler = @service.handler_class.new(url, repo_dir(service), config)
25
+ @retrieved = @handler.retrieve
23
26
  @path = @handler.path
24
27
  if block
25
28
  block.call(@path)
@@ -27,11 +30,43 @@ module Repomen
27
30
  end
28
31
  end
29
32
 
33
+ def branch_name
34
+ @handler.branch_name
35
+ end
36
+
37
+ # Changes the branch of the retrieved repo.
38
+ # @param name [String] name of the branch
39
+ def change_branch(name)
40
+ @handler.change_branch(name)
41
+ end
42
+
30
43
  # Removes the repo from the filesystem
31
44
  def discard_repo
32
45
  @handler.discard
33
46
  end
34
47
 
48
+ # Returns +true+ if the repo was retrieved successfully
49
+ def retrieved?
50
+ @retrieved
51
+ end
52
+
53
+ # Returns the revision of the repo.
54
+ def revision
55
+ @handler.revision
56
+ end
57
+
58
+ def repo_name
59
+ @service.repo_name
60
+ end
61
+
62
+ def service_name
63
+ @service.name
64
+ end
65
+
66
+ def user_name
67
+ @service.user_name
68
+ end
69
+
35
70
  private
36
71
 
37
72
  def repo_dir(service)
@@ -1,3 +1,3 @@
1
1
  module Repomen
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -3,21 +3,28 @@ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
3
3
  describe ::Repomen::Retriever do
4
4
  let(:described_class) { ::Repomen::Retriever }
5
5
  let(:url) { "git@bitbucket.org:atlassian_tutorial/helloworld.git" }
6
+ let(:incorrect_url) { "git@bitbucket.org:atlassian_tutorial/helloworld123.git" }
6
7
 
7
8
  it "should retrieve the repo" do
8
9
  retriever = described_class.new(url)
9
- assert File.exists?(retriever.path)
10
+ assert retriever.retrieved?
11
+ assert File.exist?(retriever.path)
10
12
 
11
13
  retriever.discard_repo
12
- assert !File.exists?(retriever.path)
14
+ assert !File.exist?(retriever.path)
15
+ end
16
+
17
+ it "should retrieve the repo" do
18
+ retriever = described_class.new(incorrect_url)
19
+ refute retriever.retrieved?
13
20
  end
14
21
 
15
22
  it "should retrieve the repo, yield to block and discard the repo" do
16
23
  @path = nil
17
24
  described_class.new(url) do |path|
18
25
  @path = path
19
- assert File.exists?(@path)
26
+ assert File.exist?(@path)
20
27
  end
21
- assert !File.exists?(@path)
28
+ assert !File.exist?(@path)
22
29
  end
23
30
  end
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: repomen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - René Föhring
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-18 00:00:00.000000000 Z
11
+ date: 2014-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.5'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: simplecov
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '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
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: minitest
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '5.2'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '5.2'
83
83
  description: Interface wrapper for retrieving repos from GitHub and BitBucket
@@ -87,9 +87,9 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
- - .gitignore
91
- - .ruby-gemset
92
- - .ruby-version
90
+ - ".gitignore"
91
+ - ".ruby-gemset"
92
+ - ".ruby-version"
93
93
  - Gemfile
94
94
  - LICENSE.txt
95
95
  - README.md
@@ -126,17 +126,17 @@ require_paths:
126
126
  - lib
127
127
  required_ruby_version: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - '>='
134
+ - - ">="
135
135
  - !ruby/object:Gem::Version
136
136
  version: '0'
137
137
  requirements: []
138
138
  rubyforge_project:
139
- rubygems_version: 2.0.6
139
+ rubygems_version: 2.2.2
140
140
  signing_key:
141
141
  specification_version: 4
142
142
  summary: Interface wrapper for retrieving repos