rubikon 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -138,6 +138,7 @@ LICENSE file.
138
138
  ## Credits
139
139
 
140
140
  * Sebastian Staudt -- koraktor(at)gmail.com
141
+ * Dotan J. Nahum -- jondotan(at)gmail.com
141
142
 
142
143
  ## See Also
143
144
 
@@ -16,9 +16,11 @@ module Rubikon
16
16
  # @since 0.3.0
17
17
  module DSLMethods
18
18
 
19
- # @return [String] The (first) definition file of the application
19
+ # @return [String] The (first) file where the application has been
20
+ # defined
20
21
  attr_reader :base_file
21
22
 
23
+ # @return [Hash] The active configuration of the application
22
24
  attr_reader :config
23
25
 
24
26
  # @return [String] The absolute path of the application
@@ -26,6 +28,26 @@ module Rubikon
26
28
 
27
29
  private
28
30
 
31
+ # Checks whether parameter with the given name has been supplied by the
32
+ # user on the command-line.
33
+ #
34
+ # @param [#to_sym] name The name of the parameter to check
35
+ # @since 0.2.0
36
+ #
37
+ # @example
38
+ # flag :status
39
+ # command :something do
40
+ # print_status if active? :status
41
+ # end
42
+ def active?(name)
43
+ name = name.to_sym
44
+ parameter = @global_parameters[name]
45
+ parameter = @current_command.parameters[name] if parameter.nil?
46
+ return false if parameter.nil?
47
+ parameter.send(:active?)
48
+ end
49
+ alias_method :given?, :active?
50
+
29
51
  # Call another named command with the given arguments
30
52
  #
31
53
  # @param [Symbol] command_name The name of the command to call
@@ -106,11 +128,11 @@ module Rubikon
106
128
  #
107
129
  # @return [Command] The default Command object
108
130
  # @since 0.2.0
109
- def default(description = nil, &block)
110
- if description.is_a? Symbol
111
- command({ :__default => description })
131
+ def default(arg_count = nil, description = nil, &block)
132
+ if arg_count.is_a? Symbol
133
+ command({ :__default => arg_count })
112
134
  else
113
- command(:__default, description, &block)
135
+ command(:__default, arg_count, description, &block)
114
136
  end
115
137
  end
116
138
 
@@ -139,26 +161,6 @@ module Rubikon
139
161
  end
140
162
  end
141
163
 
142
- # Checks whether parameter with the given name has been supplied by the
143
- # user on the command-line.
144
- #
145
- # @param [#to_sym] name The name of the parameter to check
146
- # @since 0.2.0
147
- #
148
- # @example
149
- # flag :status
150
- # command :something do
151
- # print_status if active? :status
152
- # end
153
- def active?(name)
154
- name = name.to_sym
155
- parameter = @global_parameters[name]
156
- parameter = @current_command.parameters[name] if parameter.nil?
157
- return false if parameter.nil?
158
- parameter.send(:active?)
159
- end
160
- alias_method :given?, :active?
161
-
162
164
  # Create a new flag with the given name to be used globally
163
165
  #
164
166
  # Global flags are not bound to any command and can therefore be used
@@ -398,7 +400,7 @@ module Rubikon
398
400
  #
399
401
  # @param [String] text The text to write into the output stream
400
402
  # @since 0.2.0
401
- def puts(text)
403
+ def puts(text = nil)
402
404
  ostream.puts text
403
405
  end
404
406
 
@@ -60,7 +60,7 @@ module Rubikon
60
60
  :raise_errors => false
61
61
  }
62
62
 
63
- @settings[:config_paths] = []
63
+ @settings[:config_paths] = []
64
64
  if RUBY_PLATFORM.downcase =~ /mswin(?!ce)|mingw|bccwin/
65
65
  @settings[:config_paths] << ENV['ALLUSERSPROFILE']
66
66
  else
@@ -110,7 +110,7 @@ module Rubikon
110
110
  raise $! if @settings[:raise_errors]
111
111
 
112
112
  puts "r{Error:}\n #{$!.message}"
