brdata 3.0.4 → 3.0.5
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/Rakefile +1 -1
- data/lib/brdata.rb +2 -2
- data/lib/brdata/excecoes.rb +1 -1
- data/lib/brdata/feriado.rb +14 -14
- data/lib/brdata/feriado_parser.rb +5 -5
- data/lib/brdata/version.rb +1 -1
- data/test/br_date_helper_test.rb +2 -2
- data/test/date_test.rb +9 -9
- data/test/feriado_parser_test.rb +9 -9
- data/test/test_helper.rb +2 -2
- data/test/time_test.rb +9 -9
- metadata +30 -8
data/Rakefile
CHANGED
data/lib/brdata.rb
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
$:.unshift(File.dirname(__FILE__)) unless
|
3
3
|
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
4
4
|
|
5
|
-
require 'rubygems'
|
5
|
+
require 'rubygems'
|
6
6
|
require 'action_controller'
|
7
7
|
require 'active_support'
|
8
8
|
require 'action_view'
|
9
|
-
|
9
|
+
|
10
10
|
%w(date_portuguese
|
11
11
|
time_portuguese
|
12
12
|
version
|
data/lib/brdata/excecoes.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
def cria_excecao(classe, mensagem)
|
3
3
|
eval "class #{classe}; def initialize; super('#{mensagem}'); end; end"
|
4
4
|
end
|
5
|
-
|
5
|
+
|
6
6
|
cria_excecao("FeriadoMesInvalidoError < ArgumentError", "O mês deve ser um número e estar entre 01 e 12")
|
7
7
|
cria_excecao("FeriadoDiaInvalidoError < ArgumentError", "O mês deve ser um número e estar entre 01 e 31")
|
8
8
|
cria_excecao("FeriadoParserDiretorioInvalidoError < ArgumentError", "Só é possivel fazer parser de um diretorio contendo os arquivos yml.")
|
data/lib/brdata/feriado.rb
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
# Você pode ver exemplos desses YML dentro do diretório samples/feriado.
|
6
6
|
#
|
7
7
|
class Feriado
|
8
|
-
|
9
|
-
attr_accessor :dia
|
8
|
+
|
9
|
+
attr_accessor :dia
|
10
10
|
attr_accessor :mes
|
11
11
|
attr_accessor :nome
|
12
|
-
|
12
|
+
|
13
13
|
# Construtor um feriado.
|
14
14
|
#
|
15
15
|
# Exemplo:
|
@@ -18,33 +18,33 @@ class Feriado
|
|
18
18
|
valida_dia(dia)
|
19
19
|
valida_mes(mes)
|
20
20
|
self.nome = nome
|
21
|
-
self.dia = dia.to_i
|
21
|
+
self.dia = dia.to_i
|
22
22
|
self.mes = mes.to_i
|
23
|
-
|
23
|
+
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
# Compara dois feriados. Dois feriados são iguais se acontecem na mesma data.
|
27
27
|
def ==(outro_feriado)
|
28
28
|
self.mes == outro_feriado.mes && self.dia == outro_feriado.dia
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
private
|
32
|
-
|
32
|
+
|
33
33
|
def valida_dia(dia)
|
34
34
|
raise FeriadoDiaInvalidoError unless (1..31).include?(dia.to_i)
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
def valida_mes(mes)
|
38
38
|
raise FeriadoMesInvalidoError unless (1..12).include?(mes.to_i)
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
end
|
42
42
|
|
43
43
|
class Date
|
44
|
-
|
44
|
+
|
45
45
|
FERIADOS = []
|
46
46
|
FERIADOS_METODOS = []
|
47
|
-
|
47
|
+
|
48
48
|
# Retorna a true se a data for um feriado
|
49
49
|
#
|
50
50
|
# Exemplo:
|
@@ -57,7 +57,7 @@ class Date
|
|
57
57
|
end
|
58
58
|
false
|
59
59
|
end
|
60
|
-
|
60
|
+
|
61
61
|
# Retorna a pascoa no ano da data atual
|
62
62
|
#
|
63
63
|
# Exemplo:
|
@@ -84,6 +84,6 @@ class Date
|
|
84
84
|
def corpus_christi
|
85
85
|
Date.parse((pascoa.to_time + 60.days).to_date.to_s)
|
86
86
|
end
|
87
|
-
|
87
|
+
|
88
88
|
end
|
89
89
|
|
@@ -1,19 +1,19 @@
|
|
1
1
|
require 'find'
|
2
2
|
require 'yaml'
|
3
3
|
class FeriadoParser
|
4
|
-
|
4
|
+
|
5
5
|
# Faz o parser do YML e retorna a coleção de feriados.
|
6
6
|
def self.parser(diretorio)
|
7
7
|
files = []
|
8
8
|
feriados = []
|
9
9
|
metodos = []
|
10
10
|
raise FeriadoParserDiretorioInvalidoError unless File.directory?(diretorio)
|
11
|
-
Find.find(diretorio) do |file|
|
11
|
+
Find.find(diretorio) do |file|
|
12
12
|
files << file if file =~ /.*\.yml$/
|
13
13
|
end
|
14
14
|
raise FeriadoParserDiretorioVazioError if files.empty?
|
15
15
|
files.each do |file|
|
16
|
-
itens = YAML.load_file(file)
|
16
|
+
itens = YAML.load_file(file)
|
17
17
|
itens.each do |key, value|
|
18
18
|
if value["metodo"]
|
19
19
|
FeriadoParserMetodoInvalido if value["dia"] && value["mes"]
|
@@ -25,6 +25,6 @@ class FeriadoParser
|
|
25
25
|
end
|
26
26
|
[feriados, metodos]
|
27
27
|
end
|
28
|
-
|
29
|
-
|
28
|
+
|
29
|
+
|
30
30
|
end
|
data/lib/brdata/version.rb
CHANGED
data/test/br_date_helper_test.rb
CHANGED
@@ -3,9 +3,9 @@ require File.dirname(__FILE__) + '/test_helper'
|
|
3
3
|
require 'mocha'
|
4
4
|
|
5
5
|
class ActionViewTest < Test::Unit::TestCase
|
6
|
-
|
6
|
+
|
7
7
|
include ActionView::Helpers::DateHelper
|
8
|
-
|
8
|
+
|
9
9
|
def test_distance_of_time_in_words
|
10
10
|
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)
|
11
11
|
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)
|
data/test/date_test.rb
CHANGED
@@ -2,31 +2,31 @@
|
|
2
2
|
require File.dirname(__FILE__) + '/test_helper'
|
3
3
|
|
4
4
|
class DateTest < Test::Unit::TestCase
|
5
|
-
|
5
|
+
|
6
6
|
# to_date
|
7
7
|
def test_create_date_with_traditional_date_format
|
8
8
|
assert_equal "2007-01-02", "2007/01/02".to_date.to_s
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def test_create_date_with_brazilian_date_format
|
12
12
|
assert_equal "2007-12-13", "13/12/2007".to_date.to_s
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
def test_create_date_with_other_brazilian_date_format
|
16
16
|
assert_equal "2007-02-01", "01-02-2007".to_date.to_s
|
17
17
|
end
|
18
18
|
|
19
|
-
|
19
|
+
|
20
20
|
#to_s
|
21
21
|
def test_date_to_s_with_traditional_format
|
22
22
|
assert_equal "2007-02-01", "01/02/2007".to_date.to_s
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
#to_s_br
|
26
26
|
def test_date_to_s_br
|
27
27
|
assert_equal "13/12/2007", "13/12/2007".to_date.to_s_br
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
#to_s_br when date is nil
|
31
31
|
def test_date_to_s_br_when_date_is_nil
|
32
32
|
assert_equal "", nil.to_s_br
|
@@ -36,7 +36,7 @@ class DateTest < Test::Unit::TestCase
|
|
36
36
|
def test_valid_when_date_format_is_traditional_and_valid_format_and_valid_civil
|
37
37
|
assert Date.valid?("2007/01/02"), "Should be a valid date"
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
def test_valid_when_date_format_is_brazilian_and_valid_format_and_valid_civil
|
41
41
|
assert Date.valid?("13/12/2007"), "Should be a valid date"
|
42
42
|
end
|
@@ -69,7 +69,7 @@ class DateTest < Test::Unit::TestCase
|
|
69
69
|
"Dezembro"],
|
70
70
|
Date::MONTHNAMES
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
def test_days_names
|
74
74
|
assert_equal ["Domingo",
|
75
75
|
"Segunda-Feira",
|
@@ -101,7 +101,7 @@ class DateTest < Test::Unit::TestCase
|
|
101
101
|
def test_abbr_daysnames
|
102
102
|
assert_equal ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"], Date::ABBR_DAYNAMES
|
103
103
|
end
|
104
|
-
|
104
|
+
|
105
105
|
def test_date_translation_with_strftime
|
106
106
|
assert_equal "Dezembro Dez Sexta-Feira Sex", Date.parse("2008-12-05").strftime("%B %b %A %a")
|
107
107
|
end
|
data/test/feriado_parser_test.rb
CHANGED
@@ -1,30 +1,30 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/test_helper'
|
2
2
|
|
3
3
|
class FeriadoParserTest < Test::Unit::TestCase
|
4
|
-
|
4
|
+
|
5
5
|
FERIADO_YML_PATH = File.expand_path(File.dirname(__FILE__) + '/../lib/brdata/config')
|
6
6
|
p FERIADO_YML_PATH
|
7
7
|
NATAL = Feriado.new("natal", 25, 12)
|
8
|
-
|
8
|
+
|
9
9
|
def test_feriados
|
10
10
|
feriados, metodos = FeriadoParser.parser(FERIADO_YML_PATH)
|
11
11
|
feriados.each {|feriado| assert_kind_of Feriado, feriado}
|
12
12
|
assert_equal NATAL, feriados.find {|f| f.nome == "natal"}
|
13
|
-
assert metodos.include?( "pascoa")
|
13
|
+
assert metodos.include?( "pascoa")
|
14
14
|
assert metodos.include?( "corpus_christi")
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def test_feriados_quando_path_nao_eh_diretorio
|
18
18
|
assert_raise FeriadoParserDiretorioInvalidoError do
|
19
|
-
FeriadoParser.parser(File.dirname(__FILE__) + 'dinheiro_test.rb')
|
19
|
+
FeriadoParser.parser(File.dirname(__FILE__) + 'dinheiro_test.rb')
|
20
20
|
end
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
def test_feriados_quando_path_nao_contem_arquivos
|
24
24
|
assert_raise FeriadoParserDiretorioVazioError do
|
25
|
-
FeriadoParser.parser(File.dirname(__FILE__))
|
25
|
+
FeriadoParser.parser(File.dirname(__FILE__))
|
26
26
|
end
|
27
27
|
end
|
28
|
-
|
29
|
-
|
28
|
+
|
29
|
+
|
30
30
|
end
|
data/test/test_helper.rb
CHANGED
@@ -5,8 +5,8 @@ require File.dirname(__FILE__) + '/../lib/brdata'
|
|
5
5
|
def tornar_metodos_publicos(clazz)
|
6
6
|
clazz.class_eval do
|
7
7
|
private_instance_methods.each { |instance_method| public instance_method }
|
8
|
-
private_methods.each { |method| public_class_method method }
|
9
|
-
end
|
8
|
+
private_methods.each { |method| public_class_method method }
|
9
|
+
end
|
10
10
|
end
|
11
11
|
|
12
12
|
def p80 text
|
data/test/time_test.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
require File.dirname(__FILE__) + '/test_helper'
|
3
3
|
|
4
4
|
class TimeTest < Test::Unit::TestCase
|
5
|
-
|
5
|
+
|
6
6
|
# to_time
|
7
7
|
def test_create_time_with_traditional_time_format
|
8
8
|
assert_equal "2007-01-02 01:23:00", "2007/01/02 01:23".to_time.to_s(:db)
|
@@ -11,16 +11,16 @@ class TimeTest < Test::Unit::TestCase
|
|
11
11
|
def test_create_time_with_brazilian_time_format_without_time
|
12
12
|
assert_equal "2007-12-13 00:00:00", "13/12/2007".to_time.to_s(:db)
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
def test_create_time_with_brazilian_time_format_with_time
|
16
16
|
assert_equal "2007-12-13 01:23:00", "13/12/2007 01:23".to_time.to_s(:db)
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def test_create_time_with_brazilian_time_format_with_time_with_single_number
|
20
20
|
assert_equal "2007-02-01 01:23:00", "1/2/2007 1:23".to_time.to_s(:db)
|
21
21
|
end
|
22
|
-
|
23
|
-
|
22
|
+
|
23
|
+
|
24
24
|
#to_s
|
25
25
|
def test_time_to_s_with_traditional_format
|
26
26
|
if RUBY_VERSION < '1.9'
|
@@ -29,12 +29,12 @@ class TimeTest < Test::Unit::TestCase
|
|
29
29
|
assert_equal "2007-09-24 16:03:05 UTC", "2007-09-24 16:03:05 UTC".to_time.to_s
|
30
30
|
end
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
#to_s_br
|
34
34
|
def test_time_to_s_br
|
35
35
|
assert_equal "24/09/2007 16:03", "Mon Sep 24 16:03:05 UTC 2007".to_time.to_s_br
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
def test_month_names
|
39
39
|
assert_equal [nil,
|
40
40
|
"Janeiro",
|
@@ -51,7 +51,7 @@ class TimeTest < Test::Unit::TestCase
|
|
51
51
|
"Dezembro"],
|
52
52
|
Time::MONTHNAMES
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
def test_days_names
|
56
56
|
assert_equal ["Domingo",
|
57
57
|
"Segunda-Feira",
|
@@ -83,7 +83,7 @@ class TimeTest < Test::Unit::TestCase
|
|
83
83
|
def test_abbr_daysnames
|
84
84
|
assert_equal ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"], Time::ABBR_DAYNAMES
|
85
85
|
end
|
86
|
-
|
86
|
+
|
87
87
|
def test_time_translation_with_strftime
|
88
88
|
assert_equal "Dezembro Dez Sexta-Feira Sex", Time.parse("2008-12-05").strftime("%B %b %A %a")
|
89
89
|
end
|
metadata
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brdata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 3
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
version: 3.0.5
|
6
10
|
platform: ruby
|
7
11
|
authors:
|
8
12
|
- "Marcos Tapaj\xC3\xB3s"
|
@@ -16,52 +20,64 @@ autorequire:
|
|
16
20
|
bindir: bin
|
17
21
|
cert_chain: []
|
18
22
|
|
19
|
-
date:
|
23
|
+
date: 2012-01-02 00:00:00 -02:00
|
20
24
|
default_executable:
|
21
25
|
dependencies:
|
22
26
|
- !ruby/object:Gem::Dependency
|
23
27
|
name: actionpack
|
24
|
-
prerelease: false
|
25
28
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
29
|
none: false
|
27
30
|
requirements:
|
28
31
|
- - ">="
|
29
32
|
- !ruby/object:Gem::Version
|
33
|
+
segments:
|
34
|
+
- 3
|
35
|
+
- 0
|
36
|
+
- 0
|
30
37
|
version: 3.0.0
|
31
38
|
type: :runtime
|
39
|
+
prerelease: false
|
32
40
|
version_requirements: *id001
|
33
41
|
- !ruby/object:Gem::Dependency
|
34
42
|
name: activesupport
|
35
|
-
prerelease: false
|
36
43
|
requirement: &id002 !ruby/object:Gem::Requirement
|
37
44
|
none: false
|
38
45
|
requirements:
|
39
46
|
- - ">="
|
40
47
|
- !ruby/object:Gem::Version
|
48
|
+
segments:
|
49
|
+
- 3
|
50
|
+
- 0
|
51
|
+
- 0
|
41
52
|
version: 3.0.0
|
42
53
|
type: :runtime
|
54
|
+
prerelease: false
|
43
55
|
version_requirements: *id002
|
44
56
|
- !ruby/object:Gem::Dependency
|
45
57
|
name: rake
|
46
|
-
prerelease: false
|
47
58
|
requirement: &id003 !ruby/object:Gem::Requirement
|
48
59
|
none: false
|
49
60
|
requirements:
|
50
61
|
- - ">="
|
51
62
|
- !ruby/object:Gem::Version
|
63
|
+
segments:
|
64
|
+
- 0
|
52
65
|
version: "0"
|
53
66
|
type: :development
|
67
|
+
prerelease: false
|
54
68
|
version_requirements: *id003
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: mocha
|
57
|
-
prerelease: false
|
58
71
|
requirement: &id004 !ruby/object:Gem::Requirement
|
59
72
|
none: false
|
60
73
|
requirements:
|
61
74
|
- - ">="
|
62
75
|
- !ruby/object:Gem::Version
|
76
|
+
segments:
|
77
|
+
- 0
|
63
78
|
version: "0"
|
64
79
|
type: :development
|
80
|
+
prerelease: false
|
65
81
|
version_requirements: *id004
|
66
82
|
description: "brdata \xC3\xA9 uma das gems que compoem o Brazilian Rails"
|
67
83
|
email:
|
@@ -113,17 +129,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
129
|
requirements:
|
114
130
|
- - ">="
|
115
131
|
- !ruby/object:Gem::Version
|
132
|
+
hash: 2035463072638731163
|
133
|
+
segments:
|
134
|
+
- 0
|
116
135
|
version: "0"
|
117
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
137
|
none: false
|
119
138
|
requirements:
|
120
139
|
- - ">="
|
121
140
|
- !ruby/object:Gem::Version
|
141
|
+
hash: 2035463072638731163
|
142
|
+
segments:
|
143
|
+
- 0
|
122
144
|
version: "0"
|
123
145
|
requirements:
|
124
146
|
- none
|
125
147
|
rubyforge_project: brdata
|
126
|
-
rubygems_version: 1.
|
148
|
+
rubygems_version: 1.3.7
|
127
149
|
signing_key:
|
128
150
|
specification_version: 3
|
129
151
|
summary: "brdata \xC3\xA9 uma das gems que compoem o Brazilian Rails"
|