brdata 3.0.4 → 3.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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"
|