rubygems-update 0.8.3
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.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- data/ChangeLog +2335 -0
- data/README +54 -0
- data/Rakefile +293 -0
- data/Releases +98 -0
- data/TODO +7 -0
- data/bin/gem +11 -0
- data/bin/gem_server +111 -0
- data/bin/generate_yaml_index.rb +58 -0
- data/bin/update_rubygems +18 -0
- data/doc/doc.css +73 -0
- data/doc/makedoc.rb +4 -0
- data/examples/application/an-app.gemspec +26 -0
- data/examples/application/bin/myapp +3 -0
- data/examples/application/lib/somefunctionality.rb +3 -0
- data/gemspecs/README +4 -0
- data/gemspecs/cgikit-1.1.0.gemspec +18 -0
- data/gemspecs/jabber4r.gemspec +26 -0
- data/gemspecs/linguistics.gemspec +22 -0
- data/gemspecs/ook.gemspec +21 -0
- data/gemspecs/progressbar.gemspec +22 -0
- data/gemspecs/redcloth.gemspec +22 -0
- data/gemspecs/rublog.gemspec +23 -0
- data/gemspecs/ruby-doom.gemspec +21 -0
- data/gemspecs/rubyjdwp.gemspec +21 -0
- data/gemspecs/statistics.gemspec +21 -0
- data/lib/rubygems.rb +353 -0
- data/lib/rubygems/builder.rb +54 -0
- data/lib/rubygems/cmd_manager.rb +127 -0
- data/lib/rubygems/command.rb +191 -0
- data/lib/rubygems/config_file.rb +57 -0
- data/lib/rubygems/doc_manager.rb +94 -0
- data/lib/rubygems/format.rb +65 -0
- data/lib/rubygems/gem_commands.rb +925 -0
- data/lib/rubygems/gem_runner.rb +23 -0
- data/lib/rubygems/installer.rb +621 -0
- data/lib/rubygems/loadpath_manager.rb +108 -0
- data/lib/rubygems/old_format.rb +150 -0
- data/lib/rubygems/open-uri.rb +604 -0
- data/lib/rubygems/package.rb +740 -0
- data/lib/rubygems/remote_installer.rb +499 -0
- data/lib/rubygems/rubygems_version.rb +6 -0
- data/lib/rubygems/source_index.rb +130 -0
- data/lib/rubygems/specification.rb +613 -0
- data/lib/rubygems/user_interaction.rb +176 -0
- data/lib/rubygems/validator.rb +148 -0
- data/lib/rubygems/version.rb +279 -0
- data/lib/ubygems.rb +4 -0
- data/pkgs/sources/lib/sources.rb +6 -0
- data/pkgs/sources/sources.gemspec +14 -0
- data/post-install.rb +75 -0
- data/redist/session.gem +433 -0
- data/scripts/buildtests.rb +25 -0
- data/scripts/gemdoc.rb +62 -0
- data/scripts/runtest.rb +17 -0
- data/scripts/specdoc.rb +164 -0
- data/setup.rb +1360 -0
- data/test/bogussources.rb +5 -0
- data/test/data/legacy/keyedlist-0.4.0.ruby +11 -0
- data/test/data/legacy/keyedlist-0.4.0.yaml +16 -0
- data/test/data/lib/code.rb +1 -0
- data/test/data/one/README.one +1 -0
- data/test/data/one/lib/one.rb +3 -0
- data/test/data/one/one.gemspec +17 -0
- data/test/data/one/one.yaml +40 -0
- data/test/functional.rb +145 -0
- data/test/gemenvironment.rb +45 -0
- data/test/gemutilities.rb +18 -0
- data/test/insure_session.rb +46 -0
- data/test/mock/gems/gems/sources-0.0.1/lib/sources.rb +5 -0
- data/test/mock/gems/specifications/sources-0.0.1.gemspec +8 -0
- data/test/mockgemui.rb +45 -0
- data/test/onegem.rb +23 -0
- data/test/simple_gem.rb +66 -0
- data/test/test_builder.rb +13 -0
- data/test/test_cached_fetcher.rb +60 -0
- data/test/test_check_command.rb +28 -0
- data/test/test_command.rb +130 -0
- data/test/test_configfile.rb +36 -0
- data/test/test_format.rb +70 -0
- data/test/test_gemloadpaths.rb +45 -0
- data/test/test_gempaths.rb +115 -0
- data/test/test_loadmanager.rb +40 -0
- data/test/test_local_cache.rb +157 -0
- data/test/test_package.rb +600 -0
- data/test/test_parse_commands.rb +179 -0
- data/test/test_process_commands.rb +21 -0
- data/test/test_remote_fetcher.rb +162 -0
- data/test/test_remote_installer.rb +154 -0
- data/test/test_source_index.rb +58 -0
- data/test/test_specification.rb +286 -0
- data/test/test_validator.rb +53 -0
- data/test/test_version_comparison.rb +204 -0
- data/test/testgem.rc +6 -0
- data/test/user_capture.rb +1 -0
- data/test/yaml_data.rb +59 -0
- metadata +151 -0
@@ -0,0 +1,127 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rubygems/command'
|
3
|
+
require 'rubygems/user_interaction'
|
4
|
+
require 'rubygems/gem_commands'
|
5
|
+
|
6
|
+
module Gem
|
7
|
+
|
8
|
+
# Signals that local installation will not proceed, not that it has
|
9
|
+
# been tried and failed. TODO: better name.
|
10
|
+
class LocalInstallationError < Gem::Exception; end
|
11
|
+
|
12
|
+
class FilePermissionError < Gem::Exception
|
13
|
+
def initialize(path)
|
14
|
+
super("You don't have write permissions into the #{path} directory.")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# Signals that a remote operation cannot be conducted, probably due to not being
|
19
|
+
# connected (or just not finding host).
|
20
|
+
#
|
21
|
+
# TODO: create a method that tests connection to the preferred gems server. All code
|
22
|
+
# dealing with remote operations will want this. Failure in that method should raise
|
23
|
+
# this error.
|
24
|
+
class RemoteError < Gem::Exception; end
|
25
|
+
|
26
|
+
class CommandManager
|
27
|
+
include UserInteraction
|
28
|
+
|
29
|
+
def self.instance
|
30
|
+
@cmd_manager ||= CommandManager.new
|
31
|
+
end
|
32
|
+
|
33
|
+
def initialize
|
34
|
+
@commands = {}
|
35
|
+
register_command HelpCommand.new
|
36
|
+
register_command InstallCommand.new
|
37
|
+
register_command UninstallCommand.new
|
38
|
+
register_command CheckCommand.new
|
39
|
+
register_command BuildCommand.new
|
40
|
+
register_command QueryCommand.new
|
41
|
+
register_command ListCommand.new
|
42
|
+
register_command SearchCommand.new
|
43
|
+
register_command UpdateCommand.new
|
44
|
+
register_command RDocCommand.new
|
45
|
+
register_command EnvironmentCommand.new
|
46
|
+
register_command SpecificationCommand.new
|
47
|
+
register_command UnpackCommand.new
|
48
|
+
end
|
49
|
+
|
50
|
+
def register_command(command)
|
51
|
+
@commands[command.command.intern] = command
|
52
|
+
end
|
53
|
+
|
54
|
+
def [](command_name)
|
55
|
+
@commands[command_name.intern]
|
56
|
+
end
|
57
|
+
|
58
|
+
def command_names
|
59
|
+
@commands.keys.collect {|key| key.to_s}.sort
|
60
|
+
end
|
61
|
+
|
62
|
+
def run(cfg)
|
63
|
+
process_args(cfg.args)
|
64
|
+
rescue StandardError => ex
|
65
|
+
alert_error "While executing gem ... (#{ex.class})\n #{ex.to_s}"
|
66
|
+
puts ex.backtrace if cfg.backtrace
|
67
|
+
terminate_interaction(1)
|
68
|
+
end
|
69
|
+
|
70
|
+
def process_args(args)
|
71
|
+
args = args.to_str.split(/\s/) if args.respond_to?(:to_str)
|
72
|
+
if args.size == 0
|
73
|
+
say Gem::HELP
|
74
|
+
terminate_interaction(1)
|
75
|
+
end
|
76
|
+
case args[0]
|
77
|
+
when '-h', '--help'
|
78
|
+
say Gem::HELP
|
79
|
+
terminate_interaction(0)
|
80
|
+
when '-v', '--version'
|
81
|
+
say Gem::RubyGemsPackageVersion
|
82
|
+
terminate_interaction(0)
|
83
|
+
when /^-/
|
84
|
+
alert_error "Invalid option: #{args[0]}. See 'gem --help'."
|
85
|
+
terminate_interaction(1)
|
86
|
+
else
|
87
|
+
cmd_name = args.shift.downcase
|
88
|
+
cmd = find_command(cmd_name)
|
89
|
+
#load_config_file_options(args)
|
90
|
+
cmd.invoke(*args)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def find_command(cmd_name)
|
95
|
+
possibilities = find_command_possibilities(cmd_name)
|
96
|
+
if possibilities.size > 1
|
97
|
+
raise "Ambiguous command #{cmd_name} matches [#{possibilities.join(', ')}]"
|
98
|
+
end
|
99
|
+
if possibilities.size < 1
|
100
|
+
raise "Unknown command #{cmd_name}"
|
101
|
+
end
|
102
|
+
self[possibilities.first]
|
103
|
+
end
|
104
|
+
|
105
|
+
def find_command_possibilities(cmd_name)
|
106
|
+
len = cmd_name.length
|
107
|
+
self.command_names.select { |n| cmd_name == n[0,len] }
|
108
|
+
end
|
109
|
+
|
110
|
+
# - a config file may be specified on the command line
|
111
|
+
# - if it's specified multiple times, the first one wins
|
112
|
+
# - there is a default config file location HOME/.gemrc
|
113
|
+
def load_config_file_options(args)
|
114
|
+
config_file = File.join(ENV['HOME'], ".gemrc")
|
115
|
+
if args.index("--config-file")
|
116
|
+
config_file = args[args.index("--config-file")+1]
|
117
|
+
end
|
118
|
+
if File.exist?(config_file)
|
119
|
+
@config_file_options = YAML.load(File.read(config_file))
|
120
|
+
else
|
121
|
+
alert_error "Config file #{config_file} not found" if options[:config_file]
|
122
|
+
terminate_interaction!if options[:config_file]
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
end
|
127
|
+
end
|
@@ -0,0 +1,191 @@
|
|
1
|
+
require 'rubygems/user_interaction'
|
2
|
+
|
3
|
+
module Gem
|
4
|
+
class Command
|
5
|
+
include UserInteraction
|
6
|
+
|
7
|
+
Option = Struct.new(:short, :long, :description, :handler)
|
8
|
+
|
9
|
+
attr_reader :command, :options
|
10
|
+
attr_accessor :summary, :defaults, :program_name
|
11
|
+
|
12
|
+
def initialize(command, summary=nil, defaults={})
|
13
|
+
@command = command
|
14
|
+
@summary = summary
|
15
|
+
@program_name = "gem #{command}"
|
16
|
+
@defaults = defaults
|
17
|
+
@options = defaults.dup
|
18
|
+
@option_list = []
|
19
|
+
@parser = nil
|
20
|
+
end
|
21
|
+
|
22
|
+
def show_help
|
23
|
+
parser.program_name = usage
|
24
|
+
say parser
|
25
|
+
end
|
26
|
+
|
27
|
+
def usage
|
28
|
+
"#{program_name}"
|
29
|
+
end
|
30
|
+
|
31
|
+
# Override this method to provide details of the arguments a command takes. It should
|
32
|
+
# return a left-justified string, one argument per line.
|
33
|
+
def arguments
|
34
|
+
""
|
35
|
+
end
|
36
|
+
|
37
|
+
# This is just like the 'arguments' method, except it describes the default options used.
|
38
|
+
def defaults_str
|
39
|
+
""
|
40
|
+
end
|
41
|
+
|
42
|
+
def invoke(*args)
|
43
|
+
handle_options(args)
|
44
|
+
if options[:help]
|
45
|
+
show_help
|
46
|
+
elsif @when_invoked
|
47
|
+
@when_invoked.call(options)
|
48
|
+
else
|
49
|
+
execute
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def when_invoked(&block)
|
54
|
+
@when_invoked = block
|
55
|
+
end
|
56
|
+
|
57
|
+
def add_option(*args, &handler)
|
58
|
+
@option_list << [args, handler]
|
59
|
+
end
|
60
|
+
|
61
|
+
def remove_option(name)
|
62
|
+
@option_list.reject! { |args, handler| args.any? { |x| x =~ /^#{name}/ } }
|
63
|
+
end
|
64
|
+
|
65
|
+
def merge_options(new_options)
|
66
|
+
@options = @defaults.clone
|
67
|
+
new_options.each do |k,v| @options[k] = v end
|
68
|
+
end
|
69
|
+
|
70
|
+
def handles?(args)
|
71
|
+
begin
|
72
|
+
parser.parse!(args.dup)
|
73
|
+
return true
|
74
|
+
rescue
|
75
|
+
return false
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
def handle_options(args)
|
82
|
+
args = add_extra_args(args)
|
83
|
+
@options = @defaults.clone
|
84
|
+
parser.parse!(args)
|
85
|
+
@options[:args] = args
|
86
|
+
end
|
87
|
+
|
88
|
+
def add_extra_args(args)
|
89
|
+
result = []
|
90
|
+
extra = Command.extra_args.dup
|
91
|
+
while ! extra.empty?
|
92
|
+
ex = []
|
93
|
+
ex << extra.shift
|
94
|
+
ex << extra.shift if extra.first.to_s =~ /^[^-]/
|
95
|
+
result << ex if handles?(ex)
|
96
|
+
end
|
97
|
+
result.flatten!
|
98
|
+
result.concat(args)
|
99
|
+
result
|
100
|
+
end
|
101
|
+
|
102
|
+
# Create on demand parser.
|
103
|
+
def parser
|
104
|
+
create_option_parser if @parser.nil?
|
105
|
+
@parser
|
106
|
+
end
|
107
|
+
|
108
|
+
def create_option_parser
|
109
|
+
require 'optparse'
|
110
|
+
@parser = OptionParser.new
|
111
|
+
option_names = {}
|
112
|
+
@parser.separator("")
|
113
|
+
unless @option_list.empty?
|
114
|
+
@parser.separator(" Options:")
|
115
|
+
configure_options(@option_list, option_names)
|
116
|
+
@parser.separator("")
|
117
|
+
end
|
118
|
+
@parser.separator(" Common Options:")
|
119
|
+
configure_options(Command.common_options, option_names)
|
120
|
+
@parser.separator("")
|
121
|
+
unless arguments.empty?
|
122
|
+
@parser.separator(" Arguments:")
|
123
|
+
arguments.split(/\n/).each do |arg_desc|
|
124
|
+
@parser.separator(" #{arg_desc}")
|
125
|
+
end
|
126
|
+
@parser.separator("")
|
127
|
+
end
|
128
|
+
@parser.separator(" Summary:")
|
129
|
+
@parser.separator(" #@summary")
|
130
|
+
unless defaults_str.empty?
|
131
|
+
@parser.separator("")
|
132
|
+
@parser.separator(" Defaults:")
|
133
|
+
defaults_str.split(/\n/).each do |line|
|
134
|
+
@parser.separator(" #{line}")
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
def configure_options(option_list, option_names)
|
140
|
+
option_list.each do |args, handler|
|
141
|
+
dashes = args.select { |arg| arg =~ /^-/ }
|
142
|
+
next if dashes.any? { |arg| option_names[arg] }
|
143
|
+
@parser.on(*args) do |value|
|
144
|
+
handler.call(value, @options)
|
145
|
+
end
|
146
|
+
dashes.each do |arg| option_names[arg] = true end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
class << self
|
151
|
+
def common_options
|
152
|
+
@common_options ||= []
|
153
|
+
end
|
154
|
+
|
155
|
+
def add_common_option(*args, &handler)
|
156
|
+
Gem::Command.common_options << [args, handler]
|
157
|
+
end
|
158
|
+
|
159
|
+
def extra_args
|
160
|
+
@extra_args ||= []
|
161
|
+
end
|
162
|
+
|
163
|
+
def extra_args=(value)
|
164
|
+
case value
|
165
|
+
when Array
|
166
|
+
@extra_args = value
|
167
|
+
when String
|
168
|
+
@extra_args = value.split
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
add_common_option('--source URL', 'Use URL as the remote source for gems') do |value, options|
|
174
|
+
require_gem("sources")
|
175
|
+
Gem.sources.clear
|
176
|
+
Gem.sources << value
|
177
|
+
end
|
178
|
+
add_common_option('-p', '--[no-]http-proxy [URL]', 'Use HTTP proxy for remote operations') do |value, options|
|
179
|
+
options[:http_proxy] = (value == false) ? :no_proxy : value
|
180
|
+
end
|
181
|
+
add_common_option('-h', '--help', 'Get help on this command') do |value, options|
|
182
|
+
options[:help] = true
|
183
|
+
end
|
184
|
+
# Backtrace and config-file are added so they show up in the help
|
185
|
+
# commands. Both options are actually handled before the other
|
186
|
+
# options get parsed.
|
187
|
+
add_common_option('--config-file FILE', "Use this config file instead of default") do end
|
188
|
+
add_common_option('--backtrace', 'Show stack backtrace on errors') do end
|
189
|
+
add_common_option('--debug', 'Turn on Ruby debugging') do end
|
190
|
+
end # class
|
191
|
+
end # module
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
module Gem
|
6
|
+
class ConfigFile
|
7
|
+
attr_reader :backtrace, :args
|
8
|
+
|
9
|
+
def initialize(arg_list)
|
10
|
+
handle_arguments(arg_list)
|
11
|
+
if File.exist?(config_file_name)
|
12
|
+
@hash = open(config_file_name) { |f| YAML.load(f) }
|
13
|
+
else
|
14
|
+
@hash = {}
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def config_file_name
|
19
|
+
@config_file_name || default_config_file_name
|
20
|
+
end
|
21
|
+
|
22
|
+
def [](key)
|
23
|
+
@hash[key.to_s]
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def handle_arguments(arg_list)
|
29
|
+
need_cfg_name = false
|
30
|
+
@args = []
|
31
|
+
arg_list.each do |arg|
|
32
|
+
if need_cfg_name
|
33
|
+
@config_file_name = arg
|
34
|
+
need_cfg_name = false
|
35
|
+
else
|
36
|
+
case arg
|
37
|
+
when /^--backtrace$/
|
38
|
+
@backtrace = true
|
39
|
+
when /^--debug$/
|
40
|
+
$DEBUG = true
|
41
|
+
when /^--config-file$/
|
42
|
+
need_cfg_name = true
|
43
|
+
when /^--config-file=(.+)$/
|
44
|
+
@config_file_name = $1
|
45
|
+
else
|
46
|
+
@args << arg
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def default_config_file_name
|
53
|
+
File.join(ENV['HOME'], '.gemrc')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
module Gem
|
2
|
+
|
3
|
+
class DocumentError < Gem::Exception; end
|
4
|
+
|
5
|
+
class DocManager
|
6
|
+
|
7
|
+
include UserInteraction
|
8
|
+
|
9
|
+
#
|
10
|
+
# spec:: The Gem::Specification object representing the gem.
|
11
|
+
# rdoc_args:: Optional arguments for RDoc (template etc.) as a String.
|
12
|
+
#
|
13
|
+
def initialize(spec, rdoc_args="")
|
14
|
+
@spec = spec
|
15
|
+
@doc_dir = File.join(spec.installation_path, "doc", spec.full_name)
|
16
|
+
Gem::FilePermissionError.new(spec.installation_path) unless File.writable?(spec.installation_path)
|
17
|
+
@rdoc_args = rdoc_args.nil? ? [] : rdoc_args.split
|
18
|
+
end
|
19
|
+
|
20
|
+
def rdoc_installed?
|
21
|
+
return File.exist?(File.join(@doc_dir, "rdoc"))
|
22
|
+
end
|
23
|
+
|
24
|
+
def install_doc(rdoc = true)
|
25
|
+
self.generate_rdoc if rdoc
|
26
|
+
require 'fileutils'
|
27
|
+
FileUtils.mkdir_p @doc_dir unless File.exist?(@doc_dir)
|
28
|
+
end
|
29
|
+
|
30
|
+
##
|
31
|
+
# Return Rdoc args as specified in gem spec. If args exist in gemspec,
|
32
|
+
# append any user-defined args. This behavior is open for a vote.
|
33
|
+
def rdoc_args_from_spec(non_spec_args)
|
34
|
+
@spec.rdoc_options << non_spec_args
|
35
|
+
end
|
36
|
+
|
37
|
+
def generate_rdoc
|
38
|
+
require 'fileutils'
|
39
|
+
Gem::FilePermissionError.new(@doc_dir) if File.exist?(@doc_dir) && !File.writable?(@doc_dir)
|
40
|
+
FileUtils.mkdir_p @doc_dir unless File.exist?(@doc_dir)
|
41
|
+
begin
|
42
|
+
require 'rdoc/rdoc'
|
43
|
+
rescue LoadError => e
|
44
|
+
raise DocumentError, "ERROR: RDoc documentation generator not installed!"
|
45
|
+
end
|
46
|
+
say "Installing RDoc documentation for #{@spec.full_name}..."
|
47
|
+
say "WARNING: Generating RDoc on .gem that may not have RDoc." unless @spec.has_rdoc?
|
48
|
+
rdoc_dir = File.join(@doc_dir, "rdoc")
|
49
|
+
begin
|
50
|
+
source_dirs = @spec.require_paths.clone.concat(@spec.extra_rdoc_files)
|
51
|
+
current_dir = Dir.pwd
|
52
|
+
Dir.chdir(@spec.full_gem_path)
|
53
|
+
begin
|
54
|
+
@rdoc_args = rdoc_args_from_spec(@rdoc_args)
|
55
|
+
@rdoc_args.concat(DocManager.configured_args)
|
56
|
+
r = RDoc::RDoc.new
|
57
|
+
begin
|
58
|
+
r.document(['--quiet', '--op', rdoc_dir] + @rdoc_args.flatten + source_dirs)
|
59
|
+
rescue Errno::EACCES => e
|
60
|
+
raise Gem::FilePermissionError.new(File.dirname(e.message.split("-")[1].strip))
|
61
|
+
end
|
62
|
+
#TODO: Why is this throwing an error?
|
63
|
+
#ri = RDoc::RDoc.new
|
64
|
+
#ri.document(['-R'] + source_dirs)
|
65
|
+
ensure
|
66
|
+
Dir.chdir(current_dir)
|
67
|
+
end
|
68
|
+
rescue RDoc::RDocError => e
|
69
|
+
raise DocumentError, e.message
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def uninstall_doc
|
74
|
+
doc_dir = File.join(@spec.installation_path, "doc", @spec.full_name)
|
75
|
+
FileUtils.rm_rf doc_dir
|
76
|
+
end
|
77
|
+
|
78
|
+
class << self
|
79
|
+
def configured_args
|
80
|
+
@configured_args ||= []
|
81
|
+
end
|
82
|
+
|
83
|
+
def configured_args=(args)
|
84
|
+
case args
|
85
|
+
when Array
|
86
|
+
@configured_args = args
|
87
|
+
when String
|
88
|
+
@configured_args = args.split
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
end
|