module Itemize

Constants

ITEMIZE_INITIATOR
ITEMIZE_TERMINATOR
ITEM_INITIATOR
ITEM_TERMINATOR

Public Instance Methods

cb_itemize_add_item(filename=nil, lnumber=nil, line=nil) click to toggle source
# File lib/ulmul.rb, line 22
def cb_itemize_add_item(filename=nil, lnumber=nil, line=nil)
  new_level = case line
              when         /^ \* (.*)/ then 1
              when       /^   \* (.*)/ then 2
              when     /^     \* (.*)/ then 3
              when   /^       \* (.*)/ then 4
              when /^         \* (.*)/ then 5
              else raise 'Illegal astarisk line for itemize'
              end
  str = @subs_rules.call(Regexp.last_match[1])
  if new_level>@level_of_state+1
    STDERR << filename << ":#{lnumber}: Illegal jump of itemize level from #{@level_of_state} to #{new_level}: #{line}"
    exit 1
    raise
  elsif new_level==@level_of_state+1
    @body << "\n" << "    "*@level_of_state << ITEMIZE_INITIATOR << "\n"
    @body <<              "    "*(new_level-1) << "  " << ITEM_INITIATOR << str
    @level_of_state = new_level
  elsif new_level==@level_of_state
    @body << ITEM_TERMINATOR << "\n" << "    "*(new_level-1) << "  " << ITEM_INITIATOR << str
  else
    @body << ITEM_TERMINATOR<< "\n"
    (@level_of_state-1).downto(new_level){|i| @body << "    "*i << ITEMIZE_TERMINATOR << ITEM_TERMINATOR << "\n"}
    @body              << "    "*(new_level-1) << "  " << ITEM_INITIATOR << str
    @level_of_state = new_level
  end
end
cb_itemize_begin(filename=nil, lnumber=nil, line=nil) click to toggle source
# File lib/ulmul.rb, line 18
def cb_itemize_begin(filename=nil, lnumber=nil, line=nil)
  @level_of_state = 0
end
cb_itemize_continue_item(filename=nil, lnumber=nil, line=nil) click to toggle source
# File lib/ulmul.rb, line 50
def cb_itemize_continue_item(filename=nil, lnumber=nil, line=nil)
  new_level = case line
              when         /^   (\S.*)/ then 1
              when       /^     (\S.*)/ then 2
              when     /^       (\S.*)/ then 3
              when   /^         (\S.*)/ then 4
              when /^           (\S.*)/ then 5
              else raise 'Illegal astarisk line for itemize'
              end
  str = @subs_rules.call(Regexp.last_match[1])
  (@level_of_state-1).downto(new_level){|i| @body << ITEM_TERMINATOR << "\n" << "    "*i << ITEMIZE_TERMINATOR}
  @body << "\n  " << "    "*(new_level-1) << "  " << str
  @level_of_state = new_level
end
cb_itemize_end(filename=nil, lnumber=nil, line=nil) click to toggle source
# File lib/ulmul.rb, line 65
def cb_itemize_end(filename=nil, lnumber=nil, line=nil)
  @body << ITEM_TERMINATOR << "\n"
  (@level_of_state-1).downto(1){|i| @body << "    "*i << ITEMIZE_TERMINATOR << ITEM_TERMINATOR << "\n"}
  @body << ITEMIZE_TERMINATOR << "\n"
  @level_of_state = 0
end