Class: Datamappify::Repository::QueryMethod::Save

Inherits:
Method
  • Object
show all
Defined in:
lib/datamappify/repository/query_method/save.rb

Direct Known Subclasses

Create, Update

Instance Attribute Summary

Attributes inherited from Method

#data_mapper, #states

Instance Method Summary collapse

Methods inherited from Method

#attributes_walker, #dispatch_criteria_to_default_source, #dispatch_criteria_to_providers, #initialize, #reader?, #source_attributes_walker

Constructor Details

This class inherits a constructor from Datamappify::Repository::QueryMethod::Method

Instance Method Details

#contextObject (private)



41
42
43
# File 'lib/datamappify/repository/query_method/save.rb', line 41

def context
  self.class.name.demodulize.underscore.to_sym
end

#create_or_update(entity) ⇒ Entity (private)

Parameters:

Returns:

Raises:



33
34
35
36
37
38
39
# 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

#dirty_aware?Boolean

Returns:

  • (Boolean)

See Also:



17
18
19
# File 'lib/datamappify/repository/query_method/save.rb', line 17

def dirty_aware?
  true
end

#performEntity, false

Returns:



6
7
8
9
10
11
12
13
14
# 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?Boolean

Returns:

  • (Boolean)

See Also:



22
23
24
# File 'lib/datamappify/repository/query_method/save.rb', line 22

def writer?
  true
end