inflections 0.0.3 → 0.0.4

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.markdown CHANGED
@@ -1,5 +1,9 @@
1
- 0.0.3 (current version)
1
+ 0.0.4 (current version)
2
2
  =======================
3
+ * Support for Spanish (es)
4
+
5
+ 0.0.3
6
+ =====
3
7
  * Code reorganization. Inflections will now be located under `lib/inflections/` and will be named as according to their I18n abbreviation.
4
8
  * Tests have also been reorganized. They live in the `test/` directory (big surprise) and, like the inflection files, should be named as according to their I18n abbreviation (`en_test.rb`, `es_test.rb`, `de_test.rb`, etc.)
5
9
 
@@ -9,4 +13,4 @@
9
13
 
10
14
  0.0.1
11
15
  =====
12
- * Initial version: support for English.
16
+ * Initial version: support for English (en)
data/README.markdown CHANGED
@@ -11,7 +11,7 @@ Many of the special cases that ActiveSupport defines will not see the light of d
11
11
  Add the following to your application's Gemfile:
12
12
 
13
13
  ```ruby
14
- gem 'inflections', :require => 'inflections/en' # Or replace 'en' with your language's i18n abbreviation
14
+ gem 'inflections', :require => 'inflections/en' # Or replace 'en' with your language's I18n abbreviation
15
15
  ```
16
16
 
17
17
  And then execute:
@@ -31,7 +31,7 @@ If you're using Rails, you're done. The default inflections defined in ActiveSup
31
31
  Wherever you need 'em:
32
32
 
33
33
  ```ruby
34
- require 'inflections'
34
+ require 'inflections/en'
35
35
  ```
36
36
 
37
37
  Define your own defaults as such:
@@ -48,8 +48,9 @@ end
48
48
  ## Languages Currently Supported
49
49
 
50
50
  * English (en)
51
+ * Spanish (es)
51
52
 
52
- If you are fluent in a language not yet included in this gem, _please_ consider creating a list of inflections and submitting a pull request. I would love to support more than just English.
53
+ If you are fluent in a language not yet included in this gem, _please_ consider creating a list of inflections and submitting a pull request.
53
54
 
54
55
  ## Contributing
55
56
 
data/Rakefile CHANGED
@@ -3,7 +3,14 @@ require 'bundler/gem_tasks'
3
3
  require 'rake/testtask'
4
4
 
5
5
  task :default => :test
6
- Rake::TestTask.new(:test) do |t|
6
+ task :test do
7
+ Dir.glob('test/*_test.rb').each do |test_file|
8
+ ENV['TEST'] = test_file
9
+ Rake::Task['each_test'].execute
10
+ end
11
+ end
12
+
13
+ Rake::TestTask.new(:each_test) do |t|
7
14
  t.libs << 'test'
8
15
  t.test_files = Dir.glob('test/*_test.rb')
9
16
  t.verbose = true
data/inflections.gemspec CHANGED
@@ -11,7 +11,6 @@ Gem::Specification.new do |gem|
11
11
  gem.files = `git ls-files`.split($\)
12
12
  gem.test_files = Dir.glob('test/*_test.rb')
13
13
  gem.name = 'inflections'
14
- gem.require_paths = ['lib']
15
14
  gem.version = Inflections::VERSION
16
15
 
17
16
  gem.add_development_dependency 'rake'
@@ -1,22 +1,22 @@
1
1
  module Inflections
2
2
  ActiveSupport::Inflector.inflections do |inflect|
3
3
  inflect.clear
4
-
4
+
5
5
  inflect.plural(/$/, 's')
6
6
  inflect.plural(/([sxz]|[cs]h)$/i, '\1es')
7
7
  inflect.plural(/([^aeiouy]o)$/i, '\1es')
8
8
  inflect.plural(/([^aeiouy])y$/i, '\1ies')
9
-
9
+
10
10
  inflect.singular(/s$/i, '')
11
11
  inflect.singular(/(ss)$/i, '\1')
12
12
  inflect.singular(/([sxz]|[cs]h)es$/, '\1')
13
13
  inflect.singular(/([^aeiouy]o)es$/, '\1')
