class Datamappify::Repository::QueryMethod::Save

Public Instance Methods

dirty_aware?() click to toggle source

@see Method#dirty_aware?

# File lib/datamappify/repository/query_method/save.rb, line 17
def dirty_aware?
  true
end
perform() click to toggle source

@return [Entity, false]

# File lib/datamappify/repository/query_method/save.rb, line 6
def perform
  states.update(@entity) do
    create_or_update(@entity)
  end

  @entity
rescue Data::EntityInvalid
  false
end
writer?() click to toggle source

@see Method#writer?

# File lib/datamappify/repository/query_method/save.rb, line 22
def writer?
  true
end

Private Instance Methods

context() click to toggle source
# File lib/datamappify/repository/query_method/save.rb, line 41
def context
  self.class.name.demodulize.underscore.to_sym
end
create_or_update(entity) click to toggle source

@param entity [Entity]

@raise [Data::EntityInvalid]

@return [Entity]

# File lib/datamappify/repository/query_method/save.rb, line 33
def create_or_update(entity)
  raise Data::EntityInvalid.new(entity) if entity.invalid?(context)

  dispatch_criteria_to_providers(:SaveByKey, entity)

  entity
end