class CiteProc::Ruby::Renderer::State

Attributes

authors[R]
history[R]
item[R]
node[R]
substitute[R]

Public Class Methods

new() click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 33
def initialize
  @history, @authors = History.new(self, 3), []
  reset
end

Public Instance Methods

clear!(result = nil) click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 50
def clear!(result = nil)
  memories = conserve(result)
  reset
ensure
  notify_observers :clear!, memories.delete(:mode), memories
end
clear_substitute!(backup = nil) click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 72
def clear_substitute!(backup = nil)
  @substitute = backup
end
conserve(result = nil) click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 91
def conserve(result = nil)
  {
    :mode => mode,
    :item => item,
    :authors => authors,
    :result => result
  }
end
mode() click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 64
def mode
  node && node.nodename
end
previous_authors() click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 76
def previous_authors
  past = history.recall(mode)
  return unless past && !past.empty?

  past[:authors]
end
rendered_names!() click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 87
def rendered_names!
  @names = true
end
rendered_names?() click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 83
def rendered_names?
  @names
end
reset() click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 57
def reset
  @item, @node, @substitute, @authors, @names = nil, nil, nil, [], nil
  self
ensure
  changed
end
store!(item, node) click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 38
def store!(item, node)
  @item, @node = item, node
ensure
  changed
end
store_authors!(authors) click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 44
def store_authors!(authors)
  @authors << authors
ensure
  changed
end
substitute!(names) click to toggle source
# File lib/citeproc/ruby/renderer/state.rb, line 68
def substitute!(names)
  @substitute = names
end