Class: Spina::Parts::BlockCollection

Inherits:
Base
  • Object
show all
Includes:
BlockFilterable
Defined in:
app/models/spina/parts/block_collection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from BlockFilterable

#available_blocks

Instance Attribute Details

#optionsObject

Returns the value of attribute options.



10
11
12
# File 'app/models/spina/parts/block_collection.rb', line 10

def options
  @options
end

Instance Method Details

#block_ids=(value) ⇒ Object

Defense: strip nils, zeros, and blanks that may sneak in from form submissions



13
14
15
# File 'app/models/spina/parts/block_collection.rb', line 13

def block_ids=(value)
  super(Array(value).reject(&:blank?).map(&:to_i).reject(&:zero?).uniq)
end

#contentObject



17
18
19
20
21
22
# File 'app/models/spina/parts/block_collection.rb', line 17

def content
  return [] if block_ids.blank?

  blocks_by_id = ::Spina::Blocks::Block.active.where(id: block_ids).index_by(&:id)
  block_ids.filter_map { |id| blocks_by_id[id] }
end