class Referencia

Attributes

autores[R]
editorial[R]
fecha[R]
isbn10[R]
isbn13[R]
nedicion[R]
serie[R]
titulo[R]

Public Class Methods

crear(&block) click to toggle source
# File lib/bibliogem/Referencia.rb, line 40
def self.crear &block
        newref = Referencia.new([""],"","","",0,"01-01-1990",[],[])
        newref.evaluar(&block)
        return newref
end
new(aut,tit,ser,edi,ne,fe,is10,is13) click to toggle source
# File lib/bibliogem/Referencia.rb, line 4
def initialize(aut,tit,ser,edi,ne,fe,is10,is13)

        if aut.any?
                @autores=aut
        else
                raise ArgumentError.new("Error: Se requiere al menos un autor")
        end
        if !tit.nil?
                @titulo=tit
        else
                raise ArgumentError.new("Error: Se requiere un tiulo")
        end
        @serie=ser
        if !edi.nil?
                @editorial=edi
        else
                raise ArgumentError.new("Error: Se requiere una editorial")
        end
        if !ne.nil?
                @nedicion=ne
        else
                raise ArgumentError.new("Error Se requiere un numero de edicion")
        end
        if !fe.nil?
                @fecha=Date::strptime(fe, "%d-%m-%Y")
        else
                raise ArgumentError.new("Error: Se requiere una fecha con formato %d-%m-%Y")
        end
        if !is10.nil? || !is13.nil?
                @isbn10=is10
                @isbn13=is13
        else
                raise ArgumentError.new("Error: Se requiere al menos un codigo isbn")
        end
end

Public Instance Methods

<=>(referencia) click to toggle source
# File lib/bibliogem/Referencia.rb, line 51
def <=>(referencia)
        if(@autores[0] <=> referencia.autores[0])
                if(@autores.count<=>referencia.autores.count)
                        if(@fecha <=> referencia.fecha)
                                @titulo <=> referencia.titulo
                        end
                end
        end
end
AUTOR(nombre) click to toggle source
# File lib/bibliogem/Referencia.rb, line 72
def AUTOR nombre
        @autores << nombre
end
EDICION(edicion) click to toggle source
# File lib/bibliogem/Referencia.rb, line 88
def EDICION edicion
        @nedicion = edicion
end
EDITORIAL(edit) click to toggle source
# File lib/bibliogem/Referencia.rb, line 84
def EDITORIAL edit
        @editorial = edit
end
FECHA(fecha) click to toggle source
# File lib/bibliogem/Referencia.rb, line 92
def FECHA fecha
        @fecha = fecha
end
ISBN10(isbn) click to toggle source
# File lib/bibliogem/Referencia.rb, line 96
def ISBN10 isbn
        @isbn10 << isbn
end
ISBN13(isbn) click to toggle source
# File lib/bibliogem/Referencia.rb, line 100
def ISBN13 isbn
        @isbn13 << isbn
end
SERIE(serie) click to toggle source
# File lib/bibliogem/Referencia.rb, line 80
def SERIE serie
        @serie = serie        
end
TITULO(nombre) click to toggle source
# File lib/bibliogem/Referencia.rb, line 76
def TITULO nombre
        @titulo = nombre
end
evaluar(&block) click to toggle source
# File lib/bibliogem/Referencia.rb, line 46
def evaluar &block
        @autores = []
        instance_eval &block
end
to_s() click to toggle source
# File lib/bibliogem/Referencia.rb, line 61
def to_s
        splitnames = []
        @autores.each do |nombre|
                listanombres = nombre.split
                nombre = listanombres[0]
                apellidos = listanombres[1..-1].join(" ").capitalize
                splitnames.push(apellidos + ", " + nombre[0])
        end
        "Autor: #{splitnames.join(" & ")} (#{@fecha}). Titulo del libro: #{@titulo.capitalize} (#{@nedicion}). Lugar de publicacion: #{@editorial}"
end