module Caracal::Core::Lists

This module encapsulates all the functionality related to adding horizontal rules to the document.

Public Class Methods

included(base) click to toggle source
# File lib/caracal/core/lists.rb, line 12
def self.included(base)
  base.class_eval do
    
    #-------------------------------------------------------------
    # Public Methods
    #-------------------------------------------------------------
    
    #============== ATTRIBUTES ==========================
    
    def ol(options={}, &block)
      options.merge!({ type: :ordered, level: 0 })
      
      model = Caracal::Core::Models::ListModel.new(options, &block)
      if model.valid?
        contents << model
      else
        raise Caracal::Errors::InvalidModelError, 'Ordered lists require at least one list item.'
      end
      model
    end
    
    def ul(options={}, &block)
      options.merge!({ type: :unordered, level: 0 })
      
      model = Caracal::Core::Models::ListModel.new(options, &block)
      if model.valid?
        contents << model
      else
        raise Caracal::Errors::InvalidModelError, 'Unordered lists require at least one list item.'
      end
      model
    end
    
    
    #============== GETTERS ==========================
    
    def toplevel_lists
      @toplevel_lists ||= []
    end
    
  end
end

Public Instance Methods

ol(options={}, &block) click to toggle source
ATTRIBUTES ==========================
# File lib/caracal/core/lists.rb, line 21
def ol(options={}, &block)
  options.merge!({ type: :ordered, level: 0 })
  
  model = Caracal::Core::Models::ListModel.new(options, &block)
  if model.valid?
    contents << model
  else
    raise Caracal::Errors::InvalidModelError, 'Ordered lists require at least one list item.'
  end
  model
end
toplevel_lists() click to toggle source
GETTERS ==========================
# File lib/caracal/core/lists.rb, line 48
def toplevel_lists
  @toplevel_lists ||= []
end
ul(options={}, &block) click to toggle source
# File lib/caracal/core/lists.rb, line 33
def ul(options={}, &block)
  options.merge!({ type: :unordered, level: 0 })
  
  model = Caracal::Core::Models::ListModel.new(options, &block)
  if model.valid?
    contents << model
  else
    raise Caracal::Errors::InvalidModelError, 'Unordered lists require at least one list item.'
  end
  model
end