class Object
Public Instance Methods
callable?()
click to toggle source
# File lib/abstractivator/proc_ext.rb, line 173 def callable? respond_to?(:call) end
define_enum(name, *fields)
click to toggle source
# File lib/abstractivator/enum.rb, line 63 def define_enum(name, *fields) if respond_to?(:const_set) const_set(name, make_enum(*fields)) else # top-level Object.send(:const_set, name, make_enum(*fields)) end end
make_enum(*fields)
click to toggle source
# File lib/abstractivator/enum.rb, line 71 def make_enum(*fields) if fields.size == 1 && fields.first.is_a?(Hash) && fields.first.keys.all?{|f| f.is_a?(Symbol)} fields = fields.first Class.new do include Enum private_class_method :new fields.each_pair do |k, v| val = new(v) fld = k.to_s.upcase.to_sym const_set(fld, val) end end elsif fields.all?{|f| f.is_a?(Symbol)} make_enum(fields.hash_map(&:to_s)) else raise 'Arguments must be one or more symbols or a single symbol-keyed hash' end end
proxy_send(method_name, *args, **kws, &block)
click to toggle source
# File lib/abstractivator/proc_ext.rb, line 177 def proxy_send(method_name, *args, **kws, &block) if method(method_name).accepts_keywords send(method_name, *args, **kws, &block) elsif kws.any? send(method_name, *(args + [kws]), &block) else send(method_name, *args, &block) end end
value_map() { |self| ... }
click to toggle source
# File lib/abstractivator/value_map.rb, line 12 def value_map yield self end