module Finix::Utils
Public Instance Methods
callable(callable_or_not)
click to toggle source
# File lib/finix/utils.rb, line 10 def callable(callable_or_not) callable_or_not.respond_to?(:call) ? callable_or_not : lambda { callable_or_not } end
demodulize(class_name_in_module)
click to toggle source
# File lib/finix/utils.rb, line 43 def demodulize(class_name_in_module) class_name_in_module.to_s.sub(/^.*::/, '') end
eval_class(slf, cls)
click to toggle source
# File lib/finix/utils.rb, line 3 def eval_class(slf, cls) mod = slf.class.name.sub(/::.*/, '') unless slf.kind_of? Class or slf.kind_of? Module mod = slf.name.sub(/::.*/, '') if mod.nil? name = demodulize cls.name self.instance_eval "#{mod}::#{name}" end
indifferent_read_access(base = {})
click to toggle source
# File lib/finix/utils.rb, line 14 def indifferent_read_access(base = {}) indifferent = Hash.new do |hash, key| hash[key.to_s] if key.is_a? Symbol end base.each_pair do |key, value| if value.is_a? Hash value = indifferent_read_access value elsif value.respond_to? :each if value.respond_to? :map! value.map! do |v| if v.is_a? Hash v = indifferent_read_access v end v end else value.map do |v| if v.is_a? Hash v = indifferent_read_access v end v end end end indifferent[key.to_s] = value end indifferent end