Class: DLinkedList::Referencia
- Inherits:
-
Object
- Object
- DLinkedList::Referencia
- Includes:
- Comparable
- Defined in:
- lib/dLinkedList/dLinkedList.rb
Overview
Referencia bibliográfica básica.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#autores ⇒ Object
readonly
Array de autores.
-
#fecha_publicacion ⇒ Object
readonly
Fecha de publicación.
-
#titulo ⇒ Object
readonly
Título de la obra.
Instance Method Summary collapse
-
#<=>(c_ref) ⇒ Object
Comparación de referencias según los criterios del formato APA.
-
#initialize(&block) ⇒ Referencia
constructor
Inicializa la referencia usando el DSL especificado en el bloque block.
-
#to_s ⇒ Object
Devuelve una cadena con el contenido de la referencia en formato APA.
Constructor Details
#initialize(&block) ⇒ Referencia
Inicializa la referencia usando el DSL especificado en el bloque block.
23 24 25 26 |
# File 'lib/dLinkedList/dLinkedList.rb', line 23 def initialize(&block) instance_eval &block raise ArgumentError, "Debe haber al menos un autor" unless @autores.length > 0 end |
Instance Attribute Details
#autores ⇒ Object (readonly)
Array de autores.
16 17 18 |
# File 'lib/dLinkedList/dLinkedList.rb', line 16 def autores @autores end |
#fecha_publicacion ⇒ Object (readonly)
Fecha de publicación.
20 21 22 |
# File 'lib/dLinkedList/dLinkedList.rb', line 20 def fecha_publicacion @fecha_publicacion end |
#titulo ⇒ Object (readonly)
Título de la obra.
18 19 20 |
# File 'lib/dLinkedList/dLinkedList.rb', line 18 def titulo @titulo end |
Instance Method Details
#<=>(c_ref) ⇒ Object
Comparación de referencias según los criterios del formato APA.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/dLinkedList/dLinkedList.rb', line 55 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 ⇒ Object
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.
47 48 49 50 51 52 |
# File 'lib/dLinkedList/dLinkedList.rb', line 47 def to_s s = '' s << autores_to_s s << "(#{@fecha_publicacion.strftime('%-d/%-m/%Y')}). #{@titulo}." return s end |