class Publicacion::Pub
Clase Publicacion
Attributes
autores[RW]
Se tiene acceso de lectura y escritura a todos los atributos
fecha[RW]
Se tiene acceso de lectura y escritura a todos los atributos
titulo[RW]
Se tiene acceso de lectura y escritura a todos los atributos
Public Class Methods
new(autores, titulo, fecha)
click to toggle source
# File lib/linkedlist/publicacion.rb, line 10 def initialize(autores, titulo, fecha) # Comprobamos tipo fail ArgumentError, 'Autores debe ser un array' unless autores.is_a?(Array) # cadena = '' autores.each do |au| fail ArgumentError, 'Uno de los autores no es un string' unless au.is_a?(String) fail ArgumentError, 'Se especifica unicamente el nombre o el apellido' unless au.split(/\W+/).length > 1 aux = au.split(/\W+/) cadena += aux[1] cadena += ', ' unless aux[2].nil? cadena += aux[2][0] cadena += '. ' end cadena += aux[0][0] cadena += '.' cadena += ' & ' unless au == autores.last end @autores = cadena # Comprobamos tipos fail ArgumentError, 'El titulo no es un string' unless titulo.is_a?(String) fail ArgumentError, 'La fecha no es de tipo Date' unless fecha.is_a?(Date) # aux2 = titulo.split(/\W+/) aux2.each do |aux3| if aux3.length > 3 aux3.capitalize! else aux3.downcase! end end # Asignamos el titulo formateado @titulo = aux2.join(' ') # # Asignamos fecha @fecha = fecha # end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/linkedlist/publicacion.rb, line 56 def <=>(other) if @autores == other.autores if @fecha == other.fecha if @titulo == other.titulo # Iguales return 0 else aux = [@titulo, other.titulo] aux.sort_by!(&:downcase) return -1 if aux.first == @titulo return 1 end elsif fecha > other.fecha return 1 else return -1 end else aux = [@autores, other.autores] aux.sort_by!(&:downcase) return 1 if aux.first == @autores return -1 end end