Class: FeriadoParser

Inherits:
Object
  • Object
show all
Defined in:
lib/brdata/feriado_parser.rb

Class Method Summary collapse

Class Method Details

.parser(diretorio) ⇒ Object

Faz o parser do YML e retorna a coleção de feriados.

Raises:

  • (FeriadoParserDiretorioInvalidoError)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/brdata/feriado_parser.rb', line 6

def self.parser(diretorio)
  files = []
  feriados = []
  metodos = []
  raise FeriadoParserDiretorioInvalidoError unless File.directory?(diretorio)
  Find.find(diretorio) do |file|
    files << file if file =~ /.*\.yml$/
  end
  raise FeriadoParserDiretorioVazioError if files.empty?
  files.each do |file|
    itens = YAML.load_file(file)
    itens.each do |key, value|
      if value["metodo"]
        FeriadoParserMetodoInvalido if value["dia"] && value["mes"]
        metodos << value["metodo"]
      else
        feriados << Feriado.new(key, value["dia"], value["mes"])
      end
    end
  end
  [feriados, metodos]
end