class Apia::Scalar
Public Class Methods
cast(value = nil, &block)
click to toggle source
# File lib/apia/scalar.rb, line 19 def self.cast(value = nil, &block) if block_given? && value.nil? return definition.dsl.cast(&block) end unless valid?(value) # Before casting, we'll also validate... raise InvalidScalarValueError.new(self, value) end value = definition.cast.call(value) if definition.cast value end
definition()
click to toggle source
Return the definition for this type
@return [Apia::Definitions::Object]
# File lib/apia/scalar.rb, line 15 def self.definition @definition ||= Definitions::Scalar.new(Helpers.class_name_to_id(name)) end
parse(value = nil, &block)
click to toggle source
# File lib/apia/scalar.rb, line 40 def self.parse(value = nil, &block) if block_given? && value.nil? return definition.dsl.parse(&block) end return value if definition.parse.nil? return nil if value.nil? definition.parse.call(value) end
valid?(value)
click to toggle source
# File lib/apia/scalar.rb, line 34 def self.valid?(value) return true if definition.validator.nil? definition.validator.call(value) end