class Kanade::Converter::Symbol

Public Instance Methods

deserialize(term, field_info) click to toggle source
# File lib/kanade/converter/symbol.rb, line 14
def deserialize(term, field_info)
  # TODO WARNING: This is not thread safe!
  # Consider moving this into field definition instead
  build_field_info(field_info) if field_info.options[:mapping_inverted].nil?

  return nil if term.nil?
  inv = field_info.options[:mapping_inverted][term]
  return inv unless inv.nil?

  # TODO use contract!
  term.to_s.downcase.to_sym
end
serialize(term, field_info) click to toggle source
# File lib/kanade/converter/symbol.rb, line 6
def serialize(term, field_info)
  return nil if term.nil?
  map = field_info.options[:mapping]
  map_entry = map[term] unless map.nil?
  return map_entry unless map_entry.nil?
  term.to_s.upcase
end

Private Instance Methods

build_field_info(fi) click to toggle source
# File lib/kanade/converter/symbol.rb, line 30
def build_field_info fi
  if fi.options[:mapping].nil?
    inverted = {}
  else
    inverted = fi.options[:mapping].invert
  end

  fi.options[:mapping_inverted] = inverted
end