class EverydayThorUtil::CommonHelpers
Public Class Methods
call_original_method(args, base, block, method_name, original_method)
click to toggle source
# File lib/everyday_thor_util/common.rb, line 49 def call_original_method(args, base, block, method_name, original_method) begin original_method.bind(base).call(*args, &block) rescue ArgumentError => e base.class.handle_argument_error(base.class.commands[method_name], e, args, original_method.arity) end end
debug_and_call_original(args, base, env_sym, method_name, option_sym, original_method, &block)
click to toggle source
# File lib/everyday_thor_util/common.rb, line 66 def debug_and_call_original(args, base, env_sym, method_name, option_sym, original_method, &block) print_debug_if_should(option_sym, env_sym, base, original_method, method_name, args) call_original_method(args, base, block, method_name, original_method) end
define_debug_wrapper(base, env_sym, method_name, option_sym)
click to toggle source
# File lib/everyday_thor_util/common.rb, line 57 def define_debug_wrapper(base, env_sym, method_name, option_sym) base.class_eval { original_method = instance_method(method_name) define_non_command(method_name) { |*args, &block| EverydayThorUtil::CommonHelpers.debug_and_call_original(args, self, env_sym, method_name, option_sym, original_method, &block) } } end
env_val_true(d)
click to toggle source
# File lib/everyday_thor_util/common.rb, line 41 def env_val_true(d) d == '1' || d == 1 || d == 'true' || d == 't' end
print_all_debug(args, method, obj, original_method)
click to toggle source
# File lib/everyday_thor_util/common.rb, line 26 def print_all_debug(args, method, obj, original_method) print_base_debug(method, obj) original_method.parameters.each_with_index { |p, i| puts "#{p[1].to_s}: #{args[i]}" } end
print_base_debug(method, obj)
click to toggle source
# File lib/everyday_thor_util/common.rb, line 31 def print_base_debug(method, obj) puts "command: #{obj.class.basename2} #{method.gsub(/_/, '-').to_s}" puts "parent_options: #{obj.parent_options.inspect}" puts "options: #{obj.options.inspect}" end
print_debug_if_should(option_sym, env_sym, obj, original_method, method, args)
click to toggle source
# File lib/everyday_thor_util/common.rb, line 22 def print_debug_if_should(option_sym, env_sym, obj, original_method, method, args) print_all_debug(args, method, obj, original_method) if should_debug?(env_sym, obj, option_sym) end
should_debug?(env_sym, obj, option_sym)
click to toggle source
# File lib/everyday_thor_util/common.rb, line 37 def should_debug?(env_sym, obj, option_sym) should_use_option_sym?(obj, option_sym) ? obj.options[option_sym.to_sym] : (env_sym && env_val_true(ENV[env_sym.to_s])) end
should_use_option_sym?(obj, option_sym)
click to toggle source
# File lib/everyday_thor_util/common.rb, line 45 def should_use_option_sym?(obj, option_sym) option_sym && (obj.options.has_key?(option_sym.to_s) || obj.options.has_key?(option_sym.to_sym)) end