class PikoStore::BaseDocument

Public Class Methods

new(data) click to toggle source
# File lib/piko_store/base_document.rb, line 27
def initialize(data)
  @data = data
  logger.debug { format "%s", to_h }
end

Public Instance Methods

id() click to toggle source
# File lib/piko_store/base_document.rb, line 32
def id
  raise NotImplementedError
end
to_h() click to toggle source
# File lib/piko_store/base_document.rb, line 36
def to_h
  raise NotImplementedError
end
to_hash() click to toggle source
# File lib/piko_store/base_document.rb, line 40
def to_hash
  to_h
end
to_s() click to toggle source
# File lib/piko_store/base_document.rb, line 44
def to_s
  to_h.to_s
end

Private Instance Methods

converted_id() click to toggle source
# File lib/piko_store/base_document.rb, line 58
def converted_id
  to_objectid_if_needed(id_from_data)
end
data_with_converted_id() click to toggle source
# File lib/piko_store/base_document.rb, line 74
def data_with_converted_id
  return data_without_id if id.nil? && !id_in_data?
  data_without_id.merge(_id: id)
end
data_without_id() click to toggle source
# File lib/piko_store/base_document.rb, line 66
def data_without_id
  @data.reject { |k, _| ["_id", :_id].include?(k) }
end
generated_id() click to toggle source
# File lib/piko_store/base_document.rb, line 62
def generated_id
  BSON::ObjectId.new
end
id_from_data() click to toggle source
# File lib/piko_store/base_document.rb, line 54
def id_from_data
  @data[:_id] || @data["_id"]
end
id_in_data?() click to toggle source
# File lib/piko_store/base_document.rb, line 70
def id_in_data?
  @data.key?(:_id) || @data.key?("_id")
end
to_objectid_if_needed(id) click to toggle source
# File lib/piko_store/base_document.rb, line 50
def to_objectid_if_needed(id)
  BSON::ObjectId.legal?(id) ? BSON::ObjectId(id) : id
end