vendorise 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vendorise/arborist.rb +19 -0
- data/lib/vendorise/parser.rb +9 -7
- data/lib/vendorise/tasks.rb +6 -4
- data/lib/vendorise/version.rb +1 -1
- data/spec/lib/vendorise/arborist_spec.rb +26 -0
- data/spec/lib/vendorise/parser_spec.rb +7 -7
- data/spec/lib/vendorise/tasks_spec.rb +10 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71fc0702ccecbcf00c3ac4fe2f66dfe8f405129c
|
4
|
+
data.tar.gz: 906e46e59a64be9defc2857adba66e40fd58e6b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a230aee1a198f2c322440afc3af3c349d3634910b683845e71d59cb7f28d490ae497d4527c7a5924d0da117339ec46ee1b145e9b80e4a859c5cc2cc59facd50
|
7
|
+
data.tar.gz: c12576e097bddb15168f026a7fb8aeecd52c51995808bb63c9fd0a0c35976b74e97964be7c08be5e430aeaddb44aa867ced7d3f7b4c7a32ec4f0958ab0a5a9f9
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Vendorise
|
2
|
+
class Arborist
|
3
|
+
attr_reader :path, :url
|
4
|
+
|
5
|
+
def initialize(path, url)
|
6
|
+
@path = path
|
7
|
+
@url = url
|
8
|
+
end
|
9
|
+
|
10
|
+
def subtree_already_exists?
|
11
|
+
Dir.exist?(path)
|
12
|
+
end
|
13
|
+
|
14
|
+
def subtree_command
|
15
|
+
cmd = subtree_already_exists? ? "pull" : "add"
|
16
|
+
"git subtree #{cmd} --prefix #{path} #{url} master --squash"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/vendorise/parser.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
module Vendorise
|
2
2
|
class Parser
|
3
|
+
attr_reader :url
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
end
|
5
|
+
def initialize(url)
|
6
|
+
@url = url
|
7
|
+
end
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
end
|
9
|
+
def gem_url
|
10
|
+
url =~ /^\s+$/ ? nil : url
|
12
11
|
end
|
13
12
|
|
13
|
+
def gem_name
|
14
|
+
File.basename url, ".git"
|
15
|
+
end
|
14
16
|
end
|
15
17
|
end
|
data/lib/vendorise/tasks.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
require "rake"
|
2
2
|
require_relative "parser"
|
3
|
+
require_relative "arborist"
|
3
4
|
|
4
5
|
namespace :vendorise do
|
5
6
|
desc "Installs a gem from the specified url to /vendor/gems"
|
6
7
|
task :gem, :url do |t, args|
|
7
|
-
|
8
|
-
|
9
|
-
cmd = Dir.exist?(path) ? "pull" : "add"
|
8
|
+
parser = Vendorise::Parser.new(args[:url])
|
9
|
+
url = parser.gem_url or raise "Please specify a valid url for the gem"
|
10
10
|
|
11
|
-
|
11
|
+
command = Vendorise::Arborist.new("vendor/gems/#{parser.gem_name}", url).subtree_command
|
12
|
+
|
13
|
+
system(command)
|
12
14
|
end
|
13
15
|
end
|
data/lib/vendorise/version.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative "../../spec_helper"
|
2
|
+
require_relative "../../../lib/vendorise/arborist"
|
3
|
+
|
4
|
+
module Vendorise
|
5
|
+
describe Arborist do
|
6
|
+
describe :subtree_command do
|
7
|
+
subject { Arborist.new "foo/bar", "git@github.com:New-Bamboo/vendorise.git" }
|
8
|
+
|
9
|
+
context "when #subtree_already_exists? is false" do
|
10
|
+
before { allow(subject).to receive(:subtree_already_exists?).and_return(false) }
|
11
|
+
|
12
|
+
it "is git subtree add" do
|
13
|
+
expect(subject.subtree_command).to eq "git subtree add --prefix foo/bar git@github.com:New-Bamboo/vendorise.git master --squash"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "when #subtree_already_exists? is true" do
|
18
|
+
before { allow(subject).to receive(:subtree_already_exists?).and_return(true) }
|
19
|
+
|
20
|
+
it "is git subtree pull" do
|
21
|
+
expect(subject.subtree_command).to eq "git subtree pull --prefix foo/bar git@github.com:New-Bamboo/vendorise.git master --squash"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -1,33 +1,33 @@
|
|
1
|
-
require_relative "../../spec_helper
|
1
|
+
require_relative "../../spec_helper"
|
2
2
|
require_relative "../../../lib/vendorise/parser"
|
3
3
|
|
4
4
|
module Vendorise
|
5
5
|
describe Parser do
|
6
6
|
describe :gem_url do
|
7
7
|
it "is nil for pure whitespace urls" do
|
8
|
-
expect(
|
8
|
+
expect(Parser.new(" ").gem_url).to eq nil
|
9
9
|
end
|
10
10
|
|
11
11
|
it "is nil for nil urls" do
|
12
|
-
expect(
|
12
|
+
expect(Parser.new(nil).gem_url).to eq nil
|
13
13
|
end
|
14
14
|
|
15
15
|
it "is a http url for a http url" do
|
16
|
-
expect(
|
16
|
+
expect(Parser.new("https://github.com/New-Bamboo/vendorise.git").gem_url).to eq "https://github.com/New-Bamboo/vendorise.git"
|
17
17
|
end
|
18
18
|
|
19
19
|
it "is a ssh url for a ssh url" do
|
20
|
-
expect(
|
20
|
+
expect(Parser.new("git@github.com:New-Bamboo/vendorise.git").gem_url).to eq "git@github.com:New-Bamboo/vendorise.git"
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
describe :gem_name do
|
25
25
|
it "is the last part of the path for a http url" do
|
26
|
-
expect(
|
26
|
+
expect(Parser.new("https://github.com/New-Bamboo/vendorise.git").gem_name).to eq "vendorise"
|
27
27
|
end
|
28
28
|
|
29
29
|
it "is the last part of the path for a ssh url" do
|
30
|
-
expect(
|
30
|
+
expect(Parser.new("git@github.com:New-Bamboo/vendorise.git").gem_name).to eq "vendorise"
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
@@ -12,5 +12,15 @@ module Vendorise
|
|
12
12
|
it "accepts a url argument" do
|
13
13
|
expect(task.arg_names).to match_array [:url]
|
14
14
|
end
|
15
|
+
|
16
|
+
it "creates a new arborist and passes it's command to system" do
|
17
|
+
fake_arborist = double("Arborist", subtree_command: "touch foo.tmp")
|
18
|
+
allow(Vendorise::Arborist).to receive(:new).with("vendor/gems/vendorise", "git@github.com:New-Bamboo/vendorise.git").and_return(fake_arborist)
|
19
|
+
|
20
|
+
task.invoke("git@github.com:New-Bamboo/vendorise.git")
|
21
|
+
|
22
|
+
expect(File.exist?("foo.tmp")).to be true
|
23
|
+
File.delete("foo.tmp")
|
24
|
+
end
|
15
25
|
end
|
16
26
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vendorise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Iain Beeston
|
@@ -66,9 +66,11 @@ files:
|
|
66
66
|
- README.md
|
67
67
|
- Rakefile
|
68
68
|
- lib/vendorise.rb
|
69
|
+
- lib/vendorise/arborist.rb
|
69
70
|
- lib/vendorise/parser.rb
|
70
71
|
- lib/vendorise/tasks.rb
|
71
72
|
- lib/vendorise/version.rb
|
73
|
+
- spec/lib/vendorise/arborist_spec.rb
|
72
74
|
- spec/lib/vendorise/parser_spec.rb
|
73
75
|
- spec/lib/vendorise/tasks_spec.rb
|
74
76
|
- spec/spec_helper.rb
|
@@ -98,6 +100,7 @@ signing_key:
|
|
98
100
|
specification_version: 4
|
99
101
|
summary: Uses git subtree to download the source for a gem into /vendor/gems
|
100
102
|
test_files:
|
103
|
+
- spec/lib/vendorise/arborist_spec.rb
|
101
104
|
- spec/lib/vendorise/parser_spec.rb
|
102
105
|
- spec/lib/vendorise/tasks_spec.rb
|
103
106
|
- spec/spec_helper.rb
|