brtraducao 0.0.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -0,0 +1,8 @@
1
+ Brazilian Rails -- Tradução
2
+
3
+ Gem que sobrescreve a implementação de inflections para português, para ser
4
+ usado junto com o Rails
5
+
6
+ Para habilitar, basta:
7
+
8
+ require 'brtraducao'
data/Rakefile CHANGED
@@ -29,17 +29,16 @@ Rake::TestTask.new { |t|
29
29
  }
30
30
 
31
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
- # }
32
+ #Generate the RDoc documentation
33
+ Rake::RDocTask.new { |rdoc|
34
+ rdoc.rdoc_dir = 'doc'
35
+ rdoc.title = "Brazilian Rails -- Tradução"
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,7 +49,7 @@ spec = Gem::Specification.new do |s|
50
49
  s.description = %q{brtraducao é uma das gems que compoem o Brazilian Rails}
51
50
  s.version = PKG_VERSION
52
51
 
53
- s.author = "Marcos Tapajó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 = "brtraducao"
56
55
  s.homepage = "http://www.improveit.com.br/software_livre/brazilian_rails"
@@ -63,7 +62,7 @@ spec = Gem::Specification.new do |s|
63
62
  s.requirements << 'none'
64
63
  s.require_path = 'lib'
65
64
 
66
- s.files = [ "Rakefile", "README", "CHANGELOG", "TODO", "MIT-LICENSE" ]
65
+ s.files = [ "Rakefile", "README", "CHANGELOG", "MIT-LICENSE" ]
67
66
  s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
68
67
  s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
69
68
  end
@@ -1,63 +1,60 @@
1
+ # Infelizmente não é possível colocar todas as regras...
2
+ #
3
+ # http://pt.wikipedia.org/wiki/Plural e
4
+ # http://pt.wikipedia.org/wiki/Singular
1
5
  module Inflector
2
6
  Inflector.inflections do |inflect|
3
- inflect.singular(/^(.*)s$/i, '\1')
4
- inflect.singular(/^(.*)s$/i, '\1')
5
- inflect.singular(/^(.*)s$/i, '\1')
6
- inflect.singular(/^(.*)s$/i, '\1')
7
- inflect.singular(/^(.*)s$/i, '\1')
8
-
9
- inflect.plural(/^(.*[z|r])$/i, '\1es')
10
- inflect.singular(/^(.*[r|z])es$/i, '\1')
7
+ inflect.clear
11
8
 
12
- inflect.plural(/^(.*)al$/i, '\1ais')
13
- inflect.plural(/^(.*)el$/i, '\1eis')
14
- inflect.plural(/^(.*)ol$/i, '\1ois')
15
- inflect.plural(/^(.*)ul$/i, '\1uis')
16
- inflect.singular(/^(.*)ais$/i, '\1al')
17
- inflect.singular(/^(.*)eis$/i, '\1el')
18
- inflect.singular(/^(.*)ois$/i, '\1ol')
19
- inflect.singular(/^(.*)uis$/i, '\1ul')
20
-
21
- inflect.plural(/^(.*)il$/i, '\1is')
9
+ inflect.plural(/$/, 's')
10
+ inflect.plural(/(s)$/i, '\1')
11
+ inflect.plural(/^(paí)s$/i, '\1ses')
12
+ inflect.plural(/(z|r)$/i, '\1es')
13
+ inflect.plural(/al$/i, 'ais')
14
+ inflect.plural(/el$/i, 'eis')
15
+ inflect.plural(/ol$/i, 'ois')
16
+ inflect.plural(/ul$/i, 'uis')
17
+ inflect.plural(/([^aeou])il$/i, '\1is')
18
+ inflect.plural(/m$/i, 'ns')
19
+ inflect.plural(/^(japon|escoc|ingl|dinamarqu|fregu|portugu)ês$/i, '\1eses')
20
+ inflect.plural(/^(|g)ás$/i, '\1ases')
21
+ inflect.plural(/ão$/i, 'ões')
22
+ inflect.plural(/^(irm|m)ão$/i, '\1ãos')
23
+ inflect.plural(/^(alem|c|p)ão$/i, '\1ães')
22
24
 
23
- inflect.plural(/^(.*)m$/i, '\1ns')
24
- inflect.singular(/^(.*)ns$/i, '\1m')
25
-
26
- inflect.plural(/^(.*s)$/i, '\1es')
27
- inflect.plural(/^(.*)ás$/i, '\1ases')
28
- inflect.plural(/^(.*)ês$/i, '\1eses')
29
- inflect.singular(/^(.*)sses$/i, '\1sse')
30
- inflect.singular(/^(.*[^s]s)es$/i, '\1')
31
-
32
- inflect.plural(/^(.*)ão$/i, '\1ões')
33
- inflect.singular(/^(.*)ões$/i, '\1ão')
34
-
35
- inflect.plural(/^(.*)ao$/i, '\1oes')
36
- inflect.singular(/^(.*)aos$/i, '\1ao')
25
+ # Sem acentos...
26
+ inflect.plural(/ao$/i, 'oes')
27
+ inflect.plural(/^(irm|m)ao$/i, '\1aos')
28
+ inflect.plural(/^(alem|c|p)ao$/i, '\1aes')
37
29
 
38
- inflect.singular(/^(.*)ães$/i, '\1ão')
39
- inflect.singular(/^(.*)ãos$/i, '\1ão')
40
- inflect.singular(/^(.*)oes$/i, '\1ao')
41
- inflect.singular(/^(.*)aes$/i, '\1ao')
30
+ inflect.singular(/([^ê])s$/i, '\1')
31
+ inflect.singular(/^(á|gá|paí)s$/i, '\1s')
32
+ inflect.singular(/(r|z)es$/i, '\1')
33
+ inflect.singular(/([^p])ais$/i, '\1al')
34
+ inflect.singular(/eis$/i, 'el')
35
+ inflect.singular(/ois$/i, 'ol')
36
+ inflect.singular(/uis$/i, 'ul')
37
+ inflect.singular(/(r|t)is$/i, '\1il')
38
+ inflect.singular(/ns$/i, 'm')
39
+ inflect.singular(/sses$/i, 'sse')
40
+ inflect.singular(/^(.*[^s]s)es$/i, '\1')
41
+ inflect.singular(/ães$/i, 'ão')
42
+ inflect.singular(/aes$/i, 'ao')
43
+ inflect.singular(/ãos$/i, 'ão')
44
+ inflect.singular(/aos$/i, 'ao')
45
+ inflect.singular(/ões$/i, 'ão')
46
+ inflect.singular(/oes$/i, 'ao')
47
+ inflect.singular(/(japon|escoc|ingl|dinamarqu|fregu|portugu)eses$/i, '\1ês')
48
+ inflect.singular(/^(g|)ases$/i, '\1ás')
42
49
 
43
50
  # #irregulares
44
- irregulares = { "cão" => 'cães',
45
- "pão" => 'pães',
46
- "mão" => 'mãos',
47
- "alemão" => 'alemães',
48
- "cao" => 'caes',
49
- "pao" => 'paes',
50
- "mao" => 'maos',
51
- "alemao" => 'alemaes',
52
- "mail" => 'mails',
53
- "email" => 'emails'
54
- }
55
-
56
-
57
- irregulares.each do |key, value|
58
- inflect.plural(/^#{key.to_s}$/, value)
59
- inflect.singular(/^#{value}$/, key.to_s)
60
- end
51
+ # irregulares = {'país' => 'paises'}
52
+ #
53
+ #
54
+ # irregulares.each do |key, value|
55
+ # inflect.plural(/^#{key.to_s}$/, value)
56
+ # inflect.singular(/^#{value}$/, key.to_s)
57
+ # end
61
58
 
62
59
  inflect.uncountable %w( tórax tênis ônibus lápis fênix )
63
60
  end
@@ -1,8 +1,8 @@
1
1
  module BrTraducao
2
2
  module VERSION #:nodoc:
3
- MAJOR = 0
3
+ MAJOR = 2
4
4
  MINOR = 0
5
- TINY = 1
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -0,0 +1,50 @@
1
+ casa: casas
2
+ classe: classes
3
+ cotonete: cotonetes
4
+ cone: cones
5
+ pé: pés
6
+ saci: sacis
7
+ carro: carros
8
+ pneu: pneus
9
+ flor: flores
10
+ luz: luzes
11
+ hospital: hospitais
12
+ movel: moveis
13
+ farol: farois
14
+ azul: azuis
15
+ cantil: cantis
16
+ barril: barris
17
+ armazem: armazens
18
+ ás: ases
19
+ gás: gases
20
+ portão: portões
21
+ portao: portoes
22
+ localização: localizações
23
+ sessão: sessões
24
+ cão: cães
25
+ pão: pães
26
+ mão: mãos
27
+ pai: pais
28
+ tênis: tênis
29
+ tórax: tórax
30
+ fênix: fênix
31
+ lápis: lápis
32
+ ônibus: ônibus
33
+ inglês: ingleses
34
+ país: países
35
+ email: emails
36
+ papel: papeis
37
+ inglês: ingleses
38
+ dinamarquês: dinamarqueses
39
+ português: portugueses
40
+ freguês: fregueses
41
+ japonês: japoneses
42
+ alemão: alemães
43
+ irmão: irmãos
44
+ irmã: irmãs
45
+ limão: limões
46
+ sessao: sessoes
47
+ cao: caes
48
+ pao: paes
49
+ mao: maos
50
+ localizacao: localizacoes
@@ -0,0 +1,60 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+ require 'yaml'
3
+
4
+ $KCODE = 'utf8'
5
+
6
+ def verify_pluralize(words)
7
+ words.each do |key, value|
8
+ module_eval %[
9
+ def test_pluralize_#{key}_to_#{value}
10
+ assert_equal '#{value}', '#{key}'.pluralize
11
+ end
12
+ ]
13
+ end
14
+ end
15
+
16
+ def verify_singularize(words)
17
+ words.each do |key, value|
18
+ module_eval %[
19
+ def test_singularize_#{value}_to_#{key}
20
+ assert_equal '#{key}', '#{value}'.singularize
21
+ end
22
+ ]
23
+ end
24
+ end
25
+
26
+ def verify_if_dont_pluralize(words)
27
+ words.each do |key, value|
28
+ module_eval %[
29
+ def test_if_dont_pluralize_#{value}
30
+ assert_equal '#{value}', '#{value}'.pluralize
31
+ end
32
+ ]
33
+ end
34
+ end
35
+
36
+ def verify_if_dont_singularize(words)
37
+ words.each do |key, value|
38
+ module_eval %[
39
+ def test_if_dont_singularize_#{key}
40
+ assert_equal '#{key}', '#{key}'.singularize
41
+ end
42
+ ]
43
+ end
44
+ end
45
+
46
+ class InflectorTest < Test::Unit::TestCase
47
+ @words = YAML.load_file(File.dirname(__FILE__)+'/inflections.yaml')
48
+
49
+ verify_pluralize(@words)
50
+ verify_singularize(@words)
51
+ verify_if_dont_pluralize(@words)
52
+ verify_if_dont_singularize(@words)
53
+
54
+ def test_if_dont_pluralize
55
+ %(sessoes).each do |value|
56
+ assert_equal value, value.pluralize
57
+ end
58
+ end
59
+ end
60
+
metadata CHANGED
@@ -1,15 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brtraducao
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
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-06-23 00:00:00 -03:00
15
+ date: 2008-08-31 00:00:00 -03:00
13
16
  default_executable:
14
17
  dependencies:
15
18
  - !ruby/object:Gem::Dependency
@@ -54,7 +57,6 @@ files:
54
57
  - Rakefile
55
58
  - README
56
59
  - CHANGELOG
57
- - TODO
58
60
  - MIT-LICENSE
59
61
  - lib/brtraducao
60
62
  - lib/brtraducao/action_view_portuguese.rb
@@ -64,6 +66,8 @@ files:
64
66
  - lib/brtraducao.rb
65
67
  - test/action_view_test.rb
66
68
  - test/active_record_test.rb
69
+ - test/inflections.yaml
70
+ - test/inflector_test.rb
67
71
  - test/test_helper.rb
68
72
  has_rdoc: true
69
73
  homepage: http://www.improveit.com.br/software_livre/brazilian_rails
data/TODO DELETED
@@ -1,5 +0,0 @@
1
- # gem brdinheiro
2
-
3
- ## testes do dinheiro_active_record
4
- ## Ajustar o README
5
- ## Verificar como regrar a documentação.