davetron5000-gli 0.1.4 → 0.1.5

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/README.rdoc CHANGED
@@ -28,10 +28,10 @@ the command name on the command line.
28
28
  switch :n
29
29
 
30
30
 
31
- This is describes a command line flag that is global and has a default value of <tt>.</tt>. It also
32
- specified a short description of its argument. This is used to print command line help. Note that we
31
+ This describes a command line flag that is global and has a default value of '<tt>.</tt>'. It also
32
+ specifies a short description of its argument. This is used to print command line help. Note that we
33
33
  have specified two different aliases for this flag. <tt>-r</tt> (because it is listed first) is the default
34
- one and <tt>--root</tt> is also supported. This means that <tt>-r some_dir</tt> and <tt>--root=some_dir</tt> mean
34
+ one and <tt>--root</tt> (note two-dash syntax) is also supported. This means that <tt>-r some_dir</tt> and <tt>--root=some_dir</tt> mean
35
35
  the same thing to the application.
36
36
 
37
37
  desc 'Root dir in which to create project'
@@ -69,6 +69,8 @@ You can also specify some global code to run before, after and on errors:
69
69
 
70
70
  pre do |global_options,command,options,args|
71
71
  puts "After parsing, but before #{command.name} is run"
72
+ return true
73
+ # return false if we want to skip command execution for some reason
72
74
  end
73
75
 
74
76
  post do |global_options,command,options,args|
data/bin/gli CHANGED
@@ -14,7 +14,7 @@ switch :version
14
14
  desc 'Dry run; don\'t change the disk'
15
15
  switch :n
16
16
 
17
- desc 'Root dir in which to create project'
17
+ desc 'Root dir of project'
18
18
  default_value '.'
19
19
  flag [:r,:root]
20
20
 
@@ -53,9 +53,9 @@ post do |global,command,options,args|
53
53
  puts "Executed #{command.name}" if global[:v]
54
54
  end
55
55
 
56
- on_error do |global,command,options,args|
57
- puts "Got an error" if global[:v]
58
- true
59
- end
56
+ #on_error do |global,command,options,args|
57
+ # puts "Got an error" if global[:v]
58
+ # true
59
+ #end
60
60
 
61
61
  run(ARGV)
data/lib/gli.rb CHANGED
@@ -10,7 +10,7 @@ require 'support/help.rb'
10
10
  module GLI
11
11
  extend self
12
12
 
13
- VERSION = '0.1.4'
13
+ VERSION = '0.1.5'
14
14
 
15
15
  @@program_name = $0.split(/\//)[-1]
16
16
  @@post_block = nil
@@ -72,7 +72,8 @@ module GLI
72
72
  end
73
73
 
74
74
  # Define a block to run if an error occurs.
75
- # The block will receive the global-options,command,options, and arguments
75
+ # The block will receive the exception that was caught.
76
+ # It should return false to avoid the built-in error handling
76
77
  def on_error(&a_proc)
77
78
  @@error_block = a_proc
78
79
  end
@@ -91,9 +92,7 @@ module GLI
91
92
  end
92
93
  rescue UnknownCommandException, UnknownArgumentException, MissingArgumentException => ex
93
94
  regular_error_handling = true
94
- if @@error_block
95
- regular_error_handling = @@error_block.call(global_options,command,options,arguments,ex)
96
- end
95
+ regular_error_handling = @@error_block.call(ex) if @@error_block
97
96
 
98
97
  if regular_error_handling
99
98
  puts "error: #{ex}"
@@ -20,10 +20,12 @@ module GLI
20
20
  if !File.exist?(bin_file) || force
21
21
  if !dry_run
22
22
  File.open(bin_file,'w') do |file|
23
+ file.chmod(0755)
23
24
  file.puts '#!/usr/bin/ruby'
24
25
  file.puts '$: << File.expand_path(File.dirname(__FILE__) + \'/../lib\')'
25
26
  file.puts '$: << File.expand_path(File.dirname(__FILE__) + \'/../ext\')' if create_ext_dir
26
27
  file.puts <<EOS
28
+ require 'rubygems'
27
29
  require 'gli'
28
30
 
29
31
  include GLI
@@ -36,8 +38,10 @@ default_value 'the default'
36
38
  arg_name 'The name of the argument'
37
39
  flag [:f,:flagname]
38
40
  EOS
41
+ first = true
39
42
  commands.each do |command|
40
- file.puts <<EOS
43
+ if first
44
+ file.puts <<EOS
41
45
 
42
46
  desc 'Describe #{command} here'
43
47
  arg_name 'Describe arguments to #{command} here'
@@ -48,14 +52,42 @@ command :#{command} do |c|
48
52
  c.desc 'Describe a flag to #{command}'
49
53
  c.default_value 'default'
50
54
  c.flag :s
51
-
52
55
  c.action do |global_options,options,args|
53
56
  # Your command logic here
54
57
  end
55
58
  end
56
59
  EOS
60
+ else
61
+ file.puts <<EOS
62
+ command :#{command} do |c|
63
+ c.action do |global_options,options,args|
64
+ end
65
+ end
66
+ EOS
67
+ end
68
+ first = false
57
69
  end
58
- puts "Create #{bin_file}"
70
+ file.puts <<EOS
71
+ pre do |global,command,options,args|
72
+ # Pre logic here
73
+ # Return true to proceed; false to abourt and not call the
74
+ # chosen command
75
+ true
76
+ end
77
+
78
+ post do |global,command,options,args|
79
+ # Post logic here
80
+ end
81
+
82
+ on_error do |exception|
83
+ # Error logic here
84
+ # return false to skip default error handling
85
+ true
86
+ end
87
+
88
+ GLI.run(ARGV)
89
+ EOS
90
+ puts "Created #{bin_file}"
59
91
  end
60
92
  end
61
93
  else
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: davetron5000-gli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Copeland
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-02-03 00:00:00 -08:00
12
+ date: 2009-02-13 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15