class Copper::DataTypes::DataType
Constants
- CLASS_MAP
- DATATYPE_MAP
Public Class Methods
factory(poro)
click to toggle source
returns a DataType
based on the given PORO this is to control the attribute exposure, better error handling, etc
# File lib/copper/data_types/data_type.rb, line 48 def self.factory(poro) poro_class = poro.class.name clazz = self.get_class(poro_class) return clazz.new(poro) end
get_class(class_name)
click to toggle source
# File lib/copper/data_types/data_type.rb, line 55 def self.get_class(class_name) raise RuntimeError, "unknown class #{class_name}" unless ::Copper::DataTypes::DataType::CLASS_MAP.has_key?(class_name) return Module.const_get(::Copper::DataTypes::DataType::CLASS_MAP[class_name]) rescue NameError => exc raise ::Copper::RuntimeError, "invalid return type #{class_name}" end
new(value)
click to toggle source
# File lib/copper/data_types/data_type.rb, line 30 def initialize(value) @value = value end
Public Instance Methods
as(clazz)
click to toggle source
# File lib/copper/data_types/data_type.rb, line 38 def as(clazz) clazz = ::Copper::DataTypes::DataType::DATATYPE_MAP[clazz] raise RuntimeError, "No class called #{clazz} found" if clazz.nil? found_class = ::Copper::DataTypes::DataType.get_class(clazz) return found_class.new(@value) end
value()
click to toggle source
# File lib/copper/data_types/data_type.rb, line 34 def value @value end