module Datacaster

Constants

VERSION

Public Class Methods

ErrorResult(object, meta: nil) click to toggle source
# File lib/datacaster/result.rb, line 52
def self.ErrorResult(object, meta: nil)
  if object.is_a?(Result)
    raise "Can't create error result from valid #{object.inspect}" if object.valid?
    object.meta = meta if meta
    object
  else
    Result.new(false, object, meta: meta)
  end
end
ValidResult(object, meta: nil) click to toggle source
# File lib/datacaster/result.rb, line 42
def self.ValidResult(object, meta: nil)
  if object.is_a?(Result)
    raise "Can't create valid result from error #{object.inspect}" unless object.valid?
    object.meta = meta if meta
    object
  else
    Result.new(true, object, meta: meta)
  end
end
absent() click to toggle source
# File lib/datacaster.rb, line 47
def self.absent
  Datacaster::Absent.instance
end
partial_schema(&block) click to toggle source
# File lib/datacaster.rb, line 36
def self.partial_schema(&block)
  raise "Expected block" unless block

  datacaster = RunnerContext.instance.instance_eval(&block)
  unless datacaster.is_a?(Base)
    raise "Datacaster instance should be returned from a block (e.g. result of 'hash(...)' call)"
  end

  datacaster
end
schema(&block) click to toggle source
# File lib/datacaster.rb, line 25
def self.schema(&block)
  raise "Expected block" unless block

  datacaster = RunnerContext.instance.instance_eval(&block)
  unless datacaster.is_a?(Base)
    raise "Datacaster instance should be returned from a block (e.g. result of 'hash_schema(...)' call)"
  end

  datacaster & Terminator.instance
end