class CiteProc::Processor
Attributes
defaults[R]
data[R]
engine[W]
items[R]
options[R]
Public Class Methods
new(options = {}) { |self| ... }
click to toggle source
# File lib/citeproc/processor.rb, line 28 def initialize(options = {}) @options, @items, @data = Processor.defaults.merge(options), {}, [] yield self if block_given? end
Public Instance Methods
<<(item)
click to toggle source
# File lib/citeproc/processor.rb, line 58 def <<(item) register(item) self end
[](id)
click to toggle source
# File lib/citeproc/processor.rb, line 37 def [](id) items[id.to_s] end
[]=(id, item)
click to toggle source
# File lib/citeproc/processor.rb, line 41 def []=(id, item) item = Item(item) item.id = id.to_s register(items) end
append(*arguments)
click to toggle source
# File lib/citeproc/processor.rb, line 96 def append(*arguments) engine.append(CitationData.new(arguments.flatten(1))) end
bibliography(attributes = nil, &block)
click to toggle source
Generates a bibliography for all items matching the passed-in selector conditions or block.
@example
processor.bibliography all: { type: 'book' } #-> renders bibliography for all books
@return [Bibliography] the bibliography
# File lib/citeproc/processor.rb, line 108 def bibliography(attributes = nil, &block) engine.bibliography(Selector.new(attributes, &block)) end
engine()
click to toggle source
# File lib/citeproc/processor.rb, line 33 def engine @engine ||= Engine.autodetect(options).new(self) end
inspect()
click to toggle source
# File lib/citeproc/processor.rb, line 116 def inspect "#<CiteProc::Processor style=#{options[:style].inspect} locale=#{options[:locale].inspect} items=[#{items.length}]>" end
process(*arguments)
click to toggle source
# File lib/citeproc/processor.rb, line 92 def process(*arguments) engine.process(CitationData.new(arguments.flatten(1))) end
register(item)
click to toggle source
# File lib/citeproc/processor.rb, line 48 def register(item) item = Item(item) data << item items[item.id.to_s] = item rescue => e raise "failed to register item #{item.inspect}: #{e.message}" end
render(mode, *arguments)
click to toggle source
# File lib/citeproc/processor.rb, line 112 def render(mode, *arguments) engine.render(mode, CitationData.new(arguments.flatten(1))) end
update(*arguments) { |items, item| ... }
click to toggle source
# File lib/citeproc/processor.rb, line 63 def update(*arguments) arguments.each do |argument| case argument when Item register(argument) when Array argument.each { |item| register(item) } when Hash argument.each do |id, item| id, item = id.to_s, Item(item) if items.key?(id) && block_given? items[id] = yield items[id], item else items[id] = item end end else raise "failed to register items #{argument.inspect}" end end self ensure # notify engine end
Also aliased as: import