class Kungfuig::Aspector::H
Helper methods
Public Instance Methods
proc_instance(string)
click to toggle source
# File lib/kungfuig/aspector.rb, line 34 def proc_instance string m, k = string.split('#').reverse (k ? Kernel.const_get(k).method(m) : method(m)).to_proc end
remap_hash_for_easy_iteration(hash)
click to toggle source
# File lib/kungfuig/aspector.rb, line 25 def remap_hash_for_easy_iteration hash hash = hash.each_with_object(Hashie::Mash.new) do |(k, v), memo| v.each { |m, c| memo.public_send("#{m}!")[k] = c } end unless (hash.keys - %w(before after exclude)).empty? hash.each_with_object({}) do |(k, v), memo| v.each { |m, h| ((memo[h] ||= {})[k.to_sym] ||= []) << m } end end
try_to_class(name)
click to toggle source
# File lib/kungfuig/aspector.rb, line 39 def try_to_class name Kernel.const_defined?(name.to_s) ? Kernel.const_get(name.to_s) : name end
value_to_method_list(klazz, values_inc, values_exc)
click to toggle source
# File lib/kungfuig/aspector.rb, line 6 def value_to_method_list klazz, values_inc, values_exc # FIXME MOVE JOKER HANDLING INTO PREPENDER !!!! if klazz.is_a?(Module) [values_inc, values_exc].map do |v| v = [*v].map(&:to_sym) case when v.empty? then [] when v.include?('*'), v.include?(:'*') then klazz.instance_methods(false) else klazz.instance_methods & v end end.reduce(&:-) - klazz.instance_methods(false).select { |m| m.to_s.start_with?('to_') } else # NOT YET IMPLEMENTED FIXME MOVE TO PREPENDER [values_inc, values_exc].map do |v| [*v].map(&:to_sym) end.reduce(&:-) - [:'*'] end end