slop 0.1.7 → 0.1.8

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 (3) hide show
  1. data/lib/slop.rb +8 -3
  2. data/spec/slop_spec.rb +14 -0
  3. metadata +3 -3
data/lib/slop.rb CHANGED
@@ -5,7 +5,7 @@ require 'slop/option'
5
5
  class Slop
6
6
  include Enumerable
7
7
 
8
- VERSION = '0.1.7'
8
+ VERSION = '0.1.8'
9
9
 
10
10
  # Raised when an option expects an argument and none is given
11
11
  class MissingArgumentError < ArgumentError; end
@@ -152,8 +152,13 @@ class Slop
152
152
  private
153
153
 
154
154
  def flag_or_option?(flag)
155
- return unless flag
156
- flag[1, 2].include?('-')
155
+ return unless flag && flag.size > 1
156
+
157
+ if flag[1] == '-'
158
+ return flag[0] == '-' && flag[3]
159
+ elsif flag[0] == '-'
160
+ return !flag[3]
161
+ end
157
162
  end
158
163
 
159
164
  def pad_options(args)
data/spec/slop_spec.rb CHANGED
@@ -108,6 +108,11 @@ describe Slop do
108
108
  it "does not require argument to be true if optional is true" do
109
109
  Slop.parse("--name Lee") { opt :name, :optional => true }.value_for(:name).should == "Lee"
110
110
  end
111
+
112
+ it "responds to both long options and single character flags" do
113
+ Slop.parse("--name Lee") { opt :name, true }[:name].should == "Lee"
114
+ Slop.parse("-n Lee") { opt :n, :name, true }[:name].should == "Lee"
115
+ end
111
116
  end
112
117
 
113
118
  describe "options" do
@@ -145,4 +150,13 @@ describe Slop do
145
150
  end
146
151
  end
147
152
 
153
+ describe "flag_or_option?" do
154
+ it "should be true if the string is a flag or an option" do
155
+ good = ["-f", "--flag"]
156
+ bad = ["-flag", "f", "flag", "f-lag", "flag-", "--", "-"]
157
+ good.each {|g| @slop.send(:flag_or_option?, g).should be_true }
158
+ bad.each {|b| @slop.send(:flag_or_option?, b).should be_false }
159
+ end
160
+ end
161
+
148
162
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 7
9
- version: 0.1.7
8
+ - 8
9
+ version: 0.1.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Lee Jarvis
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: 2.1.0
33
33
  type: :development
34
34
  version_requirements: *id001
35
- description: ""
35
+ description: A simple DSL for gathering options and parsing the command line
36
36
  email: lee@jarvis.co
37
37
  executables: []
38
38