Created
June 2, 2012 14:22
-
-
Save rrmartins/2858618 to your computer and use it in GitHub Desktop.
Week
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Week | |
attr_accessor :segunda_feira, :terca_feira, :quarta_feira, :quinta_feira, :sexta_feira | |
def initialize(segunda_feira,terca_feira,quarta_feira,quinta_feira,sexta_feira) | |
@segunda_feira = segunda_feira | |
@terca_feira = terca_feira | |
@quarta_feira = quarta_feira | |
@quinta_feira = quinta_feira | |
@sexta_feira = sexta_feira | |
end | |
def to_s | |
"Segunda_Feira = #{@segunda_feira}, Terca_Feira = #{@terca_feira}, Quarta_Feira = #{@quarta_feira}, Quinta_Feira = #{@quinta_feira}, Sexta_Feira = #{@sexta_feira}" | |
end | |
def dias_true | |
dias = [] | |
dias << "segunda_feira".to_sym.to_s if @segunda_feira | |
dias << "terca_feira".to_sym.to_s if @terca_feira | |
dias << "quarta_feira".to_sym.to_s if @quarta_feira | |
dias << "quinta_feira".to_sym.to_s if @quinta_feira | |
dias << "sexta_feira".to_sym.to_s if @sexta_feira | |
dias_t = '['+dias.join(", ")+']' | |
return dias_t | |
end | |
end | |
disciplina1 = Week.new(true,false,true,false,true) | |
puts disciplina1.dias_true # quero que retorne [segunda_feira, quarta_feira, sexta_feira] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
class Week
attr_accessor :segunda, :terca, :quarta, :quinta, :sexta
def initialize(*args)
@segunda, @terca, @quarta, @quinta, @Sexta = args
end
def attrs
%w[segunda terca quarta quinta sexta]
end
def disponiveis
dias = []
attrs.each { |atributo| dias << "#{atributo}_feira" if send(atributo) }
"[#{dias.join(', ')}]"
end
end
week = Week.new(true, false, true, false)
puts week.disponiveis
Uma forma interessante seria passar os dias num hash como o exemplo abaixo, neste caso precisa adaptar o initialize para o hash.