clive 0.4.1 → 0.5.0

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.1
1
+ 0.5.0
data/clive.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{clive}
8
- s.version = "0.4.1"
8
+ s.version = "0.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Joshua Hawxwell"]
12
- s.date = %q{2010-10-25}
12
+ s.date = %q{2010-11-16}
13
13
  s.description = %q{Clive is a DSL for creating a command line interface. It is for people who, like me, love OptionParser's syntax and love GLI's commands.}
14
14
  s.email = %q{m@hawx.me}
15
15
  s.extra_rdoc_files = [
data/lib/clive.rb CHANGED
@@ -21,6 +21,28 @@ require 'clive/bool'
21
21
  # }
22
22
  # end
23
23
  # c.parse(ARGV)
24
+ # # app -v
25
+ # #=> {:verbose => true}
26
+ #
27
+ # @example Class Style with Inheritence
28
+ #
29
+ # opts = {}
30
+ # class BasicCommands < Clive
31
+ # switch :basic do
32
+ # p "basic"
33
+ # end
34
+ # end
35
+ #
36
+ # class SubCommands < BasicCommands
37
+ # switch :sub do
38
+ # p "sub"
39
+ # end
40
+ # end
41
+ #
42
+ # SubCommands.parse(ARGV)
43
+ # # app --basic --sub
44
+ # #=> "basic"
45
+ # #=> "sub"
24
46
  #
25
47
  # @example Non-simple Example
26
48
  #
@@ -50,6 +72,8 @@ require 'clive/bool'
50
72
  # end
51
73
  # end
52
74
  # ARGV = c.parse(ARGV)
75
+ # # app add framework=blueprint --force --verbose
76
+ # #=> {:add => {:framework => ['blueprint'], :force => true}, :verbose => true}
53
77
  #
54
78
  class Clive
55
79
 
@@ -95,4 +119,28 @@ class Clive
95
119
  @base.bools
96
120
  end
97
121
 
122
+ # @group Clive Class Methods
123
+
124
+ @@base = Clive::Command.new(true)
125
+
126
+ def self.flag(*args, &block)
127
+ @@base.flag(*args, &block)
128
+ end
129
+
130
+ def self.switch(*args, &block)
131
+ @@base.switch(*args, &block)
132
+ end
133
+
134
+ def self.command(*args, &block)
135
+ @@base.command(*args, &block)
136
+ end
137
+
138
+ def self.bool(*args, &block)
139
+ @@base.bool(*args, &block)
140
+ end
141
+
142
+ def self.parse(argv)
143
+ @@base.run(argv)
144
+ end
145
+
98
146
  end
data/lib/clive/command.rb CHANGED
@@ -34,7 +34,7 @@ class Clive
34
34
 
35
35
  if args.length == 1 && args[0] == true
36
36
  @base = true
37
- self.instance_eval(&block)
37
+ self.instance_eval(&block) if block_given?
38
38
  else
39
39
  args.each do |i|
40
40
  case i
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 4
8
- - 1
9
- version: 0.4.1
7
+ - 5
8
+ - 0
9
+ version: 0.5.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Joshua Hawxwell
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-10-25 00:00:00 +01:00
17
+ date: 2010-11-16 00:00:00 +00:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency