module Caracal::Core::Bookmarks

This module encapsulates all the functionality related to adding bookmarks to the document.

Public Class Methods

included(base) click to toggle source
# File lib/caracal/core/bookmarks.rb, line 12
def self.included(base)
  base.class_eval do

    #------------------------------------------------
    # Public Methods
    #------------------------------------------------

    def current_bookmark_id
      @current_bookmark_id ||= 1
    end

    def next_bookmark_id
      @current_bookmark_id = current_bookmark_id + 1
    end

    #========== BOOKMARKS ===========================

    def bookmark_start(*args, &block)
      options = Caracal::Utilities.extract_options!(args)
      options.merge!({ start: true, id: next_bookmark_id })

      model = Caracal::Core::Models::BookmarkModel.new(options, &block)
      if model.valid?
        contents << model
      else
        raise Caracal::Errors::InvalidModelError, 'Bookmark starting tags require a name.'
      end
      model
    end

    def bookmark_end
      contents << Caracal::Core::Models::BookmarkModel.new(start: false, id: current_bookmark_id)
    end
    
  end
end

Public Instance Methods

bookmark_end() click to toggle source
# File lib/caracal/core/bookmarks.rb, line 42
def bookmark_end
  contents << Caracal::Core::Models::BookmarkModel.new(start: false, id: current_bookmark_id)
end
bookmark_start(*args, &block) click to toggle source
BOOKMARKS ===========================
# File lib/caracal/core/bookmarks.rb, line 29
def bookmark_start(*args, &block)
  options = Caracal::Utilities.extract_options!(args)
  options.merge!({ start: true, id: next_bookmark_id })

  model = Caracal::Core::Models::BookmarkModel.new(options, &block)
  if model.valid?
    contents << model
  else
    raise Caracal::Errors::InvalidModelError, 'Bookmark starting tags require a name.'
  end
  model
end
current_bookmark_id() click to toggle source
# File lib/caracal/core/bookmarks.rb, line 19
def current_bookmark_id
  @current_bookmark_id ||= 1
end
next_bookmark_id() click to toggle source
# File lib/caracal/core/bookmarks.rb, line 23
def next_bookmark_id
  @current_bookmark_id = current_bookmark_id + 1
end