asgit 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2a3ef352b417a8256bb2ebd10497bcc8c75204ba
4
+ data.tar.gz: 171ef7978ea71218aa65d57ee60a044014079217
5
+ SHA512:
6
+ metadata.gz: b54bbbd61edbe4f8c67ef66c6e79f180c09c65bdfc6ea142a3dd28608c4e45be493697b7d7422dfea8c1de764656ccb79c2c2adeb9a3fc55fe93e966f69cc10c
7
+ data.tar.gz: 610f6e59d1f2fc4a1c437b37e806317138027093f9a09365ceb771889064a1452737cbb729f07a4455b8a4adc05144c4616a1d7f30c5b529c89bfbce48c2adc6
@@ -6,7 +6,8 @@ module Asgit
6
6
  base_url: 'https://github.com',
7
7
  base_structure: "%{base_url}/%{organization}/%{project}",
8
8
  commit_uri: "commit/%{commit}",
9
- branch_uri: "tree/%{branch}"
9
+ branch_uri: "tree/%{branch}",
10
+ file_uri: "blob/%{branch}/%{file_path}%{line}"
10
11
  }
11
12
  }
12
13
 
data/lib/asgit/url.rb CHANGED
@@ -19,6 +19,24 @@ module Asgit
19
19
  File.join( project, Asgit.config.service.branch_uri % { branch: name } )
20
20
  end
21
21
 
22
+ def file file_path, options={}
23
+ file_path = file_path.gsub( /^\//, '' )
24
+ branch = options.fetch(:branch) { 'master' }
25
+ line = options.has_key?(:line) ? format_lines(options[:line]) : ''
26
+
27
+ File.join( project, Asgit.config.service.file_uri % { file_path: file_path, branch: branch, line: line } )
28
+ end
29
+
30
+ private
31
+
32
+ def format_lines input
33
+ if input.respond_to?(:begin) && input.respond_to?(:end)
34
+ return "#L#{input.begin}-L#{input.end}"
35
+ else
36
+ return "#L#{input}"
37
+ end
38
+ end
39
+
22
40
  end
23
41
 
24
42
  end
data/lib/asgit/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Asgit
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/asgit.rb CHANGED
@@ -1,7 +1,7 @@
1
- require 'asgit/shell'
2
- require 'asgit/url'
3
- require 'asgit/config'
4
- require 'asgit/services'
1
+ require_relative 'asgit/shell'
2
+ require_relative 'asgit/url'
3
+ require_relative 'asgit/config'
4
+ require_relative 'asgit/services'
5
5
 
6
6
  module Asgit
7
7
  class << self
@@ -14,6 +14,12 @@ describe Asgit::Url do
14
14
  Asgit::Services.send(:remove_instance_variable, "@_github")
15
15
  end
16
16
 
17
+ describe "::project" do
18
+ it "returns correct url for the project" do
19
+ expect( Asgit::Url.project ).to eq "https://github.com/wu/tang"
20
+ end
21
+ end
22
+
17
23
  describe "::commit" do
18
24
  it "returns the correct url for the provided commit" do
19
25
  expect( Asgit::Url.commit "woot" ).to eq "https://github.com/wu/tang/commit/woot"
@@ -26,4 +32,26 @@ describe Asgit::Url do
26
32
  end
27
33
  end
28
34
 
35
+ describe "::file" do
36
+ it "returns the correct url for a file" do
37
+ expect( Asgit::Url.file "lib/tang.rb" ).to eq "https://github.com/wu/tang/blob/master/lib/tang.rb"
38
+ end
39
+
40
+ it "adjust for fives given with a leading slash" do
41
+ expect( Asgit::Url.file "/lib/tang.rb" ).to eq "https://github.com/wu/tang/blob/master/lib/tang.rb"
42
+ end
43
+
44
+ it "returns the correct url for a file with a passed branch" do
45
+ expect( Asgit::Url.file "/lib/tang.rb", branch: 'dev' ).to eq "https://github.com/wu/tang/blob/dev/lib/tang.rb"
46
+ end
47
+
48
+ it "returns the correct url for a file with a line number" do
49
+ expect( Asgit::Url.file "/lib/tang.rb", branch: 'dev', line: "15" ).to eq "https://github.com/wu/tang/blob/dev/lib/tang.rb#L15"
50
+ end
51
+
52
+ it "returns the correct url for a file with a range of line numbers" do
53
+ expect( Asgit::Url.file "/lib/tang.rb", branch: 'dev', line: (15..18) ).to eq "https://github.com/wu/tang/blob/dev/lib/tang.rb#L15-L18"
54
+ end
55
+ end
56
+
29
57
  end
metadata CHANGED
@@ -1,17 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asgit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Steven Sloan
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-09-06 00:00:00.000000000 Z
11
+ date: 2013-11-01 00:00:00.000000000 Z
13
12
  dependencies: []
14
- description: ! ' A simple query interface for git. '
13
+ description: ' A simple query interface for git. '
15
14
  email:
16
15
  - stevenosloan@gmail.com
17
16
  executables: []
@@ -34,27 +33,26 @@ files:
34
33
  homepage: http://github.com/stevenosloan/asgit
35
34
  licenses:
36
35
  - MIT
36
+ metadata: {}
37
37
  post_install_message:
38
38
  rdoc_options: []
39
39
  require_paths:
40
40
  - lib
41
41
  required_ruby_version: !ruby/object:Gem::Requirement
42
- none: false
43
42
  requirements:
44
- - - ! '>='
43
+ - - '>='
45
44
  - !ruby/object:Gem::Version
46
45
  version: '0'
47
46
  required_rubygems_version: !ruby/object:Gem::Requirement
48
- none: false
49
47
  requirements:
50
- - - ! '>='
48
+ - - '>='
51
49
  - !ruby/object:Gem::Version
52
50
  version: '0'
53
51
  requirements: []
54
52
  rubyforge_project:
55
- rubygems_version: 1.8.25
53
+ rubygems_version: 2.0.5
56
54
  signing_key:
57
- specification_version: 3
55
+ specification_version: 4
58
56
  summary: A simple query interface for git
59
57
  test_files:
60
58
  - spec/asgit/config_spec.rb
@@ -64,4 +62,3 @@ test_files:
64
62
  - spec/spec_helper.rb
65
63
  - spec/support/eat_stdout.rb
66
64
  - spec/support/fake_stdout.rb
67
- has_rdoc: