bundler 1.8.9 → 1.9.0.pre

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bundler might be problematic. Click here for more details.

Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +9 -7
  3. data/CHANGELOG.md +8 -33
  4. data/Rakefile +51 -8
  5. data/lib/bundler/cli/gem.rb +20 -1
  6. data/lib/bundler/cli/install.rb +1 -1
  7. data/lib/bundler/definition.rb +8 -12
  8. data/lib/bundler/dep_proxy.rb +2 -2
  9. data/lib/bundler/installer.rb +12 -18
  10. data/lib/bundler/resolver.rb +168 -383
  11. data/lib/bundler/rubygems_ext.rb +1 -1
  12. data/lib/bundler/rubygems_integration.rb +6 -14
  13. data/lib/bundler/runtime.rb +3 -0
  14. data/lib/bundler/shared_helpers.rb +12 -7
  15. data/lib/bundler/source.rb +0 -5
  16. data/lib/bundler/source/path.rb +2 -1
  17. data/lib/bundler/source/path/installer.rb +0 -2
  18. data/lib/bundler/source/rubygems.rb +9 -11
  19. data/lib/bundler/templates/newgem/Rakefile.tt +0 -1
  20. data/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
  21. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo.rb +5 -0
  22. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/dependency_graph.rb +266 -0
  23. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/errors.rb +69 -0
  24. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/gem_metadata.rb +3 -0
  25. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/modules/specification_provider.rb +90 -0
  26. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/modules/ui.rb +63 -0
  27. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/resolution.rb +412 -0
  28. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/resolver.rb +43 -0
  29. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/state.rb +43 -0
  30. data/lib/bundler/vendor/{thor.rb → thor-0.19.1/lib/thor.rb} +57 -53
  31. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/actions.rb +34 -34
  32. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/actions/create_file.rb +7 -7
  33. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/actions/create_link.rb +2 -2
  34. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/actions/directory.rb +11 -11
  35. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/actions/empty_directory.rb +2 -2
  36. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/actions/file_manipulation.rb +14 -14
  37. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/actions/inject_into_file.rb +24 -24
  38. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/base.rb +71 -71
  39. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/command.rb +8 -8
  40. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/core_ext/hash_with_indifferent_access.rb +2 -2
  41. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/core_ext/io_binary_read.rb +1 -1
  42. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/core_ext/ordered_hash.rb +2 -2
  43. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/error.rb +3 -3
  44. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/group.rb +27 -27
  45. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/invocation.rb +16 -11
  46. data/lib/bundler/vendor/thor-0.19.1/lib/thor/line_editor.rb +17 -0
  47. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/line_editor/basic.rb +2 -2
  48. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/line_editor/readline.rb +7 -7
  49. data/lib/bundler/vendor/thor-0.19.1/lib/thor/parser.rb +4 -0
  50. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/parser/argument.rb +7 -7
  51. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/parser/arguments.rb +10 -10
  52. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/parser/option.rb +14 -10
  53. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/parser/options.rb +12 -12
  54. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/rake_compat.rb +14 -14
  55. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/runner.rb +76 -76
  56. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/shell.rb +18 -18
  57. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/shell/basic.rb +31 -30
  58. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/shell/color.rb +10 -10
  59. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/shell/html.rb +28 -28
  60. data/lib/bundler/vendor/{thor → thor-0.19.1/lib/thor}/util.rb +61 -61
  61. data/lib/bundler/vendor/thor-0.19.1/lib/thor/version.rb +3 -0
  62. data/lib/bundler/vendored_molinillo.rb +5 -0
  63. data/lib/bundler/vendored_thor.rb +3 -6
  64. data/lib/bundler/version.rb +1 -1
  65. metadata +44 -35
  66. data/lib/bundler/vendor/.document +0 -0
  67. data/lib/bundler/vendor/thor/line_editor.rb +0 -17
  68. data/lib/bundler/vendor/thor/parser.rb +0 -4
  69. data/lib/bundler/vendor/thor/version.rb +0 -3
@@ -1,4 +1,4 @@
1
- class Thor
1
+ class Bundler::Thor
2
2
  class Command < Struct.new(:name, :description, :long_description, :usage, :options)
3
3
  FILE_REGEXP = /^#{Regexp.escape(File.dirname(__FILE__))}/
4
4
 
@@ -45,12 +45,12 @@ class Thor
45
45
  end
46
46
  formatted = "#{klass.namespace.split(':').last} " if subcommand
47
47
 
48
- formatted ||= ''
48
+ formatted ||= ""
49
49
 
50
50
  # Add usage with required arguments
51
51
  formatted << if klass && !klass.arguments.empty?
52
52
  usage.to_s.gsub(/^#{name}/) do |match|
53
- match << ' ' << klass.arguments.map { |a| a.usage }.compact.join(' ')
53
+ match << " " << klass.arguments.map { |a| a.usage }.compact.join(" ")
54
54
  end
55
55
  else
56
56
  usage.to_s
@@ -70,7 +70,7 @@ class Thor
70
70
  end
71
71
 
72
72
  def required_options
73
- @required_options ||= options.map { |_, o| o.usage if o.required? }.compact.sort.join(' ')
73
+ @required_options ||= options.map { |_, o| o.usage if o.required? }.compact.sort.join(" ")
74
74
  end
75
75
 
76
76
  # Given a target, checks if this class name is a public method.
@@ -88,15 +88,15 @@ class Thor
88
88
  end
89
89
 
90
90
  def sans_backtrace(backtrace, caller) #:nodoc:
91
- saned = backtrace.reject { |frame| frame =~ FILE_REGEXP || (frame =~ /\.java:/ && RUBY_PLATFORM =~ /java/) }
91
+ saned = backtrace.reject { |frame| frame =~ FILE_REGEXP || (frame =~ /\.java:/ && RUBY_PLATFORM =~ /java/) || (frame =~ /^kernel\// && RUBY_ENGINE =~ /rbx/) }
92
92
  saned - caller
93
93
  end
94
94
 
95
95
  def handle_argument_error?(instance, error, caller)
96
- not_debugging?(instance) && error.message =~ /wrong number of arguments/ && begin
96
+ not_debugging?(instance) && (error.message =~ /wrong number of arguments/ || error.message =~ /given \d*, expected \d*/) && begin
97
97
  saned = sans_backtrace(error.backtrace, caller)
98
98
  # Ruby 1.9 always include the called method in the backtrace
99
- saned.empty? || (saned.size == 1 && RUBY_VERSION >= '1.9')
99
+ saned.empty? || (saned.size == 1 && RUBY_VERSION >= "1.9")
100
100
  end
101
101
  end
102
102
 
@@ -118,7 +118,7 @@ class Thor
118
118
  # A dynamic command that handles method missing scenarios.
119
119
  class DynamicCommand < Command
120
120
  def initialize(name, options = nil)
121
- super(name.to_s, 'A dynamically-generated command', name.to_s, name.to_s, options)
121
+ super(name.to_s, "A dynamically-generated command", name.to_s, name.to_s, options)
122
122
  end
123
123
 
124
124
  def run(instance, args = [])
@@ -1,8 +1,8 @@
1
- class Thor
1
+ class Bundler::Thor
2
2
  module CoreExt #:nodoc:
3
3
  # A hash with indifferent access and magic predicates.
4
4
  #
5
- # hash = Thor::CoreExt::HashWithIndifferentAccess.new 'foo' => 'bar', 'baz' => 'bee', 'force' => true
5
+ # hash = Bundler::Thor::CoreExt::HashWithIndifferentAccess.new 'foo' => 'bar', 'baz' => 'bee', 'force' => true
6
6
  #
7
7
  # hash[:foo] #=> 'bar'
8
8
  # hash['foo'] #=> 'bar'
@@ -2,7 +2,7 @@ class IO #:nodoc:
2
2
  class << self
3
3
  def binread(file, *args)
4
4
  fail ArgumentError, "wrong number of arguments (#{1 + args.size} for 1..3)" unless args.size < 3
5
- File.open(file, 'rb') do |f|
5
+ File.open(file, "rb") do |f|
6
6
  f.read(*args)
7
7
  end
8
8
  end unless method_defined? :binread
@@ -1,6 +1,6 @@
1
- class Thor
1
+ class Bundler::Thor
2
2
  module CoreExt #:nodoc:
3
- if RUBY_VERSION >= '1.9'
3
+ if RUBY_VERSION >= "1.9"
4
4
  class OrderedHash < ::Hash
5
5
  end
6
6
  else
@@ -1,9 +1,9 @@
1
- class Thor
2
- # Thor::Error is raised when it's caused by wrong usage of thor classes. Those
1
+ class Bundler::Thor
2
+ # Bundler::Thor::Error is raised when it's caused by wrong usage of thor classes. Those
3
3
  # errors have their backtrace suppressed and are nicely shown to the user.
4
4
  #
5
5
  # Errors that are caused by the developer, like declaring a method which
6
- # overwrites a thor keyword, it SHOULD NOT raise a Thor::Error. This way, we
6
+ # overwrites a thor keyword, it SHOULD NOT raise a Bundler::Thor::Error. This way, we
7
7
  # ensure that developer errors are shown with full backtrace.
8
8
  class Error < StandardError
9
9
  end
@@ -1,17 +1,17 @@
1
- require 'thor/base'
1
+ require "thor/base"
2
2
 
3
- # Thor has a special class called Thor::Group. The main difference to Thor class
3
+ # Bundler::Thor has a special class called Bundler::Thor::Group. The main difference to Bundler::Thor class
4
4
  # is that it invokes all commands at once. It also include some methods that allows
5
- # invocations to be done at the class method, which are not available to Thor
5
+ # invocations to be done at the class method, which are not available to Bundler::Thor
6
6
  # commands.
7
- class Thor::Group # rubocop:disable ClassLength
7
+ class Bundler::Thor::Group # rubocop:disable ClassLength
8
8
  class << self
9
- # The description for this Thor::Group. If none is provided, but a source root
9
+ # The description for this Bundler::Thor::Group. If none is provided, but a source root
10
10
  # exists, tries to find the USAGE one folder above it, otherwise searches
11
11
  # in the superclass.
12
12
  #
13
13
  # ==== Parameters
14
- # description<String>:: The description for this Thor::Group.
14
+ # description<String>:: The description for this Bundler::Thor::Group.
15
15
  #
16
16
  def desc(description = nil)
17
17
  if description
@@ -27,7 +27,7 @@ class Thor::Group # rubocop:disable ClassLength
27
27
  # short:: When true, shows only usage.
28
28
  #
29
29
  def help(shell)
30
- shell.say 'Usage:'
30
+ shell.say "Usage:"
31
31
  shell.say " #{banner}\n"
32
32
  shell.say
33
33
  class_options_help(shell)
@@ -62,7 +62,7 @@ class Thor::Group # rubocop:disable ClassLength
62
62
  invocation_blocks[name] = block if block_given?
63
63
 
64
64
  class_eval <<-METHOD, __FILE__, __LINE__
65
- def _invoke_#{name.to_s.gsub(/\W/, '_')}
65
+ def _invoke_#{name.to_s.gsub(/\W/, "_")}
66
66
  klass, command = self.class.prepare_for_invocation(nil, #{name.inspect})
67
67
 
68
68
  if klass
@@ -83,7 +83,7 @@ class Thor::Group # rubocop:disable ClassLength
83
83
  #
84
84
  # ==== Examples
85
85
  #
86
- # class GemGenerator < Thor::Group
86
+ # class GemGenerator < Bundler::Thor::Group
87
87
  # class_option :test_framework, :type => :string
88
88
  # invoke_from_option :test_framework
89
89
  # end
@@ -114,18 +114,18 @@ class Thor::Group # rubocop:disable ClassLength
114
114
  names.each do |name|
115
115
  unless class_options.key?(name)
116
116
  fail ArgumentError, "You have to define the option #{name.inspect} " <<
117
- 'before setting invoke_from_option.'
117
+ "before setting invoke_from_option."
118
118
  end
119
119
 
120
120
  invocations[name] = true
121
121
  invocation_blocks[name] = block if block_given?
122
122
 
123
123
  class_eval <<-METHOD, __FILE__, __LINE__
124
- def _invoke_from_option_#{name.to_s.gsub(/\W/, '_')}
124
+ def _invoke_from_option_#{name.to_s.gsub(/\W/, "_")}
125
125
  return unless options[#{name.inspect}]
126
126
 
127
127
  value = options[#{name.inspect}]
128
- value = #{name.inspect} if value.is_a?(TrueClass)
128
+ value = #{name.inspect} if TrueClass === value
129
129
  klass, command = self.class.prepare_for_invocation(#{name.inspect}, value)
130
130
 
131
131
  if klass
@@ -172,11 +172,11 @@ class Thor::Group # rubocop:disable ClassLength
172
172
  def get_options_from_invocations(group_options, base_options) #:nodoc: # rubocop:disable MethodLength
173
173
  invocations.each do |name, from_option|
174
174
  value = if from_option
175
- option = class_options[name]
176
- option.type == :boolean ? name : option.default
177
- else
178
- name
179
- end
175
+ option = class_options[name]
176
+ option.type == :boolean ? name : option.default
177
+ else
178
+ name
179
+ end
180
180
  next unless value
181
181
 
182
182
  klass, _ = prepare_for_invocation(name, value)
@@ -199,15 +199,15 @@ class Thor::Group # rubocop:disable ClassLength
199
199
  def printable_commands(*)
200
200
  item = []
201
201
  item << banner
202
- item << (desc ? "# #{desc.gsub(/\s+/m, ' ')}" : '')
202
+ item << (desc ? "# #{desc.gsub(/\s+/m, ' ')}" : "")
203
203
  [item]
204
204
  end
205
205
  alias_method :printable_tasks, :printable_commands
206
206
 
207
207
  def handle_argument_error(command, error, args, arity) #:nodoc:
208
208
  msg = "#{basename} #{command.name} takes #{arity} argument"
209
- msg << 's' if arity > 1
210
- msg << ', but it should not.'
209
+ msg << "s" if arity > 1
210
+ msg << ", but it should not."
211
211
  fail error, msg
212
212
  end
213
213
 
@@ -215,12 +215,12 @@ class Thor::Group # rubocop:disable ClassLength
215
215
 
216
216
  # The method responsible for dispatching given the args.
217
217
  def dispatch(command, given_args, given_opts, config) #:nodoc:
218
- if Thor::HELP_MAPPINGS.include?(given_args.first)
218
+ if Bundler::Thor::HELP_MAPPINGS.include?(given_args.first)
219
219
  help(config[:shell])
220
220
  return
221
221
  end
222
222
 
223
- args, opts = Thor::Options.split(given_args)
223
+ args, opts = Bundler::Thor::Options.split(given_args)
224
224
  opts = given_opts || opts
225
225
 
226
226
  instance = new(args, opts, config)
@@ -234,29 +234,29 @@ class Thor::Group # rubocop:disable ClassLength
234
234
  end
235
235
 
236
236
  # The banner for this class. You can customize it if you are invoking the
237
- # thor class by another ways which is not the Thor::Runner.
237
+ # thor class by another ways which is not the Bundler::Thor::Runner.
238
238
  def banner
239
239
  "#{basename} #{self_command.formatted_usage(self, false)}"
240
240
  end
241
241
 
242
242
  # Represents the whole class as a command.
243
243
  def self_command #:nodoc:
244
- Thor::DynamicCommand.new(namespace, class_options)
244
+ Bundler::Thor::DynamicCommand.new(namespace, class_options)
245
245
  end
246
246
  alias_method :self_task, :self_command
247
247
 
248
248
  def baseclass #:nodoc:
249
- Thor::Group
249
+ Bundler::Thor::Group
250
250
  end
251
251
 
252
252
  def create_command(meth) #:nodoc:
253
- commands[meth.to_s] = Thor::Command.new(meth, nil, nil, nil, nil)
253
+ commands[meth.to_s] = Bundler::Thor::Command.new(meth, nil, nil, nil, nil)
254
254
  true
255
255
  end
256
256
  alias_method :create_task, :create_command
257
257
  end
258
258
 
259
- include Thor::Base
259
+ include Bundler::Thor::Base
260
260
 
261
261
  protected
262
262
 
@@ -1,4 +1,4 @@
1
- class Thor
1
+ class Bundler::Thor
2
2
  module Invocation
3
3
  def self.included(base) #:nodoc:
4
4
  base.extend ClassMethods
@@ -7,11 +7,11 @@ class Thor
7
7
  module ClassMethods
8
8
  # This method is responsible for receiving a name and find the proper
9
9
  # class and command for it. The key is an optional parameter which is
10
- # available only in class methods invocations (i.e. in Thor::Group).
10
+ # available only in class methods invocations (i.e. in Bundler::Thor::Group).
11
11
  def prepare_for_invocation(key, name) #:nodoc:
12
12
  case name
13
13
  when Symbol, String
14
- Thor::Util.find_class_and_command_by_namespace(name.to_s, !key)
14
+ Bundler::Thor::Util.find_class_and_command_by_namespace(name.to_s, !key)
15
15
  else
16
16
  name
17
17
  end
@@ -25,8 +25,13 @@ class Thor
25
25
  super
26
26
  end
27
27
 
28
+ # Make the current command chain accessible with in a Bundler::Thor-(sub)command
29
+ def current_command_chain
30
+ @_invocations.values.flatten.map(&:to_sym)
31
+ end
32
+
28
33
  # Receives a name and invokes it. The name can be a string (either "command" or
29
- # "namespace:command"), a Thor::Command, a Class or a Thor instance. If the
34
+ # "namespace:command"), a Bundler::Thor::Command, a Class or a Bundler::Thor instance. If the
30
35
  # command cannot be guessed by name, it can also be supplied as second argument.
31
36
  #
32
37
  # You can also supply the arguments, options and configuration values for
@@ -37,7 +42,7 @@ class Thor
37
42
  #
38
43
  # ==== Examples
39
44
  #
40
- # class A < Thor
45
+ # class A < Bundler::Thor
41
46
  # def foo
42
47
  # invoke :bar
43
48
  # invoke "b:hello", ["Erik"]
@@ -48,7 +53,7 @@ class Thor
48
53
  # end
49
54
  # end
50
55
  #
51
- # class B < Thor
56
+ # class B < Bundler::Thor
52
57
  # def hello(name)
53
58
  # puts "hello #{name}"
54
59
  # end
@@ -65,7 +70,7 @@ class Thor
65
70
  # supplied to B. This allows lazy parse of options. Let's suppose you have
66
71
  # some rspec commands:
67
72
  #
68
- # class Rspec < Thor::Group
73
+ # class Rspec < Bundler::Thor::Group
69
74
  # class_option :mock_framework, :type => :string, :default => :rr
70
75
  #
71
76
  # def invoke_mock_framework
@@ -76,7 +81,7 @@ class Thor
76
81
  # As you noticed, it invokes the given mock framework, which might have its
77
82
  # own options:
78
83
  #
79
- # class Rspec::RR < Thor::Group
84
+ # class Rspec::RR < Bundler::Thor::Group
80
85
  # class_option :style, :type => :string, :default => :mock
81
86
  # end
82
87
  #
@@ -95,7 +100,7 @@ class Thor
95
100
  #
96
101
  def invoke(name = nil, *args)
97
102
  if name.nil?
98
- warn "[Thor] Calling invoke() without argument is deprecated. Please use invoke_all instead.\n#{caller.join("\n")}"
103
+ warn "[Bundler::Thor] Calling invoke() without argument is deprecated. Please use invoke_all instead.\n#{caller.join("\n")}"
99
104
  return invoke_all
100
105
  end
101
106
 
@@ -103,8 +108,8 @@ class Thor
103
108
  command, args, opts, config = args
104
109
 
105
110
  klass, command = _retrieve_class_and_command(name, command)
106
- fail "Missing Thor class for invoke #{name}" unless klass
107
- fail "Expected Thor class, got #{klass}" unless klass <= Thor::Base
111
+ fail "Missing Bundler::Thor class for invoke #{name}" unless klass
112
+ fail "Expected Bundler::Thor class, got #{klass}" unless klass <= Bundler::Thor::Base
108
113
 
109
114
  args, opts, config = _parse_initialization_options(args, opts, config)
110
115
  klass.send(:dispatch, command, args, opts, config) do |instance|
@@ -0,0 +1,17 @@
1
+ require "thor/line_editor/basic"
2
+ require "thor/line_editor/readline"
3
+
4
+ class Bundler::Thor
5
+ module LineEditor
6
+ def self.readline(prompt, options = {})
7
+ best_available.new(prompt, options).readline
8
+ end
9
+
10
+ def self.best_available
11
+ [
12
+ Bundler::Thor::LineEditor::Readline,
13
+ Bundler::Thor::LineEditor::Basic
14
+ ].detect(&:available?)
15
+ end
16
+ end
17
+ end
@@ -1,4 +1,4 @@
1
- class Thor
1
+ class Bundler::Thor
2
2
  module LineEditor
3
3
  class Basic
4
4
  attr_reader :prompt, :options
@@ -17,7 +17,7 @@ class Thor
17
17
  get_input
18
18
  end
19
19
 
20
- private
20
+ private
21
21
 
22
22
  def get_input
23
23
  if echo?
@@ -1,9 +1,9 @@
1
1
  begin
2
- require 'readline'
2
+ require "readline"
3
3
  rescue LoadError
4
4
  end
5
5
 
6
- class Thor
6
+ class Bundler::Thor
7
7
  module LineEditor
8
8
  class Readline < Basic
9
9
  def self.available?
@@ -23,7 +23,7 @@ class Thor
23
23
  end
24
24
  end
25
25
 
26
- private
26
+ private
27
27
 
28
28
  def add_to_history?
29
29
  options.fetch(:add_to_history, true)
@@ -31,9 +31,9 @@ class Thor
31
31
 
32
32
  def completion_proc
33
33
  if use_path_completion?
34
- Proc.new { |text| PathCompletion.new(text).matches }
34
+ proc { |text| PathCompletion.new(text).matches }
35
35
  elsif completion_options.any?
36
- Proc.new do |text|
36
+ proc do |text|
37
37
  completion_options.select { |option| option.start_with?(text) }
38
38
  end
39
39
  end
@@ -59,10 +59,10 @@ class Thor
59
59
  relative_matches
60
60
  end
61
61
 
62
- private
62
+ private
63
63
 
64
64
  def relative_matches
65
- absolute_matches.map { |path| path.sub(base_path, '') }
65
+ absolute_matches.map { |path| path.sub(base_path, "") }
66
66
  end
67
67
 
68
68
  def absolute_matches
@@ -0,0 +1,4 @@
1
+ require "thor/parser/argument"
2
+ require "thor/parser/arguments"
3
+ require "thor/parser/option"
4
+ require "thor/parser/options"
@@ -1,4 +1,4 @@
1
- class Thor
1
+ class Bundler::Thor
2
2
  class Argument #:nodoc:
3
3
  VALID_TYPES = [:numeric, :hash, :array, :string]
4
4
 
@@ -6,7 +6,7 @@ class Thor
6
6
  alias_method :human_name, :name
7
7
 
8
8
  def initialize(name, options = {})
9
- class_name = self.class.name.split('::').last
9
+ class_name = self.class.name.split("::").last
10
10
 
11
11
  type = options[:type]
12
12
 
@@ -45,9 +45,9 @@ class Thor
45
45
 
46
46
  def validate!
47
47
  if required? && !default.nil?
48
- fail ArgumentError, 'An argument cannot be required and have default value.'
48
+ fail ArgumentError, "An argument cannot be required and have default value."
49
49
  elsif @enum && !@enum.is_a?(Array)
50
- fail ArgumentError, 'An argument cannot have an enum other than an array.'
50
+ fail ArgumentError, "An argument cannot have an enum other than an array."
51
51
  end
52
52
  end
53
53
 
@@ -62,11 +62,11 @@ class Thor
62
62
  when :string, :default
63
63
  human_name.upcase
64
64
  when :numeric
65
- 'N'
65
+ "N"
66
66
  when :hash
67
- 'key:value'
67
+ "key:value"
68
68
  when :array
69
- 'one two three'
69
+ "one two three"
70
70
  end
71
71
  end
72
72
  end