Class: BibTeX::String

Inherits:
Element show all
Includes:
Replaceable
Defined in:
lib/bibtex/elements.rb

Overview

Represents a @string object.

In BibTeX @string objects contain a single string constant assignment. For example, @string{ foo = “bar” } defines the constant ‘foo’; this constant can be used (using BibTeX’s string concatenation syntax) in susbsequent of regular entries.

Instance Attribute Summary collapse

Attributes included from Replaceable

#value

Attributes inherited from Element

#bibliography, #id

Instance Method Summary collapse

Methods included from Replaceable

#<<, #join, #replace

Methods inherited from Element

#<=>, #has_type?, #join, #matches?, #meets?, parse, #replace, #to_json, #to_yaml, #type

Constructor Details

#initialize(key = nil, value = nil) {|_self| ... } ⇒ String

Creates a new instance.

Yields:

  • (_self)

Yield Parameters:



163
164
165
166
# File 'lib/bibtex/elements.rb', line 163

def initialize(key = nil, value = nil)
  @key, @value = key.to_sym, Value.new(value)
	yield self if block_given?
end

Instance Attribute Details

#keyObject

Returns the value of attribute key.



160
161
162
# File 'lib/bibtex/elements.rb', line 160

def key
  @key
end

Instance Method Details

#[](key) ⇒ Object

Retuns the string’s value if parameter matches the key; nil otherwise.



181
182
183
# File 'lib/bibtex/elements.rb', line 181

def [](key)
  @key == key ? @value : nil
end

#added_to_bibliography(bibliography) ⇒ Object

Called when the element was added to a bibliography.



187
188
189
190
191
# File 'lib/bibtex/elements.rb', line 187

def added_to_bibliography(bibliography)
	super
	bibliography.strings[@key] = self
	self
end

#contentObject

Returns a string representation of the @string’s content.



201
202
203
# File 'lib/bibtex/elements.rb', line 201

def content
	"#@key = #{@value.to_s(:quotes => '"')}"
end

#removed_from_bibliography(bibliography) ⇒ Object

Called when the element was removed from a bibliography.



194
195
196
197
198
# File 'lib/bibtex/elements.rb', line 194

def removed_from_bibliography(bibliography)
	super
	bibliography.strings[@key] = nil
	self
end

#to_hash(options = {}) ⇒ Object



210
211
212
# File 'lib/bibtex/elements.rb', line 210

def to_hash(options = {})
  { :string => { @key => @value.to_s(:quotes => '"') } }
end

#to_s(options = {}) ⇒ Object

Returns a string representation of the @string object.



206
207
208
# File 'lib/bibtex/elements.rb', line 206

def to_s(options = {})
	"@string{ #{content} }"
end

#to_xml(options = {}) ⇒ Object



214
215
216
217
218
219
220
221
222
223
# File 'lib/bibtex/elements.rb', line 214

def to_xml(options = {})
  require 'rexml/document'
   
  xml = REXML::Element.new(:string)
  key = REXML::Element.new(:key)
  val = REXML::Element.new(:value)
  key.text = @key.to_s
  val.text = @value.to_s(:quotes => '"')
  xml
end