vendorise 0.1.1 → 0.2.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.
- 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
|