pallan-gem_import_export 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/gem_import_export.gemspec +48 -0
- data/lib/rubygems/commands/export_command.rb +30 -8
- data/lib/rubygems/commands/import_command.rb +29 -24
- metadata +4 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{gem_import_export}
|
5
|
+
s.version = "0.0.2"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Peer Allan"]
|
9
|
+
s.date = %q{2009-05-11}
|
10
|
+
s.email = %q{peer@canadadrugs.com}
|
11
|
+
s.extra_rdoc_files = [
|
12
|
+
"LICENSE",
|
13
|
+
"README.rdoc"
|
14
|
+
]
|
15
|
+
s.files = [
|
16
|
+
".document",
|
17
|
+
".gitignore",
|
18
|
+
"LICENSE",
|
19
|
+
"README.rdoc",
|
20
|
+
"Rakefile",
|
21
|
+
"VERSION",
|
22
|
+
"gem_import_export.gemspec",
|
23
|
+
"lib/rubygems/commands/export_command.rb",
|
24
|
+
"lib/rubygems/commands/import_command.rb",
|
25
|
+
"lib/rubygems_plugin.rb",
|
26
|
+
"spec/gem_import_export_spec.rb",
|
27
|
+
"spec/spec_helper.rb"
|
28
|
+
]
|
29
|
+
s.homepage = %q{http://github.com/pallan/gem_import_export}
|
30
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
31
|
+
s.require_paths = ["lib"]
|
32
|
+
s.rubygems_version = %q{1.3.3}
|
33
|
+
s.summary = %q{TODO}
|
34
|
+
s.test_files = [
|
35
|
+
"spec/gem_import_export_spec.rb",
|
36
|
+
"spec/spec_helper.rb"
|
37
|
+
]
|
38
|
+
|
39
|
+
if s.respond_to? :specification_version then
|
40
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
41
|
+
s.specification_version = 3
|
42
|
+
|
43
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
44
|
+
else
|
45
|
+
end
|
46
|
+
else
|
47
|
+
end
|
48
|
+
end
|
@@ -1,29 +1,51 @@
|
|
1
1
|
require 'rubygems/command'
|
2
|
-
require 'rubygems/commands/query_command'
|
3
2
|
|
4
3
|
##
|
5
4
|
# An alternate to Gem::Commands::QueryCommand that searches for gems starting
|
6
5
|
# with the the supplied argument.
|
7
6
|
|
8
|
-
class Gem::Commands::ExportCommand < Gem::
|
7
|
+
class Gem::Commands::ExportCommand < Gem::Command
|
9
8
|
|
10
9
|
def initialize
|
11
10
|
super 'export', 'Dumps your currently installed gems into yaml'
|
12
|
-
|
13
|
-
remove_option('--name-matches')
|
14
|
-
options[:format] = 'yaml'
|
15
11
|
end
|
16
12
|
|
17
13
|
def arguments # :nodoc:
|
18
|
-
"
|
14
|
+
"GEMFILE location to save the export to"
|
19
15
|
end
|
20
16
|
|
21
17
|
def defaults_str # :nodoc:
|
22
|
-
"
|
18
|
+
""
|
23
19
|
end
|
24
20
|
|
25
21
|
def usage # :nodoc:
|
26
|
-
"#{program_name}
|
22
|
+
"#{program_name} GEMFILE"
|
23
|
+
end
|
24
|
+
|
25
|
+
def execute
|
26
|
+
|
27
|
+
export_file = get_one_optional_argument
|
28
|
+
|
29
|
+
unless export_file then
|
30
|
+
raise Gem::CommandLineError,
|
31
|
+
"Please specify a file to save the export to"
|
32
|
+
end
|
33
|
+
|
34
|
+
dep = Gem::Dependency.new //, Gem::Requirement.default
|
35
|
+
specs = Gem.source_index.search dep
|
36
|
+
|
37
|
+
gems = []
|
38
|
+
|
39
|
+
specs.map do |spec|
|
40
|
+
gems << {
|
41
|
+
:name => spec.name,
|
42
|
+
:version => spec.version.to_s,
|
43
|
+
:install_options => ''
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
output = {'sources' => Gem.sources, 'gems' => gems}
|
48
|
+
say output.to_yaml
|
27
49
|
end
|
28
50
|
|
29
51
|
end
|
@@ -16,34 +16,39 @@ class Gem::Commands::ImportCommand < Gem::Commands::InstallCommand
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def execute
|
19
|
+
gemspec = get_one_gem_name
|
20
|
+
|
21
|
+
unless gemspec then
|
22
|
+
raise Gem::CommandLineError,
|
23
|
+
"Please specify a gem yaml file on the command line"
|
24
|
+
end
|
25
|
+
|
26
|
+
unless File.exist?(gemspec) then
|
27
|
+
raise Gem::CommandLineError,
|
28
|
+
"Specified file #{gemspec} does not exist"
|
29
|
+
end
|
30
|
+
|
19
31
|
options[:ignore_dependencies] = true
|
20
32
|
installed_gems = []
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
g[:
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
inst.installed_gems.each do |spec|
|
32
|
-
say "Successfully installed #{spec.full_name}"
|
33
|
-
end
|
34
|
-
|
35
|
-
installed_gems.push(*inst.installed_gems)
|
36
|
-
rescue Gem::InstallError => e
|
37
|
-
alert_error "Error installing #{gem_name}:\n\t#{e.message}"
|
38
|
-
exit_code |= 1
|
39
|
-
rescue Gem::GemNotFoundException => e
|
40
|
-
alert_error e.message
|
41
|
-
exit_code |= 2
|
42
|
-
end
|
33
|
+
|
34
|
+
data = YAML.load_file( gemspec )
|
35
|
+
data['gems'].each do |g|
|
36
|
+
begin
|
37
|
+
inst = Gem::DependencyInstaller.new options
|
38
|
+
inst.install g[:name], g[:version]
|
39
|
+
|
40
|
+
inst.installed_gems.each do |spec|
|
41
|
+
say "Successfully installed #{spec.full_name}"
|
43
42
|
end
|
43
|
+
|
44
|
+
installed_gems.push(*inst.installed_gems)
|
45
|
+
rescue Gem::InstallError => e
|
46
|
+
alert_error "Error installing #{gem_name}:\n\t#{e.message}"
|
47
|
+
exit_code |= 1
|
48
|
+
rescue Gem::GemNotFoundException => e
|
49
|
+
alert_error e.message
|
50
|
+
exit_code |= 2
|
44
51
|
end
|
45
|
-
else
|
46
|
-
alert_error "Gemspec file not found: #{gemspec}"
|
47
52
|
end
|
48
53
|
end
|
49
54
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pallan-gem_import_export
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peer Allan
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-05-
|
12
|
+
date: 2009-05-11 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -29,6 +29,7 @@ files:
|
|
29
29
|
- README.rdoc
|
30
30
|
- Rakefile
|
31
31
|
- VERSION
|
32
|
+
- gem_import_export.gemspec
|
32
33
|
- lib/rubygems/commands/export_command.rb
|
33
34
|
- lib/rubygems/commands/import_command.rb
|
34
35
|
- lib/rubygems_plugin.rb
|
@@ -59,7 +60,7 @@ rubyforge_project:
|
|
59
60
|
rubygems_version: 1.2.0
|
60
61
|
signing_key:
|
61
62
|
specification_version: 3
|
62
|
-
summary:
|
63
|
+
summary: TODO
|
63
64
|
test_files:
|
64
65
|
- spec/gem_import_export_spec.rb
|
65
66
|
- spec/spec_helper.rb
|