class Naginata::Command::ExternalCommand
Public Class Methods
dispatch(action, options = {})
click to toggle source
# File lib/naginata/command/external_command.rb, line 11 def self.dispatch(action, options = {}) action = action.to_s.upcase.to_sym raise ArgumentError, "action name #{action} is not implemented" unless List.include? action raise ArgumentError, ":path option is required" if options[:path].nil? ts = options[:ts] || Time.now.to_i format = 'echo "[%d] %s" > %s' str = [action.to_s, List.keys_for(action).map{|k| options[k.to_sym]}].flatten.join(';') format % [ts, str, options[:path]] end
method_missing(name, *args, &block)
click to toggle source
# File lib/naginata/command/external_command.rb, line 5 def self.method_missing(name, *args, &block) raise ArgumentError, "only one argment allowed" if args.size > 1 options = args.first || {} dispatch(name, options) end