frag 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +4 -0
- data/lib/frag/app.rb +11 -3
- data/lib/frag/version.rb +1 -1
- data/test/unit/test_app.rb +19 -1
- metadata +3 -3
data/CHANGELOG
CHANGED
data/lib/frag/app.rb
CHANGED
@@ -12,7 +12,11 @@ module Frag
|
|
12
12
|
|
13
13
|
@state = State.new('frag:', 'frag end', '#', '', nil, nil)
|
14
14
|
|
15
|
-
|
15
|
+
begin
|
16
|
+
parser.parse!(args)
|
17
|
+
rescue OptionParser::InvalidOption => e
|
18
|
+
return error e.message
|
19
|
+
end
|
16
20
|
args.size > 0 || @version_printed or
|
17
21
|
return error "no files given"
|
18
22
|
|
@@ -100,7 +104,7 @@ module Frag
|
|
100
104
|
def parse_subconfig!(args)
|
101
105
|
self.parsing_subconfig = true
|
102
106
|
# OptionParser will error on an argument like like "-->".
|
103
|
-
if args.last =~ /\A--?(
|
107
|
+
if args.last =~ /\A--?(?:[^0-9a-zA-Z]|\z)/
|
104
108
|
last_arg = args.pop
|
105
109
|
parse!(args)
|
106
110
|
args << last_arg
|
@@ -164,7 +168,11 @@ module Frag
|
|
164
168
|
output.puts line
|
165
169
|
when /\A\s*(?:(\S+)\s*)?\$frag-config:\s*(.*)$/
|
166
170
|
args = Shellwords.shellsplit($2)
|
167
|
-
|
171
|
+
begin
|
172
|
+
parser.parse_subconfig!(args)
|
173
|
+
rescue OptionParser::InvalidOption => e
|
174
|
+
return error "#{input.lineno}: #{e.message}"
|
175
|
+
end
|
168
176
|
args.size <= 1 or
|
169
177
|
return error "#{input.lineno}: unexpected argument(s): #{args[0..-2].join(' ')}"
|
170
178
|
@state.leader = $1 || ''
|
data/lib/frag/version.rb
CHANGED
data/test/unit/test_app.rb
CHANGED
@@ -371,6 +371,7 @@ describe Frag::App do
|
|
371
371
|
|# $frag-config: --leader %
|
372
372
|
EOS
|
373
373
|
frag('input').must_equal 0
|
374
|
+
output.string.must_equal ''
|
374
375
|
error.string.must_equal "warning: -l / --leader is unnecessary in $frag-config line\n"
|
375
376
|
end
|
376
377
|
|
@@ -379,6 +380,7 @@ describe Frag::App do
|
|
379
380
|
|# $frag-config: --trailer %
|
380
381
|
EOS
|
381
382
|
frag('input').must_equal 0
|
383
|
+
output.string.must_equal ''
|
382
384
|
error.string.must_equal "warning: -t / --trailer is unnecessary in $frag-config line\n"
|
383
385
|
end
|
384
386
|
|
@@ -502,12 +504,22 @@ describe Frag::App do
|
|
502
504
|
EOS
|
503
505
|
end
|
504
506
|
|
507
|
+
it "errors if there is an invalid option" do
|
508
|
+
write_file 'input', <<-EOS.demargin
|
509
|
+
|# $frag-config: --invalid x
|
510
|
+
EOS
|
511
|
+
frag('input').must_equal 1
|
512
|
+
output.string.must_equal ''
|
513
|
+
error.string.must_match /invalid option: --invalid/
|
514
|
+
end
|
515
|
+
|
505
516
|
it "errors if there are stray arguments" do
|
506
517
|
write_file 'input', <<-EOS.demargin
|
507
518
|
|# $frag-config: arg trailer
|
508
519
|
EOS
|
509
520
|
frag('input').must_equal 1
|
510
|
-
|
521
|
+
output.string.must_equal ''
|
522
|
+
error.string.must_match /unexpected argument/
|
511
523
|
end
|
512
524
|
end
|
513
525
|
|
@@ -584,6 +596,12 @@ describe Frag::App do
|
|
584
596
|
EOS
|
585
597
|
end
|
586
598
|
|
599
|
+
it "prints an error if an invalid option is given" do
|
600
|
+
frag('--invalid').must_equal 1
|
601
|
+
output.string.must_equal ''
|
602
|
+
error.string.must_match /invalid option: --invalid/
|
603
|
+
end
|
604
|
+
|
587
605
|
it "prints an error if an input file does not exist" do
|
588
606
|
frag('input').must_equal 1
|
589
607
|
output.string.must_equal ''
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: frag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -64,7 +64,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
64
64
|
version: '0'
|
65
65
|
segments:
|
66
66
|
- 0
|
67
|
-
hash:
|
67
|
+
hash: 2629403589841448314
|
68
68
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
69
|
none: false
|
70
70
|
requirements:
|
@@ -73,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
73
73
|
version: '0'
|
74
74
|
segments:
|
75
75
|
- 0
|
76
|
-
hash:
|
76
|
+
hash: 2629403589841448314
|
77
77
|
requirements: []
|
78
78
|
rubyforge_project:
|
79
79
|
rubygems_version: 1.8.24
|