Method: Sibu::SectionsConcern#delete_section

Defined in:
app/models/concerns/sibu/sections_concern.rb

#delete_section(*ids) ⇒ Object



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'app/models/concerns/sibu/sections_concern.rb', line 97

def delete_section(*ids)
  if ids.length == 1
    if sections.length == 1
      nil
    else
      ref_index = sections.index {|s| s["id"] == ids.first}
      sections.delete_at(ref_index)
      save
    end
  else
    parent = find_or_init(*ids[0..-2])
    ref_index = parent["elements"].index {|s| s["id"] == ids.last}
    parent["elements"].delete_at(ref_index)
    save
  end
end