Class: Locomotive::Steam::Liquid::Drops::SectionBlock

Inherits:
Liquid::Drop
  • Object
show all
Defined in:
lib/locomotive/steam/liquid/drops/section_block.rb

Overview

Section block drop

Instance Method Summary collapse

Constructor Details

#initialize(section, block, index) ⇒ SectionBlock

Returns a new instance of SectionBlock.



9
10
11
12
13
14
15
16
17
# File 'lib/locomotive/steam/liquid/drops/section_block.rb', line 9

def initialize(section, block, index)
  @section    = section
  @block      = block || { 'settings' => {} }
  @index      = index
  @leaves     = []
  @definition = section.definition['blocks'].find do |block|
    block['type'] == type
  end || {}
end

Instance Method Details

#depthObject



27
28
29
# File 'lib/locomotive/steam/liquid/drops/section_block.rb', line 27

def depth
  @block['depth'].presence || 0
end

#has_leaves?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/locomotive/steam/liquid/drops/section_block.rb', line 35

def has_leaves?
  leaves.size > 0
end

#idObject



19
20
21
# File 'lib/locomotive/steam/liquid/drops/section_block.rb', line 19

def id
  @block['id'] || @index
end

#leavesObject



31
32
33
# File 'lib/locomotive/steam/liquid/drops/section_block.rb', line 31

def leaves
  @leaves
end

#locomotive_attributesObject



46
47
48
49
# File 'lib/locomotive/steam/liquid/drops/section_block.rb', line 46

def locomotive_attributes
  value = "section-#{@context['section'].id}-block-#{id}"
  %(data-locomotive-block="#{value}")
end

#settingsObject



39
40
41
42
43
44
# File 'lib/locomotive/steam/liquid/drops/section_block.rb', line 39

def settings
  @content_proxy ||= SectionContentProxy.new(
    @block['settings'] || {},
    @definition['settings'] || []
  )
end

#typeObject



23
24
25
# File 'lib/locomotive/steam/liquid/drops/section_block.rb', line 23

def type
  @block['type']
end