lib/hirb/console.rb in cldwalker-hirb-0.1.2 vs lib/hirb/console.rb in cldwalker-hirb-0.2.0

- old
+ new

@@ -1,17 +1,43 @@ module Hirb - # This class is meant to be extended to provide methods for use in a console/irb shell. + # This module is meant to be extended to provide methods for use in a console/irb shell. # For example: # irb>> extend Hirb::Console # irb>> view 'some string', :class=>Some::String::Formatter # irb>> table [[:row1], [:row2]] module Console + class<<self + # A console version of render_output() which takes its same options but allows for shorthand. All options are passed to + # the helper except for the formatter options. Formatter options are :class, :method and :output_method. + # Examples: + # render_output output, :class=>:tree :type=>:directory + # # is the same as: + # render_output output, :class=>:tree, :options=> {:type=>:directory} + # + def render_output(output, options={}) + View.load_config unless View.config_loaded? + View.render_output(output, options.merge(:console=>true)) + end + + # Takes same arguments and options as render_output() but returns formatted output instead of rendering it. + def format_output(output, options={}, &block) + View.load_config unless View.config_loaded? + View.formatter.format_output(output, options.merge(:console=>true), &block) + end + end + # Renders a table for the given object. Takes same options as Hirb::Helpers::Table.render. def table(output, options={}) - Hirb::View.console_render_output(output, options.merge(:class=>"Hirb::Helpers::AutoTable")) + Console.render_output(output, options.merge(:class=>"Hirb::Helpers::AutoTable")) end - # Renders any specified view for the given object. Takes same options as Hirb::View.console_render_output. - def view(*args) - Hirb::View.console_render_output(*args) + + # Renders any specified view for the given object. Takes same options as Hirb::View.render_output. + def view(output, options={}) + Console.render_output(*args) + end + + # Renders a menu given an array using Hirb::Menu.render. + def menu(output, options={}, &block) + Console.format_output(output, options.merge(:class=>"Hirb::Menu"), &block) end end end