Sha256: 43e10acd8593510fbd21cd639a7b05ba1d706c7fbec9fc6fd0f3d6d8f231d545

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

module CiteProc
  class Processor

    extend Forwardable
    
    @defaults = {
      :locale => 'en-US',
      :style  => 'chicago-author-date',
      :engine => 'citeproc-js',
      :format => 'html'
    }.freeze

    class << self
      attr_reader :defaults
    end

    attr_reader :options, :engine, :items, :style
    
    def_delegators :@engine, :abbreviate, :abbreviations, :abbreviations=
     
    def initialize(options = {})
      @options = Processor.defaults.merge(options)
      @engine = Engine.autodetect(@options).new(:processor => self)
      @style = Style.load(@options[:style])
      @locales = @options[:locale]
      @items = {}
    end
    
		def style=(style)
		  @style = Style.load(style.to_s)
		  @engine.style = @style
		  @style
	  end
	  
	  def locales=(locale)
      @locales = { locale.to_sym => Locale.load(locale.to_s) }
      @engine.locales = @locales
      @locales
    end

		def process(*arguments)
			@engine.process(CitationData(arguments.flatten(1)))
		end
		
		def append(*arguments)
			@engine.append(CitationData(arguments.flatten(1)))
		end
		
		def bibliography(*arguments, &block)
			@engine.bibliography(Selector.new(*arguments, &block))
		end
    		
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
citeproc-0.0.3 lib/citeproc/processor.rb