sickle 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 05f685b42a45b06451fd11b7942e8fdf01d9cb44
4
- data.tar.gz: 03a7527ee840f4f63c557acb29f312beca1fefa0
3
+ metadata.gz: b2f5904d330566cc14a1192320f794ea44fbbe0e
4
+ data.tar.gz: a923b565c28675350b0a39ec8c18a9c99d218d83
5
5
  SHA512:
6
- metadata.gz: f17497ea2b1218b6546076232e3f68802c39c49e326b6e9f3a8757bd84baa45c638ed1a1fc0d3906173e33708591173efd8a7d934e70ae59835540833caeb86f
7
- data.tar.gz: 8d4f3e33fd6a27a1552c01d451393fed9f0d64ce026871fa4ac4f42cf8613f0421942cb9751e008b462e17c5b939de6670c3765139d9428dfb8f41a1458fa227
6
+ metadata.gz: 6f0fab73721dfde86f4998b092e9258bf4f5c74f4e77de1dc8946d069a9591d614b3f21c0f9ea2be394c6170cdaafabe1b3112075a3f6c53445f0b05756ee190
7
+ data.tar.gz: 457d31092578700dde68a3caa60ba193985998914308edec4630152050e6d73b404b1d43b52be8a5036dd26c662fb2347f61bbddb7520a16a7468a013c6c7784
data/README.md CHANGED
@@ -43,14 +43,15 @@ require "sickle"
43
43
  class App
44
44
  include Sickle::Runner
45
45
 
46
- global_option :verbose # global flag
46
+ global_flag :verbose # global flag, defaults to false
47
+ global_option :with_prefix # global option, defaults to nil
47
48
 
48
49
  desc "install one of the available apps" # command description
49
- option :force # flag for `install` command
50
+ flag :force # flag for `install` command
50
51
  option :host, :default => "localhost" # option
51
52
  def install(name)
52
- if options[:host] # access options
53
- # do something
53
+ if options[:force] # access options
54
+ do_smth_with options[:host]
54
55
  end
55
56
  # the rest
56
57
  end
@@ -82,7 +83,7 @@ USAGE:
82
83
  mytool COMMAND [ARG1, ARG2, ...] [OPTIONS]
83
84
 
84
85
  TASKS:
85
- help [COMMAND]
86
+ help [COMMAND]
86
87
  install NAME # install one of the available apps
87
88
  list [SEARCH] # list all apps, search is possible
88
89
 
@@ -168,7 +169,7 @@ USAGE:
168
169
 
169
170
  TASKS:
170
171
  fun # have some fun at top level
171
- help [COMMAND]
172
+ help [COMMAND]
172
173
  main # top level command
173
174
  p:list # list all projects
174
175
  users:create NAME # create new user
@@ -66,7 +66,7 @@ module Sickle
66
66
  def initialize(name, opts)
67
67
  @name, @opts = name, opts
68
68
 
69
- @default = opts.has_key?(:default) ? opts[:default] : false
69
+ @default = opts.has_key?(:default) ? opts[:default] : nil
70
70
 
71
71
  if @default == true || @default == false
72
72
  @type = :boolean
@@ -198,10 +198,18 @@ module Sickle
198
198
  __global_options[name.to_s] = Option.new(name, opts)
199
199
  end
200
200
 
201
+ def global_flag(name)
202
+ global_option(name, :default => false)
203
+ end
204
+
201
205
  def option(name, opts = {})
202
206
  Sickle.push_option(name, opts)
203
207
  end
204
208
 
209
+ def flag(name)
210
+ option(name, :default => false)
211
+ end
212
+
205
213
  def include_modules(hash)
206
214
  hash.each do |key, value|
207
215
  Sickle.push_namespace(key)
@@ -1,3 +1,3 @@
1
1
  module Sickle
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -31,26 +31,28 @@ describe Sickle do
31
31
  describe "Runner" do
32
32
  it "task1" do
33
33
  App.run(["task1", "x", "y"]).must_equal(
34
- ["task1", "x", "y", "def", false, false, false, false])
35
- App.run(["task1", "x", "y", "z", "--verbose", "--with-prefix"]).must_equal(
36
- ["task1", "x", "y", "z", false, true, false, true])
34
+ ["task1", "x", "y", "def", false, false, nil, nil])
35
+ App.run(["task1", "x", "y", "z", "--verbose", "--with-prefix", "some/path/to"]).must_equal(
36
+ ["task1", "x", "y", "z", false, true, nil, "some/path/to"])
37
+ App.run(["task1", "--verbose", "x", "y"]).must_equal(
38
+ ["task1", "x", "y", "def", false, true, nil, nil])
37
39
  end
38
40
 
39
41
  it "task2" do
40
42
  App.run(["task2"]).must_equal(
41
- ["task2", 10, false, false, false, false])
43
+ ["task2", 10, false, false, false, nil])
42
44
  App.run(%w(task2 --fast)).must_equal(
43
- ["task2", 10, true, false, false, false])
45
+ ["task2", 10, true, false, false, nil])
44
46
  App.run(%w(task2 --slow)).must_equal(
45
- ["task2", 10, false, true, false, false])
47
+ ["task2", 10, false, true, false, nil])
46
48
  App.run(%w(task2 --verbose)).must_equal(
47
- ["task2", 10, false, false, true, false])
48
- App.run(%w(task2 --debug)).must_equal(
49
- ["task2", 10, false, false, false, true])
49
+ ["task2", 10, false, false, true, nil])
50
+ App.run(%w(task2 --debug 1)).must_equal(
51
+ ["task2", 10, false, false, false, "1"])
50
52
  App.run(%w(task2 --fast --slow --verbose)).must_equal(
51
- ["task2", 10, true, true, true, false])
53
+ ["task2", 10, true, true, true, nil])
52
54
  App.run(%w(task2 --number 40)).must_equal(
53
- ["task2", 40, false, false, false, false])
55
+ ["task2", 40, false, false, false, nil])
54
56
  end
55
57
 
56
58
  it "sub:sub1" do
@@ -45,19 +45,19 @@ end
45
45
  class App
46
46
  include Sickle::Runner
47
47
 
48
- global_option :verbose
48
+ global_flag :verbose
49
49
  global_option :debug
50
50
 
51
51
  desc "Run task 1"
52
- option :quiet
52
+ flag :quiet
53
53
  option :with_prefix
54
54
  def task1(a, b, c = "def")
55
55
  p ["task1", a, b, c, options[:quiet], options[:verbose], options[:debug], options[:with_prefix]]
56
56
  end
57
57
 
58
58
  desc "Run task 2"
59
- option :fast
60
- option :slow
59
+ flag :fast
60
+ flag :slow
61
61
  option :number, :default => 10
62
62
  def task2
63
63
  p ["task2", options[:number], options[:fast], options[:slow], options[:verbose], options[:debug]]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sickle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tymon Tobolski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-07 00:00:00.000000000 Z
11
+ date: 2013-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler