29 lines
552 B
Ruby
29 lines
552 B
Ruby
module Outputtable
|
|
|
|
def data_to_output
|
|
@list || @show
|
|
end
|
|
|
|
def outputter
|
|
raise 'You should use "output_with" method to define outputter' unless defined?(outputter_class)
|
|
@outputter ||= outputter_class.new(data_to_output, options.merge(current_command: current_command))
|
|
end
|
|
|
|
def output(options={})
|
|
outputter.output(options)
|
|
end
|
|
|
|
|
|
def self.included(base)
|
|
base.extend(ClassMethods)
|
|
end
|
|
|
|
module ClassMethods
|
|
def output_with(klass)
|
|
define_method :outputter_class do
|
|
klass
|
|
end
|
|
end
|
|
end
|
|
|
|
end |