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