module Scale::Types::Base

Attributes

value[R]

Public Class Methods

included(base) click to toggle source
# File lib/scale/base.rb, line 45
def self.included(base)
  base.extend(ClassMethods)
  base.const_set(:TYPE_NAME, base.name)
end
new(value) click to toggle source
# File lib/scale/base.rb, line 7
def initialize(value)
  @value = value
end

Public Instance Methods

==(other) click to toggle source
# File lib/scale/base.rb, line 11
def ==(other)
  self.class == other.class && self.value == other.value
end
to_human() click to toggle source
# File lib/scale/base.rb, line 15
def to_human
  if @value.class == ::Hash
    @value.transform_values do |v|
      if v.class.included_modules.include?(Base)
        v.to_human
      else
        v
      end
    end.transform_keys(&:to_sym)
  elsif @value.class == ::Array
    @value.map do |v|
      if v.class.included_modules.include?(Base)
        v.to_human
      else
        v
      end
    end
  elsif @value.class.include?(Base)
    @value.to_human
  else
    @value
  end
end