francois-gip 0.1.0 → 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.
- data/VERSION +1 -1
- data/features/import.feature +3 -3
- data/features/step_definitions/gip_steps.rb +36 -6
- data/features/support/env.rb +28 -0
- data/gip.gemspec +2 -2
- data/lib/gip.rb +5 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/features/import.feature
CHANGED
@@ -5,8 +5,8 @@ Feature: Importing a repository
|
|
5
5
|
|
6
6
|
Scenario: Importing into an existing repository
|
7
7
|
Given a project
|
8
|
-
And a vendor project named
|
9
|
-
When I run
|
8
|
+
And a vendor project named "libcalc"
|
9
|
+
When I run "gip import __libcalc__ vendor/libcalc"
|
10
10
|
Then I should see "Imported __libcalc__ into vendor/libcalc"
|
11
|
-
And the file
|
11
|
+
And the file ".gipinfo" should contain "vendor/libcalc,__libcalc__"
|
12
12
|
And the working copy should be clean
|
@@ -1,12 +1,42 @@
|
|
1
1
|
Given /^a project$/ do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
sh "
|
2
|
+
Dir.chdir(project_dir) do
|
3
|
+
sh "cd #{project_dir}"
|
4
|
+
sh "touch README"
|
5
|
+
sh "git init"
|
6
|
+
sh "git add --all"
|
7
|
+
sh "git commit --message 'Initial commit'"
|
8
|
+
sh "ls -A"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
Given /^a vendor project named "([^"]+)"$/ do |name|
|
13
|
+
vendor(name) do |path|
|
14
|
+
sh "cd #{path}"
|
15
|
+
sh "touch README"
|
16
|
+
sh "mkdir lib"
|
17
|
+
sh "touch lib/#{name}.rb"
|
7
18
|
sh "git init", :verbose => true
|
8
19
|
sh "git add --all", :verbose => true
|
9
20
|
sh "git commit --message 'Initial commit'", :verbose => true
|
10
|
-
sh "ls -
|
21
|
+
sh "ls -lA", :verbose => true
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
When /^I run "gip import __([^_]+)__ ([^"]+)"$/ do |vendor, target|
|
26
|
+
Dir.chdir(project_dir) do
|
27
|
+
sh "gip import #{vendor_dirs[vendor]}/.git #{target}", :verbose => true
|
11
28
|
end
|
29
|
+
pending
|
30
|
+
end
|
31
|
+
|
32
|
+
Then /^I should see "([^\"]*)"$/ do |arg1|
|
33
|
+
pending
|
34
|
+
end
|
35
|
+
|
36
|
+
Then /^the file '\.gipinfo' should contain 'vendor\/libcalc,__libcalc__'$/ do
|
37
|
+
pending
|
38
|
+
end
|
39
|
+
|
40
|
+
Then /^the working copy should be clean$/ do
|
41
|
+
pending
|
12
42
|
end
|
data/features/support/env.rb
CHANGED
@@ -5,4 +5,32 @@ require "fileutils"
|
|
5
5
|
|
6
6
|
require "test/unit/assertions"
|
7
7
|
|
8
|
+
module GipHelpers
|
9
|
+
def project_dir
|
10
|
+
@project_dir ||= begin
|
11
|
+
path = Pathname.new(Dir.tmpdir) + "gip/#{Process.pid}/project-dir"
|
12
|
+
path.mkpath
|
13
|
+
path
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def reset_vendors!
|
18
|
+
@vendor_dirs.values.each {|dir| dir.rmtree }
|
19
|
+
@vendor_dirs = Hash.new
|
20
|
+
end
|
21
|
+
|
22
|
+
def vendor_dirs
|
23
|
+
@vendor_dirs
|
24
|
+
end
|
25
|
+
|
26
|
+
def vendor(basename)
|
27
|
+
Pathname.new(Dir.tmpdir) / "gip" / Process.pid.to_s / basename
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
World(GipHelpers)
|
8
32
|
World(Test::Unit::Assertions)
|
33
|
+
|
34
|
+
Before do
|
35
|
+
reset_vendors!
|
36
|
+
end
|
data/gip.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{gip}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.2.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Fran\303\247ois Beausoleil"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-07-13}
|
10
10
|
s.default_executable = %q{gip}
|
11
11
|
s.email = %q{francois@teksol.info}
|
12
12
|
s.executables = ["gip"]
|
data/lib/gip.rb
CHANGED
@@ -21,7 +21,11 @@ In all cases, a .gipinfo file will be created/updated with the correct remotes s
|
|
21
21
|
DESC
|
22
22
|
method_options :commit => :optional, :remote => :optional, :verbose => 0
|
23
23
|
def import(repository_url, path=nil)
|
24
|
-
uri =
|
24
|
+
uri = begin
|
25
|
+
URI.parse(repository_url)
|
26
|
+
rescue URI::InvalidURIError
|
27
|
+
URI.parse("git://" + repository_url.split("@", 2).last)
|
28
|
+
end
|
25
29
|
path = File.basename(uri.path).sub(File.extname(uri.path), "") unless path
|
26
30
|
name = options[:remote]
|
27
31
|
name = File.basename(uri.path).sub(File.extname(uri.path), "") unless name
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: francois-gip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Fran\xC3\xA7ois Beausoleil"
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-07-13 00:00:00 -07:00
|
13
13
|
default_executable: gip
|
14
14
|
dependencies: []
|
15
15
|
|