geminstaller 0.5.3 → 0.5.4
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/History.txt +3 -0
- data/Manifest.txt +1 -0
- data/bin/geminstaller +1 -1
- data/lib/geminstaller.rb +1 -1
- data/lib/geminstaller/application.rb +5 -1
- data/lib/geminstaller/arg_parser.rb +5 -0
- data/lib/geminstaller/autogem.rb +1 -1
- data/lib/geminstaller/backward_compatibility.rb +7 -0
- data/lib/geminstaller/bundler_exporter.rb +19 -0
- data/lib/geminstaller/registry.rb +5 -1
- data/lib/geminstaller/requires.rb +1 -0
- data/lib/geminstaller/rogue_gem_finder.rb +1 -1
- data/lib/geminstaller/rubygems_version_checker.rb +9 -1
- data/lib/geminstaller/version_specifier.rb +1 -1
- data/website/src/index.page +2 -0
- metadata +12 -4
data/History.txt
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
== 0.5.4 / 2009-11-15
|
2
|
+
* Add -b / --bundler-export option to create bundler Gemfile - but make sure you only include direct dependencies, and let bundler handle the rest!
|
3
|
+
|
1
4
|
== 0.5.3 / 2009-08-25
|
2
5
|
* Many long overdue bugfixes and patches, see http://tinyurl.com/geminstaller-0-5-3-release for details.
|
3
6
|
* Thanks to Greg Fitzgerald, Britt Crawford, John Trupiano, Gabriel Gironda, and Eric Hodel for patches and assistance.
|
data/Manifest.txt
CHANGED
@@ -16,6 +16,7 @@ lib/geminstaller/application.rb
|
|
16
16
|
lib/geminstaller/arg_parser.rb
|
17
17
|
lib/geminstaller/autogem.rb
|
18
18
|
lib/geminstaller/backward_compatibility.rb
|
19
|
+
lib/geminstaller/bundler_exporter.rb
|
19
20
|
lib/geminstaller/config.rb
|
20
21
|
lib/geminstaller/config_builder.rb
|
21
22
|
lib/geminstaller/enhanced_stream_ui.rb
|
data/bin/geminstaller
CHANGED
data/lib/geminstaller.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module GemInstaller
|
2
2
|
class Application
|
3
3
|
# we have accessors instead of just writers so that we can ensure it is assembled correctly in the dependency injector test
|
4
|
-
attr_accessor :config_builder, :install_processor, :output_filter, :arg_parser, :args, :options, :rogue_gem_finder
|
4
|
+
attr_accessor :config_builder, :install_processor, :output_filter, :arg_parser, :args, :options, :rogue_gem_finder, :bundler_exporter
|
5
5
|
attr_writer :autogem
|
6
6
|
|
7
7
|
def initialize
|
@@ -14,6 +14,10 @@ module GemInstaller
|
|
14
14
|
if exit_flag_and_return_code[0]
|
15
15
|
return exit_flag_and_return_code[1]
|
16
16
|
end
|
17
|
+
if @options[:bundler_export]
|
18
|
+
@bundler_exporter.output(@config_builder.build_config)
|
19
|
+
return 0
|
20
|
+
end
|
17
21
|
gems = create_gems_from_config
|
18
22
|
if @options[:print_rogue_gems]
|
19
23
|
@rogue_gem_finder.print_rogue_gems(gems, @config_builder.config_file_paths_array)
|
@@ -47,6 +47,7 @@ module GemInstaller
|
|
47
47
|
help_msg = "Show this message."
|
48
48
|
print_rogue_gems_msg = "Print a report of all locally installed gems which are not specified\n" +
|
49
49
|
" in the geminstaller config file."
|
50
|
+
bundler_export_msg = "Export a Bundler manifest Gemfile based on the geminstaller config"
|
50
51
|
rubygems_output_msg = "Comma-delimited list of output types to show from internal:\n" +
|
51
52
|
" RubyGems command invocation.\n" +
|
52
53
|
" Examples:\n" +
|
@@ -88,6 +89,10 @@ module GemInstaller
|
|
88
89
|
@options[:print_rogue_gems] = true
|
89
90
|
end
|
90
91
|
|
92
|
+
opts.on("-b", "--bundler-export", bundler_export_msg) do
|
93
|
+
@options[:bundler_export] = true
|
94
|
+
end
|
95
|
+
|
91
96
|
opts.on("-rTYPES", "--rubygems-output=TYPES", String, rubygems_output_msg) do |rubygems_output_flags|
|
92
97
|
@unparsed_rubygems_output_flags = rubygems_output_flags
|
93
98
|
end
|
data/lib/geminstaller/autogem.rb
CHANGED
@@ -39,7 +39,7 @@ module GemInstaller
|
|
39
39
|
rescue Gem::Exception => e
|
40
40
|
exception_message = e.message
|
41
41
|
exception_message.strip!
|
42
|
-
error_message = "Error: GemInstaller failed to
|
42
|
+
error_message = "Error: GemInstaller failed to activate gem '#{name}', version '#{version}'. This may be because GemInstaller processes gems in order (was alphabetical prior to 0.5.0), and an earlier gem in your geminstaller.yml config already activated another version. Use the 'gem dependency [-R]' command to track this down, and reorder/edit your config as necessary. Original Gem::Exception was: '#{exception_message}'"
|
43
43
|
raise GemInstaller::GemInstallerError.new(error_message)
|
44
44
|
end
|
45
45
|
end
|
@@ -8,3 +8,10 @@ else
|
|
8
8
|
LIST_COMMAND_CLASS = Gem::Commands::ListCommand
|
9
9
|
QUERY_COMMAND_CLASS = Gem::Commands::QueryCommand
|
10
10
|
end
|
11
|
+
|
12
|
+
# >1.3.5 changed Gem::Version::Requirement to Gem::Requirement
|
13
|
+
if GemInstaller::RubyGemsVersionChecker.matches?('>1.3.5')
|
14
|
+
GemInstaller::REQUIREMENT_CLASS = Gem::Requirement
|
15
|
+
else
|
16
|
+
GemInstaller::REQUIREMENT_CLASS = Gem::Version::Requirement
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module GemInstaller
|
2
|
+
class BundlerExporter
|
3
|
+
attr_writer :output_proxy
|
4
|
+
|
5
|
+
def output(config)
|
6
|
+
output_string = convert(config)
|
7
|
+
@output_proxy.sysout output_string
|
8
|
+
output_string
|
9
|
+
end
|
10
|
+
|
11
|
+
def convert(config)
|
12
|
+
manifest = ""
|
13
|
+
config.gems.each do |gem|
|
14
|
+
manifest += %Q{gem "#{gem.name}", "#{gem.version}"\n}
|
15
|
+
end
|
16
|
+
manifest
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -4,7 +4,7 @@ module GemInstaller
|
|
4
4
|
attr_accessor :gem_runner, :gem_command_manager, :gem_list_checker, :app, :arg_parser, :options
|
5
5
|
attr_accessor :install_processor, :missing_dependency_finder, :valid_platform_selector
|
6
6
|
attr_accessor :output_listener, :outs_output_observer, :errs_output_observer, :output_filter, :autogem, :rogue_gem_finder
|
7
|
-
attr_accessor :gem_spec_manager, :source_index_search_adapter
|
7
|
+
attr_accessor :gem_spec_manager, :source_index_search_adapter, :bundler_exporter
|
8
8
|
|
9
9
|
if GemInstaller::RubyGemsVersionChecker.matches?('<=0.9.4')
|
10
10
|
attr_accessor :gem_interaction_handler, :noninteractive_chooser
|
@@ -37,6 +37,9 @@ module GemInstaller
|
|
37
37
|
@config_builder.file_reader = @file_reader
|
38
38
|
@config_builder.yaml_loader = @yaml_loader
|
39
39
|
@config_builder.output_filter = @output_filter
|
40
|
+
|
41
|
+
@bundler_exporter = GemInstaller::BundlerExporter.new
|
42
|
+
@bundler_exporter.output_proxy = @output_proxy
|
40
43
|
|
41
44
|
@gem_source_index = Gem::SourceIndex.from_installed_gems
|
42
45
|
@gem_source_index_proxy = GemInstaller::GemSourceIndexProxy.new
|
@@ -117,6 +120,7 @@ module GemInstaller
|
|
117
120
|
@app = GemInstaller::Application.new
|
118
121
|
@app.autogem = @autogem
|
119
122
|
@app.rogue_gem_finder = @rogue_gem_finder
|
123
|
+
@app.bundler_exporter = @bundler_exporter
|
120
124
|
@app.options = @options
|
121
125
|
@app.arg_parser = @arg_parser
|
122
126
|
@app.config_builder = @config_builder
|
@@ -46,6 +46,7 @@ require File.expand_path("#{dir}/../geminstaller")
|
|
46
46
|
require File.expand_path("#{dir}/application")
|
47
47
|
require File.expand_path("#{dir}/arg_parser")
|
48
48
|
require File.expand_path("#{dir}/autogem")
|
49
|
+
require File.expand_path("#{dir}/bundler_exporter")
|
49
50
|
require File.expand_path("#{dir}/config")
|
50
51
|
require File.expand_path("#{dir}/config_builder")
|
51
52
|
require File.expand_path("#{dir}/registry")
|
@@ -16,7 +16,7 @@ module GemInstaller
|
|
16
16
|
config_match_found_for_local = false
|
17
17
|
@config_gems_with_dependencies.each do |config_gem|
|
18
18
|
name_matches = config_gem.name == local_gem.name
|
19
|
-
config_gem_version_requirement =
|
19
|
+
config_gem_version_requirement = GemInstaller::REQUIREMENT_CLASS.new [config_gem.version]
|
20
20
|
local_gem_version = Gem::Version.new(local_gem.version)
|
21
21
|
version_matches = config_gem_version_requirement.satisfied_by?(local_gem_version)
|
22
22
|
if (name_matches and version_matches)
|
@@ -7,7 +7,15 @@ module GemInstaller
|
|
7
7
|
# system-rubygems version instead of the geminstaller-overridden version. Need to figure out how
|
8
8
|
# to re-parse 'rubygems/rubygems_version' and let it redefine 'Gem::RubyGemsVersion'
|
9
9
|
rubygems_version = options[:rubygems_version] ||= Gem::RubyGemsVersion
|
10
|
-
|
10
|
+
|
11
|
+
# Manually check here in addition to backward_compatibility.rb, to avoid circular dependency
|
12
|
+
if defined?(Gem::Requirement)
|
13
|
+
requirement_class = Gem::Requirement
|
14
|
+
else
|
15
|
+
requirement_class = Gem::Version::Requirement
|
16
|
+
end
|
17
|
+
|
18
|
+
requirement_class.new(version_spec).satisfied_by?(Gem::Version.new(rubygems_version))
|
11
19
|
end
|
12
20
|
end
|
13
21
|
end
|
@@ -3,7 +3,7 @@ module GemInstaller
|
|
3
3
|
# NOTE: available_versions should be sorted in descending order (highest versions first)
|
4
4
|
# This method will return the first matching version
|
5
5
|
def specify(version_requirement, available_versions, gem_name = nil)
|
6
|
-
rubygems_version_requirement =
|
6
|
+
rubygems_version_requirement = GemInstaller::REQUIREMENT_CLASS.new [version_requirement]
|
7
7
|
if available_versions.respond_to? :to_str
|
8
8
|
available_versions = available_versions.split(', ')
|
9
9
|
end
|
data/website/src/index.page
CHANGED
@@ -46,6 +46,8 @@ Please "report any others that you find":http://thewoolleyweb.lighthouseapp.com/
|
|
46
46
|
|
47
47
|
h2(#history). History
|
48
48
|
|
49
|
+
* 0.5.4
|
50
|
+
** Add -b / --bundler-export option to create bundler Gemfile - but make sure you only include direct dependencies, and let bundler handle the rest!
|
49
51
|
* 0.5.3
|
50
52
|
** Many long overdue bugfixes and patches, see http://tinyurl.com/geminstaller-0-5-3-release for details.
|
51
53
|
** Thanks to Greg Fitzgerald, Britt Crawford, John Trupiano, Gabriel Gironda, and Eric Hodel for patches and assistance.
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geminstaller
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 5
|
8
|
+
- 4
|
9
|
+
version: 0.5.4
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Chad Woolley
|
@@ -9,7 +14,7 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2009-
|
17
|
+
date: 2009-11-15 00:00:00 -07:00
|
13
18
|
default_executable:
|
14
19
|
dependencies: []
|
15
20
|
|
@@ -44,6 +49,7 @@ files:
|
|
44
49
|
- lib/geminstaller/arg_parser.rb
|
45
50
|
- lib/geminstaller/autogem.rb
|
46
51
|
- lib/geminstaller/backward_compatibility.rb
|
52
|
+
- lib/geminstaller/bundler_exporter.rb
|
47
53
|
- lib/geminstaller/config.rb
|
48
54
|
- lib/geminstaller/config_builder.rb
|
49
55
|
- lib/geminstaller/enhanced_stream_ui.rb
|
@@ -116,14 +122,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
116
122
|
requirements:
|
117
123
|
- - ">="
|
118
124
|
- !ruby/object:Gem::Version
|
125
|
+
segments:
|
126
|
+
- 0
|
119
127
|
version: "0"
|
120
|
-
version:
|
121
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
129
|
requirements:
|
123
130
|
- - ">="
|
124
131
|
- !ruby/object:Gem::Version
|
132
|
+
segments:
|
133
|
+
- 0
|
125
134
|
version: "0"
|
126
|
-
version:
|
127
135
|
requirements: []
|
128
136
|
|
129
137
|
rubyforge_project: geminstaller
|