Sha256: 81a5adf89a13b70a422b7a79bc5b0a373d99e07210edc212ce9d6774e822cafb
Contents?: true
Size: 977 Bytes
Versions: 1
Compression:
Stored size: 977 Bytes
Contents
class NarrativeMethodCommand < DevSystem::Command class Error < StandardError; end class Invalid < Error; end def self.call(args) log "args = #{args.inspect}" new.call(args) end # instance methods def call(args) @args = args log "@args = #{args.inspect}" return help if args.empty? validate perform rescue StandardError => error @error = error handle ensure @result end def validate raise NotImplementedError end def perform raise NotImplementedError end def handle log render(:error, format: :txt) end def help log render(:help, format: :txt) end end __END__ # view success.txt.erb RESULT: class <%= @result.class %> value <%= @result %> # view error.txt.erb ERROR: class <%= @error.class %> message <%= @error.message %> backtrace <%= @error.backtrace.select { |s| @stop = true if s.include?("/exe/lizarb:"); !defined? @stop }.join "\n " %>
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lizarb-1.0.5 | examples/command/app/dev/commands/narrative_method_command.rb |