class Caracal::Core::Models::ListItemModel

This class encapsulates the logic needed to store and manipulate list item data.

Attributes

list_item_level[R]
list_item_type[R]

readers (create aliases for superclass methods to conform to expected naming convention.)

nested_list[RW]

accessors

Public Instance Methods

ol(options={}, &block) click to toggle source

.ol

# File lib/caracal/core/models/list_item_model.rb, line 60
def ol(options={}, &block)
  options.merge!({ type: :ordered, level: list_item_level + 1 })

  model = Caracal::Core::Models::ListModel.new(options, &block)
  if model.valid?
    @nested_list = model
  else
    raise Caracal::Errors::InvalidModelError, 'Ordered lists require at least one list item.'
  end
  model
end
ul(options={}, &block) click to toggle source

.ul

# File lib/caracal/core/models/list_item_model.rb, line 73
def ul(options={}, &block)
  options.merge!({ type: :unordered, level: list_item_level + 1 })

  model = Caracal::Core::Models::ListModel.new(options, &block)
  if model.valid?
    @nested_list = model
  else
    raise Caracal::Errors::InvalidModelError, 'Unordered lists require at least one list item.'
  end
  model
end
valid?() click to toggle source
VALIDATION ===========================
# File lib/caracal/core/models/list_item_model.rb, line 88
def valid?
  a = [:type, :level]
  required = a.map { |m| send("list_item_#{ m }") }.compact.size == a.size
  required && !runs.empty?
end

Private Instance Methods

option_keys() click to toggle source
# File lib/caracal/core/models/list_item_model.rb, line 100
def option_keys
  [:type, :level, :content, :style, :color, :size, :bold, :italic, :underline, :bgcolor]
end