brferiados 0.0.1
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/CHANGELOG +0 -0
- data/MIT-LICENSE +20 -0
- data/README +0 -0
- data/Rakefile +99 -0
- data/TODO +4 -0
- data/lib/brferiado.rb +25 -0
- data/lib/brferiado/config/nacionais_fixos.yml +18 -0
- data/lib/brferiado/config/nacionais_moveis.yml +4 -0
- data/lib/brferiado/excecoes.rb +10 -0
- data/lib/brferiado/feriado.rb +89 -0
- data/lib/brferiado/feriado_parser.rb +30 -0
- data/lib/brferiado/version.rb +9 -0
- data/test/feriado_parser_test.rb +29 -0
- data/test/feriado_test.rb +77 -0
- data/test/test_helper.rb +16 -0
- metadata +78 -0
data/CHANGELOG
ADDED
File without changes
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2008 [name of plugin creator]
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README
ADDED
File without changes
|
data/Rakefile
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'rake/testtask'
|
4
|
+
require 'rake/rdoctask'
|
5
|
+
require 'rake/packagetask'
|
6
|
+
require 'rake/gempackagetask'
|
7
|
+
require 'rake/contrib/sshpublisher'
|
8
|
+
require File.join(File.dirname(__FILE__), 'lib', 'brferiado', 'version')
|
9
|
+
|
10
|
+
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
|
11
|
+
PKG_NAME = 'brferiados'
|
12
|
+
PKG_VERSION = BrFeriado::VERSION::STRING + PKG_BUILD
|
13
|
+
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
14
|
+
|
15
|
+
RELEASE_NAME = "REL #{PKG_VERSION}"
|
16
|
+
|
17
|
+
RUBY_FORGE_PROJECT = "brferiados"
|
18
|
+
RUBY_FORGE_USER = "tapajos"
|
19
|
+
|
20
|
+
desc "Default Task"
|
21
|
+
task :default => [ :test ]
|
22
|
+
|
23
|
+
# Run the unit tests
|
24
|
+
Rake::TestTask.new { |t|
|
25
|
+
t.libs << "test"
|
26
|
+
t.pattern = 'test/*_test.rb'
|
27
|
+
t.verbose = true
|
28
|
+
t.warning = false
|
29
|
+
}
|
30
|
+
|
31
|
+
|
32
|
+
# Generate the RDoc documentation
|
33
|
+
# Rake::RDocTask.new { |rdoc|
|
34
|
+
# rdoc.rdoc_dir = 'doc'
|
35
|
+
# rdoc.title = "Action Mailer -- Easy email delivery and testing"
|
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/action_mailer.rb')
|
41
|
+
# rdoc.rdoc_files.include('lib/action_mailer/*.rb')
|
42
|
+
# }
|
43
|
+
|
44
|
+
|
45
|
+
# Create compressed packages
|
46
|
+
spec = Gem::Specification.new do |s|
|
47
|
+
s.platform = Gem::Platform::RUBY
|
48
|
+
s.name = PKG_NAME
|
49
|
+
s.summary = "brferiado é uma das gems que compoem o Brazilian Rails"
|
50
|
+
s.description = %q{brferiado é uma das gems que compoem o Brazilian Rails}
|
51
|
+
s.version = PKG_VERSION
|
52
|
+
|
53
|
+
s.author = "Marcos Tapajós"
|
54
|
+
s.email = "tapajos@gmail.com"
|
55
|
+
s.rubyforge_project = "brferiado"
|
56
|
+
s.homepage = "http://www.improveit.com.br/software_livre/brazilian_rails"
|
57
|
+
|
58
|
+
s.has_rdoc = true
|
59
|
+
s.requirements << 'none'
|
60
|
+
s.require_path = 'lib'
|
61
|
+
# s.autorequire = 'brferiado'
|
62
|
+
|
63
|
+
s.add_dependency('brdata', '>= 0.0.1')
|
64
|
+
|
65
|
+
s.files = [ "Rakefile", "README", "CHANGELOG", "TODO", "MIT-LICENSE" ]
|
66
|
+
s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
|
67
|
+
s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
|
68
|
+
end
|
69
|
+
|
70
|
+
Rake::GemPackageTask.new(spec) do |p|
|
71
|
+
p.gem_spec = spec
|
72
|
+
p.need_tar = true
|
73
|
+
p.need_zip = true
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
# desc "Publish the API documentation"
|
78
|
+
# task :pgem => [:package] do
|
79
|
+
# Rake::SshFilePublisher.new("wrath.rubyonrails.org", "public_html/gems/gems", "pkg", "#{PKG_FILE_NAME}.gem").upload
|
80
|
+
# end
|
81
|
+
#
|
82
|
+
# desc "Publish the API documentation"
|
83
|
+
# task :pdoc => [:rdoc] do
|
84
|
+
# Rake::SshDirPublisher.new("wrath.rubyonrails.org", "public_html/am", "doc").upload
|
85
|
+
# end
|
86
|
+
#
|
87
|
+
|
88
|
+
desc "Publish the release files to RubyForge."
|
89
|
+
task :release => [ :package ] do
|
90
|
+
require 'rubyforge'
|
91
|
+
require 'rake/contrib/rubyforgepublisher'
|
92
|
+
|
93
|
+
packages = %w( gem tgz zip ).collect{ |ext| "pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" }
|
94
|
+
|
95
|
+
rubyforge = RubyForge.new
|
96
|
+
rubyforge.configure
|
97
|
+
rubyforge.login
|
98
|
+
rubyforge.add_release(PKG_NAME, PKG_NAME, "REL #{PKG_VERSION}", *packages)
|
99
|
+
end
|
data/TODO
ADDED
data/lib/brferiado.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require 'active_support'
|
6
|
+
require 'brdata'
|
7
|
+
|
8
|
+
%w(feriado
|
9
|
+
feriado_parser
|
10
|
+
version
|
11
|
+
excecoes).each {|req| require File.dirname(__FILE__) + "/brferiado/#{req}"}
|
12
|
+
|
13
|
+
|
14
|
+
module BrFeriado
|
15
|
+
end
|
16
|
+
|
17
|
+
# FERIADOS_PATH = RAILS_ROOT + '/config/feriados'
|
18
|
+
feriados, metodos = FeriadoParser.parser(File.dirname(__FILE__) + "/brferiado/config")
|
19
|
+
# if File.directory?(FERIADOS_PATH)
|
20
|
+
# f, m = FeriadoParser.parser(FERIADOS_PATH)
|
21
|
+
# feriados += f
|
22
|
+
# metodos += m
|
23
|
+
# end
|
24
|
+
Date::FERIADOS = feriados;
|
25
|
+
Date::FERIADOS_METODOS = metodos
|
@@ -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
|
@@ -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/brferiado/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
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.dirname(__FILE__) + '/../lib/brferiado'
|
3
|
+
|
4
|
+
|
5
|
+
def tornar_metodos_publicos(clazz)
|
6
|
+
clazz.class_eval do
|
7
|
+
private_instance_methods.each { |instance_method| public instance_method }
|
8
|
+
private_methods.each { |method| public_class_method method }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def p80 text
|
13
|
+
p '*'*80
|
14
|
+
p text
|
15
|
+
p '*'*80
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: brferiados
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- "Marcos Tapaj\xC3\xB3s"
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-06-23 00:00:00 -03:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: brdata
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.1
|
24
|
+
version:
|
25
|
+
description: "brferiado \xC3\xA9 uma das gems que compoem o Brazilian Rails"
|
26
|
+
email: tapajos@gmail.com
|
27
|
+
executables: []
|
28
|
+
|
29
|
+
extensions: []
|
30
|
+
|
31
|
+
extra_rdoc_files: []
|
32
|
+
|
33
|
+
files:
|
34
|
+
- Rakefile
|
35
|
+
- README
|
36
|
+
- CHANGELOG
|
37
|
+
- TODO
|
38
|
+
- MIT-LICENSE
|
39
|
+
- lib/brferiado
|
40
|
+
- lib/brferiado/config
|
41
|
+
- lib/brferiado/config/nacionais_fixos.yml
|
42
|
+
- lib/brferiado/config/nacionais_moveis.yml
|
43
|
+
- lib/brferiado/excecoes.rb
|
44
|
+
- lib/brferiado/feriado.rb
|
45
|
+
- lib/brferiado/feriado_parser.rb
|
46
|
+
- lib/brferiado/version.rb
|
47
|
+
- lib/brferiado.rb
|
48
|
+
- test/feriado_parser_test.rb
|
49
|
+
- test/feriado_test.rb
|
50
|
+
- test/test_helper.rb
|
51
|
+
has_rdoc: true
|
52
|
+
homepage: http://www.improveit.com.br/software_livre/brazilian_rails
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options: []
|
55
|
+
|
56
|
+
require_paths:
|
57
|
+
- lib
|
58
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: "0"
|
63
|
+
version:
|
64
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: "0"
|
69
|
+
version:
|
70
|
+
requirements:
|
71
|
+
- none
|
72
|
+
rubyforge_project: brferiado
|
73
|
+
rubygems_version: 1.2.0
|
74
|
+
signing_key:
|
75
|
+
specification_version: 2
|
76
|
+
summary: "brferiado \xC3\xA9 uma das gems que compoem o Brazilian Rails"
|
77
|
+
test_files: []
|
78
|
+
|