class DLinkedList::Referencia
Referencia bibliográfica básica.
Attributes
autores[R]
Array de autores.
fecha_publicacion[R]
Fecha de publicación.
titulo[R]
Título de la obra.
Public Class Methods
new(&block)
click to toggle source
Inicializa la referencia usando el DSL especificado en el bloque block.
# File lib/dLinkedList/dLinkedList.rb, line 22 def initialize(&block) instance_eval &block raise ArgumentError, "Debe haber al menos un autor" unless @autores.length > 0 end
Public Instance Methods
<=>(c_ref)
click to toggle source
Comparación de referencias según los criterios del formato APA.
# File lib/dLinkedList/dLinkedList.rb, line 54 def <=>(c_ref) ref_ord = @autores[0][:apellidos] <=> c_ref.autores[0][:apellidos] if ref_ord == 0 # Primer autor con el mismo apellido ref_ord = @autores[0][:nombre] <=> c_ref.autores[0][:nombre] if ref_ord == 0 # Mismo primer autor ref_ord = autores_to_s <=> c_ref.autores_to_s if ref_ord == 0 # Mismos autores ref_ord = @fecha_publicacion.year <=> c_ref.fecha_publicacion.year if ref_ord == 0 # Mismos autores y año de publicación ref_ord = @titulo <=> c_ref.titulo end end end end return ref_ord end
to_s()
click to toggle source
Devuelve una cadena con el contenido de la referencia en formato APA.
Formato: Apellidos_Autor, Nombre_Autor [& Apellidos_Autor, Nombre_Autor…] (Fecha de publicación). Título.
# File lib/dLinkedList/dLinkedList.rb, line 46 def to_s s = '' s << autores_to_s s << "(#{@fecha_publicacion.strftime('%-d/%-m/%Y')}). #{@titulo}." return s end
Protected Instance Methods
autor(autorhash)
click to toggle source
Añade un autor a la lista de autores.
# File lib/dLinkedList/dLinkedList.rb, line 28 def autor(autorhash) @autores = [] if @autores.nil? @autores.push(autorhash) end
autores_to_s()
click to toggle source
Devuelve la lista de autores como cadena.
# File lib/dLinkedList/dLinkedList.rb, line 73 def autores_to_s s = '' @autores.each() { |a| s << a[:apellidos].capitalize << ', ' << a[:nombre][0].capitalize << ". & "} return s.chomp("& ") end
fecha(fecha_publicacion)
click to toggle source
Establece la fecha de publicación.
# File lib/dLinkedList/dLinkedList.rb, line 39 def fecha(fecha_publicacion) @fecha_publicacion = Date.strptime(fecha_publicacion, '%d/%m/%Y') end
tit(titulo)
click to toggle source
Establece el título.
# File lib/dLinkedList/dLinkedList.rb, line 34 def tit(titulo) @titulo = titulo end