Sha256: 0076113a2e6827b9563bbb6cfe8faf19a8d5271be996ee1bc2bb79acca84820c

Contents?: true

Size: 829 Bytes

Versions: 1

Compression:

Stored size: 829 Bytes

Contents

module CiteProc
	module Abbreviate

		attr_accessor :namespace

		def abbreviations
			@abbreviations ||= { :default => {} }
		end

		def abbreviations=(abbreviations)
			@abbreviations = case abbreviations
				when ::String
					::JSON.parse(abbreviations, :symbolize_names => true)
				when ::Hash
					abbreviations.deep_copy.symbolize_keys
				else
					raise ArgumentError, "failed to set abbreviations from #{abbreviations.inspect}"
				end
		end

		# @overload abbreviate(namespace = :default, context, word)
		def abbreviate(*arguments)
			raise ArgumentError, "wrong number of arguments (#{arguments.length} for 2..3)" unless
        (2..3).include?(arguments.length)

			arguments.unshift(namespace || :default) if arguments.length < 3
			@abbreviations.deep_fetch(*arguments)
		end
		alias abbrev abbreviate

	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
citeproc-1.0.0 lib/citeproc/abbreviate.rb