main 2.8.2 → 2.8.3
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/TODO +10 -0
- data/install.rb +0 -0
- data/lib/main.rb +1 -1
- data/lib/main/base.rb +1 -1
- data/lib/main/parameter.rb +29 -14
- data/samples/h.rb +34 -0
- metadata +6 -3
data/TODO
CHANGED
@@ -1,4 +1,14 @@
|
|
1
1
|
|
2
|
+
* support pathname casts
|
3
|
+
* support uri casts
|
4
|
+
* support filename casts
|
5
|
+
* support directory costs
|
6
|
+
* support io cast '-' (:input, :output)
|
7
|
+
|
8
|
+
* fix weird super bug jeremy found
|
9
|
+
|
10
|
+
* figure out how to support '-' ??
|
11
|
+
|
2
12
|
* clean up warnings under 'ruby -d'
|
3
13
|
* error reporting weird for some errors
|
4
14
|
|
data/install.rb
CHANGED
File without changes
|
data/lib/main.rb
CHANGED
data/lib/main/base.rb
CHANGED
data/lib/main/parameter.rb
CHANGED
@@ -305,21 +305,36 @@ puts
|
|
305
305
|
end
|
306
306
|
|
307
307
|
class List < ::Array
|
308
|
-
|
308
|
+
fattr :main
|
309
|
+
fattr :argv
|
310
|
+
fattr :env
|
311
|
+
|
312
|
+
def parse main
|
313
|
+
@main, @argv, @env = main, main.argv, main.env
|
314
|
+
|
309
315
|
ignore, stop = [], argv.index('--')
|
316
|
+
|
310
317
|
if stop
|
311
318
|
ignore = argv[stop .. -1]
|
312
319
|
(argv.size - stop).times{ argv.pop }
|
313
320
|
end
|
321
|
+
|
314
322
|
parse_options argv
|
323
|
+
|
315
324
|
return 'help' if detect{|p| p.name.to_s == 'help' and p.given?}
|
325
|
+
|
316
326
|
parse_keywords argv
|
317
327
|
parse_arguments argv
|
318
328
|
parse_environment env
|
329
|
+
|
319
330
|
defaults!
|
320
331
|
validate!
|
332
|
+
|
321
333
|
argv.push *ignore[1 .. -1] unless ignore.empty?
|
322
|
-
|
334
|
+
|
335
|
+
return self
|
336
|
+
ensure
|
337
|
+
@main, @argv, @env = nil
|
323
338
|
end
|
324
339
|
|
325
340
|
def parse_options argv, params = nil
|
@@ -463,7 +478,7 @@ puts
|
|
463
478
|
each do |p|
|
464
479
|
if(p.defaults? and (not p.given?))
|
465
480
|
p.defaults.each do |default|
|
466
|
-
p.values << default # so as NOT to set 'given?'
|
481
|
+
p.values << (default.respond_to?('to_proc') ? main.instance_eval(&default) : default) # so as NOT to set 'given?'
|
467
482
|
end
|
468
483
|
end
|
469
484
|
end
|
@@ -624,19 +639,19 @@ puts
|
|
624
639
|
end
|
625
640
|
alias_method 'desc', 'description'
|
626
641
|
|
627
|
-
def default
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
param.defaults.push *values
|
642
|
+
def default *values, &block
|
643
|
+
if block.nil? and values.empty?
|
644
|
+
raise ArgumentError, 'no default'
|
645
|
+
end
|
646
|
+
unless values.empty?
|
647
|
+
param.defaults.push *values
|
648
|
+
end
|
649
|
+
unless block.nil?
|
650
|
+
param.defaults.push block
|
651
|
+
end
|
638
652
|
param.defaults
|
639
653
|
end
|
654
|
+
alias_method 'defaults', 'default'
|
640
655
|
def defaults?
|
641
656
|
param.defaults?
|
642
657
|
end
|
data/samples/h.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'main'
|
2
|
+
|
3
|
+
#
|
4
|
+
# ./h.rb #=> forty-two
|
5
|
+
# ./h.rb a #=> 42
|
6
|
+
# ./h.rb b #=> 42.0
|
7
|
+
#
|
8
|
+
|
9
|
+
Main {
|
10
|
+
fattr :default_for_foobar => 'forty-two'
|
11
|
+
|
12
|
+
option(:foobar) do
|
13
|
+
default{ default_for_foobar }
|
14
|
+
end
|
15
|
+
|
16
|
+
mixin :foo do
|
17
|
+
fattr :default_for_foobar => 42
|
18
|
+
end
|
19
|
+
|
20
|
+
mixin :bar do
|
21
|
+
fattr :default_for_foobar => 42.0
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
run{ p params[:foobar].value }
|
26
|
+
|
27
|
+
mode :a do
|
28
|
+
mixin :foo
|
29
|
+
end
|
30
|
+
|
31
|
+
mode :b do
|
32
|
+
mixin :bar
|
33
|
+
end
|
34
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: main
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.8.
|
4
|
+
version: 2.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ara T. Howard
|
@@ -9,11 +9,12 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-10-22 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: fattr
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
@@ -23,6 +24,7 @@ dependencies:
|
|
23
24
|
version:
|
24
25
|
- !ruby/object:Gem::Dependency
|
25
26
|
name: arrayfields
|
27
|
+
type: :runtime
|
26
28
|
version_requirement:
|
27
29
|
version_requirements: !ruby/object:Gem::Requirement
|
28
30
|
requirements:
|
@@ -65,6 +67,7 @@ files:
|
|
65
67
|
- samples/e.rb
|
66
68
|
- samples/f.rb
|
67
69
|
- samples/g.rb
|
70
|
+
- samples/h.rb
|
68
71
|
- test
|
69
72
|
- test/main.rb
|
70
73
|
- TODO
|
@@ -90,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
93
|
requirements: []
|
91
94
|
|
92
95
|
rubyforge_project: codeforpeople
|
93
|
-
rubygems_version: 1.0
|
96
|
+
rubygems_version: 1.2.0
|
94
97
|
signing_key:
|
95
98
|
specification_version: 2
|
96
99
|
summary: main
|