cooloptions 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,4 +1,9 @@
1
- == 1.0.0 /
1
+ == 1.0.1 / 2006-12-09
2
+
3
+ * Added samples
4
+ * Added contribution info to README.txt.
5
+
6
+ == 1.0.0 / 2006-12-09
2
7
 
3
8
  * Added test for short options specification.
4
9
  * Improved the documentation.
data/Manifest.txt CHANGED
@@ -3,4 +3,6 @@ Manifest.txt
3
3
  README.txt
4
4
  Rakefile
5
5
  lib/cooloptions.rb
6
+ samples/literate.rb
7
+ samples/new_rails_project
6
8
  test/test_cooloptions.rb
data/README.txt CHANGED
@@ -71,6 +71,11 @@ optparse & ostruct (included in Ruby standard library).
71
71
 
72
72
  sudo gem install cooloptions
73
73
 
74
+ == CONTRIBUTE:
75
+
76
+ Drop me an email (see above) and/or check out the source at
77
+ http://terralien.com/svn/projects/cooloptions/trunk.
78
+
74
79
  == LICENSE:
75
80
 
76
81
  The RUBY License
data/lib/cooloptions.rb CHANGED
@@ -11,7 +11,7 @@ require 'ostruct'
11
11
  # :include:samples/literate.rb
12
12
 
13
13
  class CoolOptions
14
- VERSION = '1.0.0' #:nodoc:
14
+ VERSION = '1.0.1' #:nodoc:
15
15
 
16
16
  class Error < StandardError #:nodoc:
17
17
  end
@@ -0,0 +1,29 @@
1
+ require 'cooloptions'
2
+
3
+ options = CoolOptions.parse!('[options] NAME') do |cooloptions|
4
+ cooloptions.on 'option STRING', 'Description', 'default' # Matches '-o string' or '--option string' or uses the 'default'.
5
+
6
+ cooloptions.on 'required VALUE', 'Required' # Because there's no default, the option is required.
7
+
8
+ cooloptions.on 'boolean', 'Boolean', false # Matches '-b' or '--boolean' or '--no-boolean'.
9
+ # Note the lack of a placeholder for the value.
10
+
11
+ cooloptions.on 'shor(t) VALUE', 'Short' # Use parens to delineate a short form other than the first char.
12
+ # Matches '-o value' or '--short value'
13
+
14
+ cooloptions.on 'k)first VALUE', 'First' # No leading paren for a short character not in the long option.
15
+
16
+ cooloptions.after do |result| # Gets called with the result of the parse _before_ returning it.
17
+ unless result.option == 'a' # Allows for easy validation of options.
18
+ cooloptions.error("Invalid format.")
19
+ end
20
+ result.name = ARGV.shift # Or grabbing additional arguments.
21
+ end
22
+
23
+ cooloptions.parser.on('-z', '--raw [STUFF]', String, # If you want to do funky optparse stuff, you can use the parser.
24
+ 'Raw optparse.') do |option| # However, if you're doing more of this than of the simple stuff,
25
+ puts "RAW!" # you should consider just using optparse directly.
26
+ end
27
+ end
28
+
29
+ p options.option # All the options get put in to an OpenStruct keyed by their long name (with '-' becoming '_')
@@ -0,0 +1,27 @@
1
+ require 'cooloptions'
2
+
3
+ options = CoolOptions.parse!("[options] PROJECTNAME") do |o|
4
+ o.on "repository URL", "Remote subversion repository."
5
+ o.on "svk", "Use svk.", true
6
+ o.on "project-path PATH", "Root of project workspaces.", File.expand_path("~/svk")
7
+ o.on "l)repository-path PATH", "Remote repository path.", "/"
8
+ o.on "mirror-path SVKPATH", "SVK mirror path.", "//"
9
+ o.on "local-pa(t)h SVKPATH", "SVK local path.", "//local"
10
+ o.on "create-structure", "Create trunk/tags/branches structure.", true
11
+ o.on "finish", "Prep and commit the new project.", true
12
+
13
+ o.after do |r|
14
+ r.project_path = File.expand_path(r.project_path)
15
+ o.error("Invalid path.") unless File.exist?(r.project_path)
16
+ r.project_name = ARGV.shift
17
+ o.error("Project name is required.") unless r.project_name
18
+ o.error("Project name is too funky.") unless /^\w+$/ =~ r.project_name
19
+ end
20
+ end
21
+
22
+ p options.svk # => false
23
+ p options.project_path # => '/Users/ntalbott/svk'
24
+ p options.repository # => 'http://terralien.com/svn/terralien/'
25
+ p options.finish # => false
26
+ p options.create_structure # => true
27
+ p options.project_name # => 'myproject'
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: cooloptions
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.0
6
+ version: 1.0.1
7
7
  date: 2006-12-09 00:00:00 -05:00
8
8
  summary: CoolOptions is a simple wrapper around optparse that provides less options and more convenience.
9
9
  require_paths:
@@ -33,6 +33,8 @@ files:
33
33
  - README.txt
34
34
  - Rakefile
35
35
  - lib/cooloptions.rb
36
+ - samples/literate.rb
37
+ - samples/new_rails_project
36
38
  - test/test_cooloptions.rb
37
39
  test_files:
38
40
  - test/test_cooloptions.rb