brdata 0.0.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +1 -0
- data/Rakefile +13 -13
- data/lib/brdata.rb +18 -2
- data/lib/brdata/br_date_helper.rb +33 -0
- data/lib/brdata/config/nacionais_fixos.yml +18 -0
- data/lib/brdata/config/nacionais_moveis.yml +4 -0
- data/lib/brdata/excecoes.rb +10 -0
- data/lib/brdata/feriado.rb +89 -0
- data/lib/brdata/feriado_parser.rb +30 -0
- data/lib/brdata/version.rb +2 -2
- data/test/br_date_helper_test.rb +28 -0
- data/test/feriado_parser_test.rb +29 -0
- data/test/feriado_test.rb +77 -0
- metadata +25 -3
- data/TODO +0 -5
data/README
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
Aqui vai o readme
|
data/Rakefile
CHANGED
@@ -29,17 +29,16 @@ Rake::TestTask.new { |t|
|
|
29
29
|
}
|
30
30
|
|
31
31
|
|
32
|
-
#
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
# }
|
32
|
+
#Generate the RDoc documentation
|
33
|
+
Rake::RDocTask.new { |rdoc|
|
34
|
+
rdoc.rdoc_dir = 'doc'
|
35
|
+
rdoc.title = "Brazilian Rails -- Data"
|
36
|
+
rdoc.options << '--line-numbers' << '--inline-source' << '-A cattr_accessor=object'
|
37
|
+
rdoc.options << '--charset' << 'utf-8'
|
38
|
+
rdoc.template = "#{ENV['template']}.rb" if ENV['template']
|
39
|
+
rdoc.rdoc_files.include('README', 'CHANGELOG')
|
40
|
+
rdoc.rdoc_files.include('lib/**/*')
|
41
|
+
}
|
43
42
|
|
44
43
|
|
45
44
|
# Create compressed packages
|
@@ -50,11 +49,12 @@ spec = Gem::Specification.new do |s|
|
|
50
49
|
s.description = %q{brdata é uma das gems que compoem o Brazilian Rails}
|
51
50
|
s.version = PKG_VERSION
|
52
51
|
|
53
|
-
s.
|
52
|
+
s.authors = ["Marcos Tapajós", "Celestino Gomes", "Andre Kupkosvki", "Vinícius Teles"]
|
54
53
|
s.email = "tapajos@gmail.com"
|
55
54
|
s.rubyforge_project = "brdata"
|
56
55
|
s.homepage = "http://www.improveit.com.br/software_livre/brazilian_rails"
|
57
56
|
|
57
|
+
s.add_dependency('actionpack', '>= 1.13.6')
|
58
58
|
s.add_dependency('activesupport', '>= 1.4.2')
|
59
59
|
|
60
60
|
s.has_rdoc = true
|
@@ -62,7 +62,7 @@ spec = Gem::Specification.new do |s|
|
|
62
62
|
s.require_path = 'lib'
|
63
63
|
# s.autorequire = 'brdata'
|
64
64
|
|
65
|
-
s.files = [ "Rakefile", "README", "CHANGELOG", "
|
65
|
+
s.files = [ "Rakefile", "README", "CHANGELOG", "MIT-LICENSE" ]
|
66
66
|
s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
|
67
67
|
s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
|
68
68
|
end
|
data/lib/brdata.rb
CHANGED
@@ -2,16 +2,22 @@ $:.unshift(File.dirname(__FILE__)) unless
|
|
2
2
|
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
3
|
|
4
4
|
require 'rubygems'
|
5
|
+
require 'action_controller'
|
6
|
+
require 'html/document'
|
5
7
|
require 'active_support'
|
6
|
-
|
8
|
+
require 'action_view'
|
7
9
|
|
8
10
|
%w(date_portuguese
|
9
11
|
time_portuguese
|
10
12
|
version
|
13
|
+
br_date_helper
|
14
|
+
feriado
|
15
|
+
feriado_parser
|
16
|
+
excecoes
|
11
17
|
).each {|req| require File.dirname(__FILE__) + "/brdata/#{req}"}
|
12
18
|
|
13
19
|
|
14
|
-
module
|
20
|
+
module BrData
|
15
21
|
end
|
16
22
|
|
17
23
|
old_verbose = $VERBOSE
|
@@ -24,3 +30,13 @@ $VERBOSE = nil
|
|
24
30
|
end
|
25
31
|
|
26
32
|
$VERBOSE = old_verbose
|
33
|
+
|
34
|
+
# FERIADOS_PATH = RAILS_ROOT + '/config/feriados'
|
35
|
+
feriados, metodos = FeriadoParser.parser(File.dirname(__FILE__) + "/brdata/config")
|
36
|
+
# if File.directory?(FERIADOS_PATH)
|
37
|
+
# f, m = FeriadoParser.parser(FERIADOS_PATH)
|
38
|
+
# feriados += f
|
39
|
+
# metodos += m
|
40
|
+
# end
|
41
|
+
Date::FERIADOS = feriados;
|
42
|
+
Date::FERIADOS_METODOS = metodos
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module ActionView::Helpers::DateHelper
|
2
|
+
# Traduz o método distance_of_time_in_words para retornar esse valor em português
|
3
|
+
#
|
4
|
+
def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false)
|
5
|
+
from_time = from_time.to_time if from_time.respond_to?(:to_time)
|
6
|
+
to_time = to_time.to_time if to_time.respond_to?(:to_time)
|
7
|
+
distance_in_minutes = (((to_time - from_time).abs)/60).round
|
8
|
+
distance_in_seconds = ((to_time - from_time).abs).round
|
9
|
+
|
10
|
+
case distance_in_minutes
|
11
|
+
when 0..1
|
12
|
+
return (distance_in_minutes == 0) ? 'menos de um minuto' : '1 minuto' unless include_seconds
|
13
|
+
case distance_in_seconds
|
14
|
+
when 0..4 then 'menos de 5 segundos'
|
15
|
+
when 5..9 then 'menos de 10 segundos'
|
16
|
+
when 10..19 then 'menos de 20 segundos'
|
17
|
+
when 20..39 then 'meio minuto'
|
18
|
+
when 40..59 then 'menos de um minuto'
|
19
|
+
else '1 minuto'
|
20
|
+
end
|
21
|
+
|
22
|
+
when 2..44 then "#{distance_in_minutes} minutos"
|
23
|
+
when 45..89 then 'aproximadamente 1 hora'
|
24
|
+
when 90..1439 then "aproximadamente #{(distance_in_minutes.to_f / 60.0).round} horas"
|
25
|
+
when 1440..2879 then '1 dia'
|
26
|
+
when 2880..43199 then "#{(distance_in_minutes / 1440).round} dias"
|
27
|
+
when 43200..86399 then 'aproximadamente 1 mês'
|
28
|
+
when 86400..525959 then "#{(distance_in_minutes / 43200).round} meses"
|
29
|
+
when 525960..1051919 then 'aproximadamente 1 ano'
|
30
|
+
else "mais de #{(distance_in_minutes / 525960).round} anos"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
def cria_excecao(classe, mensagem)
|
2
|
+
eval "class #{classe}; def initialize; super('#{mensagem}'); end; end"
|
3
|
+
end
|
4
|
+
|
5
|
+
cria_excecao("FeriadoMesInvalidoError < ArgumentError", "O mês deve ser um número e estar entre 01 e 12")
|
6
|
+
cria_excecao("FeriadoDiaInvalidoError < ArgumentError", "O mês deve ser um número e estar entre 01 e 31")
|
7
|
+
cria_excecao("FeriadoParserDiretorioInvalidoError < ArgumentError", "Só é possivel fazer parser de um diretorio contendo os arquivos yml.")
|
8
|
+
cria_excecao("FeriadoParserDiretorioVazioError < ArgumentError", "Não existe nenhum yml no diretorio.")
|
9
|
+
cria_excecao("FeriadoParserMetodoInvalido < ArgumentError", "Quando for usado o parametro metodo não deve exitir dia nem mês.")
|
10
|
+
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# == Configuração dos Feriados
|
2
|
+
#
|
3
|
+
# Os feriados são configurados através de arquivos YML que deverão estar na pasta feriados dentro da pasta config da sua aplicação.
|
4
|
+
#
|
5
|
+
# Você pode ver exemplos desses YML dentro do diretório samples/feriado.
|
6
|
+
#
|
7
|
+
class Feriado
|
8
|
+
|
9
|
+
attr_accessor :dia
|
10
|
+
attr_accessor :mes
|
11
|
+
attr_accessor :nome
|
12
|
+
|
13
|
+
# Construtor um feriado.
|
14
|
+
#
|
15
|
+
# Exemplo:
|
16
|
+
# Feriado.new("nome", "01", "01")
|
17
|
+
def initialize(nome, dia, mes)
|
18
|
+
valida_dia(dia)
|
19
|
+
valida_mes(mes)
|
20
|
+
self.nome = nome
|
21
|
+
self.dia = dia.to_i
|
22
|
+
self.mes = mes.to_i
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
# Compara dois feriados. Dois feriados são iguais se acontecem na mesma data.
|
27
|
+
def ==(outro_feriado)
|
28
|
+
self.mes == outro_feriado.mes && self.dia == outro_feriado.dia
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def valida_dia(dia)
|
34
|
+
raise FeriadoDiaInvalidoError unless (1..31).include?(dia.to_i)
|
35
|
+
end
|
36
|
+
|
37
|
+
def valida_mes(mes)
|
38
|
+
raise FeriadoMesInvalidoError unless (1..12).include?(mes.to_i)
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
class Date
|
44
|
+
|
45
|
+
FERIADOS = []
|
46
|
+
FERIADOS_METODOS = []
|
47
|
+
|
48
|
+
# Retorna a true se a data for um feriado
|
49
|
+
#
|
50
|
+
# Exemplo:
|
51
|
+
# data = Date.new(2007, 12, 25)
|
52
|
+
# data.feriado? ==> true
|
53
|
+
def feriado?
|
54
|
+
return true if FERIADOS.include?(Feriado.new("novo_feriado", self.day, self.month))
|
55
|
+
FERIADOS_METODOS.each do |metodo|
|
56
|
+
return true if self == send(metodo)
|
57
|
+
end
|
58
|
+
false
|
59
|
+
end
|
60
|
+
|
61
|
+
# Retorna a pascoa no ano da data atual
|
62
|
+
#
|
63
|
+
# Exemplo:
|
64
|
+
# data = Date.new(2007, 12, 25)
|
65
|
+
# data.pascoa ==> "2007-4-8"
|
66
|
+
def pascoa
|
67
|
+
g = self.year % 19
|
68
|
+
c = (self.year / 100).floor
|
69
|
+
h = (c - ( c / 4 ).floor - ((8 * c) / 25).floor + 19 * g + 15) % 30
|
70
|
+
i = h - (h / 28).floor * (1 - (h / 28).floor * (29 / (h + 1)).floor * ((21 - g) / 11).floor)
|
71
|
+
j = (self.year + (self.year/ 4).floor + i + 2 - c + (c / 4).floor) % 7
|
72
|
+
l = i - j
|
73
|
+
|
74
|
+
month = 3 + ((l + 40) / 44).floor
|
75
|
+
day = l + 28 - (31 * (month / 4 ).floor)
|
76
|
+
Date.parse("#{self.year}-#{month}-#{day}")
|
77
|
+
end
|
78
|
+
|
79
|
+
# Retorna a corpus_christi no ano da data atual
|
80
|
+
#
|
81
|
+
# Exemplo:
|
82
|
+
# data = Date.new(2007, 12, 25)
|
83
|
+
# data.corpus_christi ==> "2007-06-07"
|
84
|
+
def corpus_christi
|
85
|
+
Date.parse((pascoa.to_time + 60.days).to_date.to_s)
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'find'
|
2
|
+
require 'yaml'
|
3
|
+
class FeriadoParser
|
4
|
+
|
5
|
+
# Faz o parser do YML e retorna a coleção de feriados.
|
6
|
+
def self.parser(diretorio)
|
7
|
+
files = []
|
8
|
+
feriados = []
|
9
|
+
metodos = []
|
10
|
+
raise FeriadoParserDiretorioInvalidoError unless File.directory?(diretorio)
|
11
|
+
Find.find(diretorio) do |file|
|
12
|
+
files << file if file =~ /.*\.yml$/
|
13
|
+
end
|
14
|
+
raise FeriadoParserDiretorioVazioError if files.empty?
|
15
|
+
files.each do |file|
|
16
|
+
itens = YAML.load_file(file)
|
17
|
+
itens.each do |key, value|
|
18
|
+
if value["metodo"]
|
19
|
+
FeriadoParserMetodoInvalido if value["dia"] && value["mes"]
|
20
|
+
metodos << value["metodo"]
|
21
|
+
else
|
22
|
+
feriados << Feriado.new(key, value["dia"], value["mes"])
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
[feriados, metodos]
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
end
|
data/lib/brdata/version.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
require 'mocha'
|
3
|
+
|
4
|
+
class ActionViewTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
include ActionView::Helpers::DateHelper
|
7
|
+
|
8
|
+
def test_distance_of_time_in_words
|
9
|
+
assert_equal "menos de um minuto", distance_of_time_in_words("Sat Sep 08 22:51:58 -0300 2007".to_time, "Sat Sep 08 22:51:59 -0300 2007".to_time)
|
10
|
+
assert_equal "menos de 5 segundos", distance_of_time_in_words("Sat Sep 08 22:51:58 -0300 2007".to_time, "Sat Sep 08 22:51:59 -0300 2007".to_time, true)
|
11
|
+
assert_equal "menos de 10 segundos", distance_of_time_in_words("Sat Sep 08 22:51:50 -0300 2007".to_time, "Sat Sep 08 22:51:55 -0300 2007".to_time, true)
|
12
|
+
assert_equal "menos de 20 segundos", distance_of_time_in_words("Sat Sep 08 22:51:00 -0300 2007".to_time, "Sat Sep 08 22:51:10 -0300 2007".to_time, true)
|
13
|
+
assert_equal "meio minuto", distance_of_time_in_words("Sat Sep 08 22:51:00 -0300 2007".to_time, "Sat Sep 08 22:51:20 -0300 2007".to_time, true)
|
14
|
+
assert_equal "menos de um minuto", distance_of_time_in_words("Sat Sep 08 22:51:00 -0300 2007".to_time, "Sat Sep 08 22:51:40 -0300 2007".to_time, true)
|
15
|
+
assert_equal "1 minuto", distance_of_time_in_words("Sat Sep 08 22:51:00 -0300 2007".to_time, "Sat Sep 08 22:52:00 -0300 2007".to_time, true)
|
16
|
+
assert_equal "1 minuto", distance_of_time_in_words("Sat Sep 08 22:51:59 -0300 2007".to_time, "Sat Sep 08 22:52:59 -0300 2007".to_time)
|
17
|
+
assert_equal "2 minutos", distance_of_time_in_words("Sat Sep 08 22:51:59 -0300 2007".to_time, "Sat Sep 08 22:53:59 -0300 2007".to_time)
|
18
|
+
assert_equal "aproximadamente 1 hora", distance_of_time_in_words("Sat Sep 08 21:51:59 -0300 2007".to_time, "Sat Sep 08 22:51:59 -0300 2007".to_time)
|
19
|
+
assert_equal "aproximadamente 2 horas", distance_of_time_in_words("Sat Sep 08 20:51:59 -0300 2007".to_time, "Sat Sep 08 22:51:59 -0300 2007".to_time)
|
20
|
+
assert_equal "1 dia", distance_of_time_in_words("Sat Sep 07 20:51:59 -0300 2007".to_time, "Sat Sep 08 20:51:59 -0300 2007".to_time)
|
21
|
+
assert_equal "2 dias", distance_of_time_in_words("Sat Sep 06 20:51:59 -0300 2007".to_time, "Sat Sep 08 20:51:59 -0300 2007".to_time)
|
22
|
+
assert_equal "aproximadamente 1 mês", distance_of_time_in_words("Sat Oct 06 20:51:59 -0300 2007".to_time, "Sat Sep 06 20:51:59 -0300 2007".to_time)
|
23
|
+
assert_equal "2 meses", distance_of_time_in_words("Sat Nov 06 20:51:59 -0300 2007".to_time, "Sat Sep 06 20:51:59 -0300 2007".to_time)
|
24
|
+
assert_equal "12 meses", distance_of_time_in_words("Sat Nov 06 20:51:59 -0300 2006".to_time, "Sat Nov 06 20:51:59 -0300 2007".to_time)
|
25
|
+
assert_equal "aproximadamente 1 ano", distance_of_time_in_words("Sat Nov 06 20:51:59 -0300 2006".to_time, "Sat Dec 06 20:51:59 -0300 2007".to_time)
|
26
|
+
assert_equal "mais de 3 anos", distance_of_time_in_words("Sat Nov 06 20:51:59 -0300 2006".to_time, "Sat Dec 06 20:51:59 -0300 2009".to_time)
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class FeriadoParserTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
FERIADO_YML_PATH = File.expand_path(File.dirname(__FILE__) + '/../lib/brdata/config')
|
6
|
+
p FERIADO_YML_PATH
|
7
|
+
NATAL = Feriado.new("natal", 25, 12)
|
8
|
+
|
9
|
+
def test_feriados
|
10
|
+
feriados, metodos = FeriadoParser.parser(FERIADO_YML_PATH)
|
11
|
+
feriados.each {|feriado| assert_kind_of Feriado, feriado}
|
12
|
+
assert_equal NATAL, feriados.first
|
13
|
+
assert_equal ["pascoa", "corpus_christi"], metodos
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_feriados_quando_path_nao_eh_diretorio
|
17
|
+
assert_raise FeriadoParserDiretorioInvalidoError do
|
18
|
+
FeriadoParser.parser(File.dirname(__FILE__) + 'dinheiro_test.rb')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_feriados_quando_path_nao_contem_arquivos
|
23
|
+
assert_raise FeriadoParserDiretorioVazioError do
|
24
|
+
FeriadoParser.parser(File.dirname(__FILE__))
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class FeriadoTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
ATRIBUTOS = %w(dia mes nome)
|
6
|
+
|
7
|
+
# feriado
|
8
|
+
def test_feriado_quando_feriado
|
9
|
+
assert "25/12/2007".to_date.feriado?
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_feriado_quando_nao_eh_feriado
|
13
|
+
assert !"01/12/2007".to_date.feriado?
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_feriado_quando_feriado_eh_pascoa
|
17
|
+
assert "08/04/2007".to_date.feriado?
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_feriado_quando_feriado_eh_corpus_christi
|
21
|
+
assert "07/06/2007".to_date.feriado?
|
22
|
+
end
|
23
|
+
|
24
|
+
# pascoa
|
25
|
+
def test_pascoa
|
26
|
+
assert_equal "08/04/2007", "01/01/2007".to_date.pascoa.to_s_br
|
27
|
+
end
|
28
|
+
|
29
|
+
# corpus_christi
|
30
|
+
def test_corpus_christi
|
31
|
+
assert_equal "07/06/2007", "01/01/2007".to_date.corpus_christi.to_s_br
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def test_attributes
|
36
|
+
feriado = Feriado.new("nome", "01", "01")
|
37
|
+
ATRIBUTOS.each do |atributo|
|
38
|
+
assert_respond_to feriado, "#{atributo}", "Deveria existir o método #{atributo}"
|
39
|
+
assert_respond_to feriado, "#{atributo}=", "Deveria existir o método #{atributo}="
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_initialize
|
44
|
+
feriado = Feriado.new("nome", "01", "01")
|
45
|
+
assert feriado, "deveria ter criado um feriado"
|
46
|
+
assert_equal "nome", feriado.nome
|
47
|
+
assert_equal 1, feriado.dia
|
48
|
+
assert_equal 1, feriado.mes
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_initialize_com_dia_invalido
|
52
|
+
['a', 0, -1, 32, '32', '-1', '0'].each do |invalid_day|
|
53
|
+
assert_raise FeriadoDiaInvalidoError do
|
54
|
+
Feriado.new("nome", invalid_day, "01")
|
55
|
+
raise "Deveria retornar FeriadoDiaInvalidoError para dia #{invalid_day}"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_initialize_com_mes_invalido
|
61
|
+
['a', '13', 13, -1, '-1', '0'].each do |invalid_month|
|
62
|
+
assert_raise FeriadoMesInvalidoError do
|
63
|
+
Feriado.new("nome", "01", invalid_month)
|
64
|
+
raise "Deveria retornar FeriadoMesInvalidoError para mês #{invalid_month}"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_igualdade
|
70
|
+
assert_equal Feriado.new("nome", "01", "01"), Feriado.new("nome2", "01", "01")
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_igualdade_quando_nao_eh_igual
|
74
|
+
assert_not_equal Feriado.new("nome", "01", "01"), Feriado.new("nome2", "01", "02")
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
metadata
CHANGED
@@ -1,17 +1,30 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brdata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Marcos Tapaj\xC3\xB3s"
|
8
|
+
- Celestino Gomes
|
9
|
+
- Andre Kupkosvki
|
10
|
+
- "Vin\xC3\xADcius Teles"
|
8
11
|
autorequire:
|
9
12
|
bindir: bin
|
10
13
|
cert_chain: []
|
11
14
|
|
12
|
-
date: 2008-
|
15
|
+
date: 2008-08-31 00:00:00 -03:00
|
13
16
|
default_executable:
|
14
17
|
dependencies:
|
18
|
+
- !ruby/object:Gem::Dependency
|
19
|
+
name: actionpack
|
20
|
+
type: :runtime
|
21
|
+
version_requirement:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.13.6
|
27
|
+
version:
|
15
28
|
- !ruby/object:Gem::Dependency
|
16
29
|
name: activesupport
|
17
30
|
type: :runtime
|
@@ -34,14 +47,23 @@ files:
|
|
34
47
|
- Rakefile
|
35
48
|
- README
|
36
49
|
- CHANGELOG
|
37
|
-
- TODO
|
38
50
|
- MIT-LICENSE
|
39
51
|
- lib/brdata
|
52
|
+
- lib/brdata/br_date_helper.rb
|
53
|
+
- lib/brdata/config
|
54
|
+
- lib/brdata/config/nacionais_fixos.yml
|
55
|
+
- lib/brdata/config/nacionais_moveis.yml
|
40
56
|
- lib/brdata/date_portuguese.rb
|
57
|
+
- lib/brdata/excecoes.rb
|
58
|
+
- lib/brdata/feriado.rb
|
59
|
+
- lib/brdata/feriado_parser.rb
|
41
60
|
- lib/brdata/time_portuguese.rb
|
42
61
|
- lib/brdata/version.rb
|
43
62
|
- lib/brdata.rb
|
63
|
+
- test/br_date_helper_test.rb
|
44
64
|
- test/date_test.rb
|
65
|
+
- test/feriado_parser_test.rb
|
66
|
+
- test/feriado_test.rb
|
45
67
|
- test/test_helper.rb
|
46
68
|
- test/time_test.rb
|
47
69
|
has_rdoc: true
|