14
14
  inflect.singular(/([^aeiouy])ies$/i, '\1y')
15
-
15
+
16
16
  inflect.irregular('child', 'children')
17
17
  inflect.irregular('person', 'people')
18
18
  inflect.irregular('self', 'selves')
19
-
19
+
20
20
  inflect.uncountable(%w(series))
21
21
  end
22
22
  end
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+
3
+ module Inflections
4
+ ActiveSupport::Inflector.inflections do |inflect|
5
+ inflect.clear
6
+
7
+ inflect.plural(/$/, 's')
8
+ inflect.plural(/([^aeéiou])$/i, '\1es')
9
+ inflect.plural(/([aeiou]s)$/i, '\1')
10
+ inflect.plural(/z$/i, 'ces')
11
+ inflect.plural(/á([sn])$/i, 'a\1es')
12
+ inflect.plural(/é([sn])$/i, 'e\1es')
13
+ inflect.plural(/í([sn])$/i, 'i\1es')
14
+ inflect.plural(/ó([sn])$/i, 'o\1es')
15
+ inflect.plural(/ú([sn])$/i, 'u\1es')
16
+
17
+ inflect.singular(/s$/, '')
18
+ inflect.singular(/es$/, '')
19
+
20
+ inflect.irregular('el', 'los')
21
+ end
22
+ end
@@ -1,7 +1,7 @@
1
1
  module Inflections
2
2
  MAJOR = 0
3
3
  MINOR = 0
4
- PATCH = 3
4
+ PATCH = 4
5
5
 
6
6
  VERSION = [MAJOR, MINOR, PATCH].compact.join '.'
7
7
  end
data/test/en_test.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
  require 'inflections/en'
3
3
 
4
- class TestInflections < MiniTest::Unit::TestCase
4
+ class TestEnglishInflections < MiniTest::Unit::TestCase
5
5
  def test_regular_plurals
6
6
  assert_equal 'dogs', 'dog'.pluralize
7
7
  assert_equal 'dog', 'dogs'.singularize
data/test/es_test.rb ADDED
@@ -0,0 +1,35 @@
1
+ # encoding: utf-8
2
+
3
+ require 'test_helper'
4
+ require 'inflections/es'
5
+
6
+ class TestSpanishInflections < MiniTest::Unit::TestCase
7
+ def test_plurales_regulares
8
+ assert_equal 'libros', 'libro'.pluralize
9
+ assert_equal 'libro', 'libros'.singularize
10
+
11
+ assert_equal 'radios', 'radio'.pluralize
12
+ assert_equal 'radio', 'radios'.singularize
13
+
14
+ assert_equal 'señores', 'señor'.pluralize
15
+ assert_equal 'señor', 'señores'.singularize
16
+
17
+ assert_equal 'leyes', 'ley'.pluralize
18
+ assert_equal 'ley', 'leyes'.singularize
19
+ end
20
+
21
+ def test_plurales_que_terminar_en_z
22
+ assert_equal 'meces', 'mez'.pluralize
23
+ assert_equal 'luces', 'luz'.pluralize
24
+ end
25
+
26
+ def test_plurales_que_terminar_en_n_o_s_con_acentos
27
+ assert_equal 'aviones', 'avión'.pluralize
28
+ assert_equal 'intereses', 'interés'.pluralize
29
+ end
30
+
31
+ def test_plurales_irregulares
32
+ assert_equal 'los', 'el'.pluralize
33
+ assert_equal 'el', 'los'.singularize
34
+ end
35
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inflections
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -76,8 +76,10 @@ files:
76
76
  - Rakefile
77
77
  - inflections.gemspec
78
78
  - lib/inflections/en.rb
79
+ - lib/inflections/es.rb
79
80
  - lib/inflections/version.rb
80
81
  - test/en_test.rb
82
+ - test/es_test.rb
81
83
  - test/test_helper.rb
82
84
  homepage: https://github.com/davidcelis/inflections
83
85
  licenses: []
@@ -105,3 +107,4 @@ specification_version: 3
105
107
  summary: Sane inflection rules for ActiveSupport.
106
108
  test_files:
107
109
  - test/en_test.rb
110
+ - test/es_test.rb