delano-drydock 0.3.1 → 0.3.2

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.
Files changed (6) hide show
  1. data/README.rdoc +34 -29
  2. data/Rakefile +3 -6
  3. data/bin/example +17 -13
  4. data/drydock.gemspec +1 -1
  5. data/lib/drydock.rb +2 -1
  6. metadata +1 -1
data/README.rdoc CHANGED
@@ -22,39 +22,44 @@ Or for GitHub fans:
22
22
 
23
23
  See bin/example for more.
24
24
 
25
- require 'rubygems'
26
- require 'drydock'
27
-
28
- default :welcome
29
-
30
- before do
31
- # You can execute a block before the requests command is executed. Instance
32
- # variables defined here will be available to all commands.
33
- end
25
+ require 'drydock'
26
+
27
+ default :welcome
28
+
29
+ before do
30
+ # You can execute a block before the requests command is executed. Instance
31
+ # variables defined here will be available to all commands.
32
+ end
33
+
34
+ command :welcome do
35
+ # Example: ruby bin/example
36
+
37
+ puts "Welcome to Drydock. You have the following commands:"
38
+
39
+ # The commands method returns a hash of Drydock::Command objects
40
+ puts commands.keys.inject([]) { |list, command| list << command.to_s }.sort.join(', ')
41
+ end
42
+
43
+ usage "Example: #{$0} laugh [-f]"
44
+ option :f, :faster, "A boolean value. Go even faster!"
45
+ command :laugh do |obj|
46
+ # +obj+ is an instance of Drydock::Command. The options you define are available
47
+ # via accessors in this object.
34
48
 
35
- command :welcome do
36
- # Example: ruby bin/example
49
+ answer = !obj.faster ? "Sort of" : "Yes! I'm literally laughing as fast as possible."
37
50
 
38
- puts "Meatwad: Science is a mystery to man, isn't it Frylock?"
39
- print "Frylock: At least we have some commands: "
51
+ puts "Captain Stubing: Are you laughing?"
52
+ puts "Dr. Bricker: " << answer
53
+ end
40
54
 
41
- # The commands method returns a hash of Frylock::Command objects
42
- puts commands.keys.inject([]) { |list, command| list << command.to_s }.sort.join(', ')
43
- end
44
-
45
- option :f, :found, "A boolean value. Did you find the car?"
46
- command :findcar do |options|
47
- # +options+ is a hash containing the options defined above
48
- # Example: ruby bin/example -f findcar
49
-
50
- puts "Frylock: So, did they ever find your car?"
51
-
52
- # The keys to the hash are the long string from the option definition.
53
- # If only the short string is provided, those will be used instead (i.e. :f).
54
- puts (!options[:found]) ? "Carl: No" :
55
- "Carl: Oh, they found part of it, hangin' from a trestle near the turnpike."
56
- end
55
+ class JohnWestSmokedOysters < Drydock::Command; end;
56
+ # You can write your own command classes by inheriting from Drydock::Command
57
+ # and referencing it in the command definition.
57
58
 
59
+ command :oysters => JohnWestSmokedOysters do |obj|
60
+ p obj # => #<JohnWestSmokedOysters:0x42179c ... >
61
+ end
62
+
58
63
  == More Information
59
64
 
60
65
  http://www.youtube.com/watch?v=m_wFEB4Oxlo
data/Rakefile CHANGED
@@ -16,13 +16,10 @@ end
16
16
 
17
17
  # PACKAGE =============================================================
18
18
 
19
+ name = "drydock"
20
+ load "#{name}.gemspec"
19
21
 
20
- require File.dirname(__FILE__) + "/lib/drydock"
21
- load "drydock.gemspec"
22
-
23
- version = Drydock::VERSION.to_s
24
-
25
- Drydock.run = false
22
+ version = @spec.version
26
23
 
27
24
  Rake::GemPackageTask.new(@spec) do |p|
28
25
  p.need_tar = true if RUBY_PLATFORM !~ /mswin/
data/bin/example CHANGED
@@ -25,21 +25,17 @@ command :welcome do
25
25
  puts commands.keys.inject([]) { |list, command| list << command.to_s }.sort.join(', ')
26
26
  end
27
27
 
28
+ usage "Example: #{$0} laugh [-f]"
29
+ option :f, :faster, "A boolean value. Go even faster!"
30
+ command :laugh do |obj|
31
+ # +obj+ is an instance of Drydock::Command. The options you define are available
32
+ # via accessors in this object.
28
33
 
29
- option :f, :found, "A boolean value. Did you find the car?"
30
- command :findcar do |obj|
31
- # +obj+ is the Drylock::Command object instance. It contains accessors for all options.
32
- # Example: ruby bin/example -f findcar
33
-
34
- puts "Frylock: So, did they ever find your car?"
35
-
36
- # The keys to the hash are the long string from the option definition.
37
- # If only the short string is provided, those will be used instead (i.e. :f).
38
- puts (!obj.found) ? "Carl: No" :
39
- "Carl: Oh, they found part of it, hangin' from a trestle near the turnpike."
40
- end
41
-
34
+ answer = !obj.faster ? "Sort of" : "Yes! I'm literally laughing as fast as possible."
42
35
 
36
+ puts "Captain Stubing: Are you laughing?"
37
+ puts "Dr. Bricker: " << answer
38
+ end
43
39
 
44
40
  global_usage "USAGE: #{File.basename($0)} [global options] command [command options]"
45
41
  global_option :s, :seconds, "Display values in seconds"
@@ -74,6 +70,14 @@ command :rogue do |obj, argv|
74
70
  end
75
71
  end
76
72
 
73
+ class JohnWestSmokedOysters < Drydock::Command; end;
74
+ # You can write your own command classes by inheriting from Drydock::Command
75
+ # and referencing it in the command definition.
76
+
77
+ command :oysters => JohnWestSmokedOysters do |obj|
78
+ p obj # => #<JohnWestSmokedOysters:0x42179c ... >
79
+ end
80
+
77
81
  option :c, :check, "Check response codes for each URI"
78
82
  option :d, :delim, String, "Output delimiter"
79
83
  option :t, :timeout, Float, "Timeout value for HTTP request" do |v|
data/drydock.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  @spec = Gem::Specification.new do |s|
2
2
  s.name = %q{drydock}
3
- s.version = "0.3.1"
3
+ s.version = "0.3.2"
4
4
  s.specification_version = 1 if s.respond_to? :specification_version=
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
6
 
data/lib/drydock.rb CHANGED
@@ -113,6 +113,7 @@ module Drydock
113
113
  @@debug = false
114
114
  @@has_run = false
115
115
  @@run = true
116
+ @@default_command = nil
116
117
 
117
118
  public
118
119
  # Enable or disable debug output.
@@ -305,7 +306,7 @@ module Drydock
305
306
  def run!(argv=[], stdin=STDIN)
306
307
  return if has_run?
307
308
  @@has_run = true
308
- raise NoCommandsDefined.new unless commands
309
+ raise NoCommandsDefined.new if commands.empty?
309
310
  @@global_options, cmd_name, @@command_options, argv = process_arguments(argv)
310
311
 
311
312
  cmd_name ||= default_command
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delano-drydock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delano Mandelbaum