lib/alf/command/show.rb in alf-0.10.0 vs lib/alf/command/show.rb in alf-0.10.1
- old
+ new
@@ -2,21 +2,53 @@
module Command
class Show < Alf::Command()
include Command
options do |opt|
- @renderer = nil
+ @renderer_class = nil
Renderer.each_renderer do |name,descr,clazz|
opt.on("--#{name}", "Render output #{descr}"){
- @renderer = clazz.new
+ @renderer_class = clazz
}
end
+
+ @pretty = nil
+ opt.on("--[no-]pretty",
+ "Enable/disable pretty print best effort") do |val|
+ @pretty = val
+ end
+
+ @ff = nil
+ opt.on("--ff=FORMAT",
+ "Specify the floating point format") do |val|
+ @ff = val
+ end
end
- def execute(args)
- requester.renderer = (@renderer || requester.renderer || Text::Renderer.new)
+ def run(argv, requester)
+ # set requester and parse options
+ @requester = requester
+ argv = parse_options(argv, :split)
+
+ # Set options on the requester
+ requester.pretty = @pretty unless @pretty.nil?
+ requester.rendering_options[:float_format] = @ff unless @ff.nil?
+ requester.renderer_class = (@renderer_class ||
+ requester.renderer_class ||
+ Text::Renderer)
+
+ # normalize args
+ args = argv.first
args = [ stdin_reader ] if args.empty?
- args.first
+ chain = args.first
+
+ # put a sorter
+ if argv[1]
+ sorter = Alf::Operator::NonRelational::Sort.new(argv[1])
+ chain = sorter.pipe(chain, requester.environment)
+ end
+
+ chain
end
private
def stdin_reader