class Reflekt::MetaBuilder
Public Class Methods
create(value)
click to toggle source
Create meta type for matching data type.
@logic
1. First return basic type 2. Then return custom type 3. Then return "nil" type
@param value [Dynamic] Any input or output.
# File lib/meta_builder.rb, line 25 def self.create(value) meta = nil data_type = value.class.to_s case data_type when "Array" meta = ArrayMeta.new() when "TrueClass", "FalseClass" meta = BooleanMeta.new() when "Float" meta = FloatMeta.new() when "Integer" meta = IntegerMeta.new() when "String" meta = StringMeta.new() else unless value.nil? meta = ObjectMeta.new() end end unless meta.nil? meta.load(value) end return meta end
create_many(values)
click to toggle source
Create meta for multiple values.
@param values
# File lib/meta_builder.rb, line 60 def self.create_many(values) meta = [] values.each do |value| meta << self.create(value) end return meta end
data_type_to_meta_type(value)
click to toggle source
@param data_type [Type]
# File lib/meta_builder.rb, line 75 def self.data_type_to_meta_type(value) data_type = value.class meta_types = { Array => :array, TrueClass => :bool, FalseClass => :bool, Float => :float, Integer => :int, NilClass => :null, String => :string } if meta_types.key? data_type return meta_types[data_type] elsif value.nil? return nil else return :object end end