class Endymion::FieldSpec

Attributes

db_name[R]
default[R]
name[R]

Public Class Methods

new(name, opts={}) click to toggle source
# File lib/endymion/field_spec.rb, line 8
def initialize(name, opts={})
  @name = name
  @default = opts[:default]
  @type = opts[:type]
  @packer = opts[:packer]
  @unpacker = opts[:unpacker]
  @db_name = opts[:db_name] ? Format.format_field(opts[:db_name]) : name
  @api = opts[:api]
end

Public Instance Methods

pack(value) click to toggle source
# File lib/endymion/field_spec.rb, line 18
def pack(value)
  if @packer && @packer.respond_to?(:call)
    @packer.call(value)
  elsif @type
    type_packer = @api.packer_for(@type)
    type_packer ? type_packer.call(value) : value
  else
    value
  end
end
unpack(value) click to toggle source
# File lib/endymion/field_spec.rb, line 29
def unpack(value)
  if @unpacker && @unpacker.respond_to?(:call)
    @unpacker.call(value)
  elsif @type
    type_packer = @api.unpacker_for(@type)
    type_packer ? type_packer.call(value) : value
  else
    value
  end
end