inflections 3.2.7.20120803 → 3.2.8

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.markdown CHANGED
@@ -1,5 +1,10 @@
1
- 0.0.5 (current version)
1
+ 3.2.8 (current version)
2
2
  =======================
3
+ * Support for British English (thanks to [creativetags](https://github.com/creativetags))
4
+ * Now versioning alongside ActiveSupport
5
+
6
+ 0.0.5
7
+ =====
3
8
  * Rails users no longer need to specify a locale to load; inflections are automagically loaded depending on `I18n.default_locale`
4
9
 
5
10
  0.0.4
data/README.markdown CHANGED
@@ -38,7 +38,7 @@ Define your own defaults as such:
38
38
 
39
39
  ```ruby
40
40
  ActiveSupport::Inflector.inflections do |inflect|
41
- inflect.singular /(phase)s$/i, '\1'
41
+ inflect.singular /(phase)s$/i, '\1'
42
42
  inflect.plural /(shel|kni)fe/, '\1ves'
43
43
  inflect.irregular 'foot', 'feet'
44
44
  inflect.uncountable %w( money )
@@ -48,6 +48,7 @@ end
48
48
  ## Languages Currently Supported
49
49
 
50
50
  * English (en)
51
+ * British English (en-GB)
51
52
  * Spanish (es)
52
53
 
53
54
  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.
@@ -0,0 +1,22 @@
1
+ module Inflections
2
+ ActiveSupport::Inflector.inflections do |inflect|
3
+ inflect.clear
4
+
5
+ inflect.plural(/$/, 's')
6
+ inflect.plural(/([sxz]|[cs]h)$/i, '\1es')
7
+ inflect.plural(/([^aeiouy]o)$/i, '\1es')
8
+ inflect.plural(/([^aeiouy])y$/i, '\1ies')
9
+
10
+ inflect.singular(/s$/i, '')
11
+ inflect.singular(/(ss)$/i, '\1')
12
+ inflect.singular(/([sxz]|[cs]h)es$/, '\1')
13
+ inflect.singular(/([^aeiouy]o)es$/, '\1')
14
+ inflect.singular(/([^aeiouy])ies$/i, '\1y')
15
+
16
+ inflect.irregular('child', 'children')
17
+ inflect.irregular('person', 'people')
18
+ inflect.irregular('self', 'selves')
19
+
20
+ inflect.uncountable(%w(series))
21
+ end
22
+ end
@@ -1,10 +1,14 @@
1
1
  module Inflections
2
2
  class Railtie < Rails::Railtie
3
3
  begin
4
- require "inflections/#{config.i18n.default_locale}"
4
+ config.to_prepare do
5
+ require "inflections/#{Rails.configuration.i18n.default_locale}"
6
+ end
5
7
  rescue LoadError => e
6
- warn "Inflections currently does not support your default_locale. Defaulting to English (en)."
7
- require 'inflections/en'
8
+ config.to_prepare do
9
+ warn "Inflections currently does not support #{Rails.configuration.i18n.default_locale}. Defaulting to English (en)."
10
+ require 'inflections/en'
11
+ end
8
12
  end
9
13
  end
10
14
  end
@@ -1,8 +1,8 @@
1
1
  module Inflections
2
2
  MAJOR = 3
3
3
  MINOR = 2
4
- PATCH = 7
5
- PRE = 20120803
4
+ PATCH = 8
5
+ PRE = nil
6
6
 
7
7
  VERSION = [MAJOR, MINOR, PATCH, PRE].compact.join '.'
8
8
  end
@@ -0,0 +1,70 @@
1
+ require 'test_helper'
2
+ require 'inflections/en'
3
+
4
+ class TestEnglishInflections < MiniTest::Unit::TestCase
5
+ def test_regular_plurals
6
+ assert_equal 'dogs', 'dog'.pluralize
7
+ assert_equal 'dog', 'dogs'.singularize
8
+
9
+ assert_equal 'days', 'day'.pluralize
10
+ assert_equal 'day', 'days'.singularize
11
+
12
+ assert_equal 'tests', 'test'.pluralize
13
+ assert_equal 'test', 'tests'.singularize
14
+ end
15
+
16
+ def test_sibilant_sounds
17
+ assert_equal 'addresses', 'address'.pluralize
18
+ assert_equal 'address', 'addresses'.singularize
19
+
20
+ assert_equal 'phases', 'phase'.pluralize
21
+
22
+ assert_equal 'buzzes', 'buzz'.pluralize
23
+ assert_equal 'buzz', 'buzzes'.singularize
24
+
25
+ assert_equal 'boxes', 'box'.pluralize
26
+ assert_equal 'box', 'boxes'.singularize
27
+
28
+ assert_equal 'benches', 'bench'.pluralize
29
+ assert_equal 'bench', 'benches'.singularize
30
+
31
+ assert_equal 'dishes', 'dish'.pluralize
32
+ assert_equal 'dish', 'dishes'.singularize
33
+ end
34
+
35
+ def test_oes_rule
36
+ assert_equal 'heroes', 'hero'.pluralize
37
+ assert_equal 'hero', 'heroes'.singularize
38
+
39
+ assert_equal 'igloos', 'igloo'.pluralize
40
+ assert_equal 'igloo', 'igloos'.singularize
41
+ end
42
+
43
+ def test_ies_rule
44
+ assert_equal 'berries', 'berry'.pluralize
45
+ assert_equal 'berry', 'berries'.singularize
46
+
47
+ assert_equal 'days', 'day'.pluralize
48
+ assert_equal 'day', 'days'.singularize
49
+ end
50
+
51
+ def test_irregulars
52
+ assert_equal 'children', 'child'.pluralize
53
+ assert_equal 'child', 'children'.singularize
54
+
55
+ assert_equal 'people', 'person'.pluralize
56
+ assert_equal 'person', 'people'.singularize
57
+
58
+ assert_equal 'selves', 'self'.pluralize
59
+ assert_equal 'self', 'selves'.singularize
60
+ end
61
+
62
+ def test_uncountables
63
+ assert_equal 'series', 'series'.pluralize
64
+ assert_equal 'series', 'series'.singularize
65
+ end
66
+
67
+ def test_stupid_inflections_removed
68
+ assert_equal 'cows', 'cow'.pluralize
69
+ end
70
+ end
data/test/en_test.rb CHANGED
@@ -18,10 +18,6 @@ class TestEnglishInflections < MiniTest::Unit::TestCase
18
18
  assert_equal 'address', 'addresses'.singularize
19
19
 
20
20
  assert_equal 'phases', 'phase'.pluralize
21
- # Can't assume whether words that end with 'es' remove the 'es' or just 's'
22
- # So I went with the case that seemed more reasonable given sibilant sounds
23
- #
24
- # assert_equal 'phase', 'phases'.singularize
25
21
 
26
22
  assert_equal 'buzzes', 'buzz'.pluralize
27
23
  assert_equal 'buzz', 'buzzes'.singularize
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: 3.2.7.20120803
4
+ version: 3.2.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-03 00:00:00.000000000 Z
12
+ date: 2012-09-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -76,10 +76,12 @@ files:
76
76
  - Rakefile
77
77
  - inflections.gemspec
78
78
  - lib/inflections.rb
79
+ - lib/inflections/en-GB.rb
79
80
  - lib/inflections/en.rb
80
81
  - lib/inflections/es.rb
81
82
  - lib/inflections/railtie.rb
82
83
  - lib/inflections/version.rb
84
+ - test/en-GB_test.rb
83
85
  - test/en_test.rb
84
86
  - test/es_test.rb
85
87
  - test/test_helper.rb
@@ -108,5 +110,6 @@ signing_key:
108
110
  specification_version: 3
109
111
  summary: Sane inflection rules for ActiveSupport.
110
112
  test_files:
113
+ - test/en-GB_test.rb
111
114
  - test/en_test.rb
112
115
  - test/es_test.rb