Class: InOrder::Remove

Inherits:
Object
  • Object
show all
Includes:
Aux::GetElement
Defined in:
app/models/in_order/remove.rb

Overview

Takes an element out of a list

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(element_id, destroy: true) ⇒ Remove

Returns a new instance of Remove.



10
11
12
13
14
# File 'app/models/in_order/remove.rb', line 10

def initialize(element_id, destroy: true)
  self.element_id = element_id

  self.destroy = destroy
end

Instance Attribute Details

#destroyObject Also known as: destroy?

Returns the value of attribute destroy.



7
8
9
# File 'app/models/in_order/remove.rb', line 7

def destroy
  @destroy
end

#element_idObject

Returns the value of attribute element_id.



7
8
9
# File 'app/models/in_order/remove.rb', line 7

def element_id
  @element_id
end

Instance Method Details

#callObject



16
17
18
19
20
21
22
23
24
25
26
# File 'app/models/in_order/remove.rb', line 16

def call
  InOrder::Element.transaction do
    element = get_element element_id

    if previous = InOrder::Element.find_by(element_id: element.id)
      previous.update element_id: element.element_id
    end

    element.tap {|element| element.destroy if destroy? }
  end
end