113
- puts " #{$!.backtrace.join("\n ")}" if $DEBUG
113
+ puts " at #{$!.backtrace.join("\n at ")}" if $DEBUG
114
114
  exit 1
115
115
  ensure
116
116
  InstanceMethods.instance_method(:reset).bind(self).call
@@ -299,19 +299,23 @@ module Rubikon
299
299
  # parameters of this command that have been supplied and any
300
300
  # additional command-line arguments supplied
301
301
  def parse_arguments(args)
302
- command_arg = args.find { |arg| arg == '--' || !arg.start_with?('-') }
303
- command_arg = nil if command_arg == '--'
304
-
305
- if command_arg.nil?
302
+ command_arg = args.shift
303
+ if command_arg.nil? || command_arg.start_with?('-')
306
304
  command = @commands[:__default]
305
+ args.unshift(command_arg) unless command_arg.nil?
307
306
  raise NoDefaultCommandError if command.nil?
308
307
  else
309
308
  command = @commands[command_arg.to_sym]
310
- args.delete_at args.find_index(command_arg)
311
309
  raise UnknownCommandError.new(command_arg) if command.nil?
312
310
  end
313
311
 
314
- args.delete '--'
312
+ args = args.map do |arg|
313
+ if !arg.start_with?('--') && arg.start_with?('-') && arg.size > 2
314
+ arg[1..-1].split('').map { |a| "-#{a}"}
315
+ else
316
+ arg
317
+ end
318
+ end.flatten
315
319
 
316
320
  parameter = nil
317
321
  parameters = []
@@ -61,7 +61,7 @@ module Rubikon
61
61
  # output IO object is used for printing text
62
62
  #
63
63
  # @param [String] text The text to write into the output stream
64
- def puts(text)
64
+ def puts(text = nil)
65
65
  @__app__.send(:puts, text)
66
66
  end
67
67
 
@@ -2,6 +2,7 @@
2
2
  # the terms of the new BSD License.
3
3
  #
4
4
  # Copyright (c) 2009-2010, Sebastian Staudt
5
+ # Copyright (c) 2010, Dotan J. Nahum
5
6
 
6
7
  module Rubikon
7
8
 
data/lib/rubikon.rb CHANGED
@@ -24,6 +24,6 @@ require 'rubikon/application/base'
24
24
  module Rubikon
25
25
 
26
26
  # This is the current version of the Rubikon gem
27
- VERSION = '0.5.0'
27
+ VERSION = '0.5.1'
28
28
 
29
29
  end
@@ -15,16 +15,11 @@ end
15
15
  # A relatively simple Hello World application using Rubikon
16
16
  class HelloWorld < Rubikon::Application::Base
17
17
 
18
- set :config_file, 'helloworld.ini'
19
- set :config_format, :ini
20
-
21
18
  # Greet the whole world per default
22
19
  flag :more
23
20
  option :name, [:who]
24
21
  option :names, -1
25
22
  default 'Simple hello world' do
26
- p config
27
-
28
23
  debug 'Starting to greet the world...'
29
24
  if given? :name
30
25
  greet parameters[:name].who
@@ -159,6 +159,14 @@ class TestApplication < Test::Unit::TestCase
159
159
  assert_equal "pre init\npost init\npre execute\nexecute\npost execute\n", @ostream.string
160
160
  end
161
161
 
162
+ should 'allow combining single character parameters' do
163
+ @app.run(%w{-dv})
164
+ assert $DEBUG
165
+ assert $VERBOSE
166
+ $DEBUG = false
167
+ $VERBOSE = false
168
+ end
169
+
162
170
  end
163
171
 
164
172
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubikon
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 0
10
- version: 0.5.0
9
+ - 1
10
+ version: 0.5.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sebastian Staudt
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-12 00:00:00 +01:00
18
+ date: 2010-12-01 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -115,8 +115,8 @@ homepage: http://koraktor.github.com/rubikon
115
115
  licenses: []
116
116
 
117
117
  post_install_message:
118
- rdoc_options:
119
- - --charset=UTF-8
118
+ rdoc_options: []
119
+
120
120
  require_paths:
121
121
  - lib
122
122
  required_ruby_version: !ruby/object:Gem::Requirement