aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/inflector_test.rb
Commit message (Collapse)AuthorAgeFilesLines
* Fix ActiveSupport tests that depend on run orderFrancesco Rodriguez2012-08-231-2/+2
|
* Make ActiveSupport::Inflector locale aware and multilingualDavid Celis2012-07-301-1/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Inflector is currently not very supportive of internationalized websites. If a user wants to singularize and/or pluralize words based on any locale other than English, they must define each case in locale files. Rather than create large locale files with mappings between singular and plural words, why not allow the Inflector to accept a locale? This patch makes ActiveSupport::Inflector locale aware and uses `:en`` unless otherwise specified. Users will still be provided a list of English (:en) inflections, but they may additionally define inflection rules for other locales. Each list is kept separately and permanently. There is no reason to limit users to one list of inflections: ActiveSupport::Inflector.inflections(:es) do |inflect| inflect.plural(/$/, 's') inflect.plural(/([^aeéiou])$/i, '\1es') inflect.plural(/([aeiou]s)$/i, '\1') inflect.plural(/z$/i, 'ces') inflect.plural(/á([sn])$/i, 'a\1es') inflect.plural(/é([sn])$/i, 'e\1es') inflect.plural(/í([sn])$/i, 'i\1es') inflect.plural(/ó([sn])$/i, 'o\1es') inflect.plural(/ú([sn])$/i, 'u\1es') inflect.singular(/s$/, '') inflect.singular(/es$/, '') inflect.irregular('el', 'los') end 'ley'.pluralize(:es) # => "leyes" 'ley'.pluralize(:en) # => "leys" 'avión'.pluralize(:es) # => "aviones" 'avión'.pluralize(:en) # => "avións" A multilingual Inflector should be of use to anybody that is tasked with internationalizing their Rails application. Signed-off-by: David Celis <david@davidcelis.com>
* Adds missing inflector tests to ensure idempotencyGodfrey Chan2012-06-211-0/+10
| | | | | | | | | | | | | This is a follow up to #4719. It appears that singularize and pluralize are supposed to be idempotent - i.e. when you call singularize or pluralize multiple times on the same string, you should get the same result. (At least for the "officially supported" cases that the stock inflector is designed to handle.) #4719 added the missing tests for regular cases, and this commit added the missing tests for the irregularities. While I'm at that, I also synced up the irregularity test cases with the current set of irregularity cases that we ship out-of-the-box.
* decouples the implementation of the inflector from its test suiteXavier Noria2012-02-241-73/+66
| | | | | | | | Trying alternative implementations of the inflections is hard because the suite is coupled with the current one, setting ivars by hand etc. This commit relies on initialize_dup, as long as you maintain that one you can tweak the implementation.
* Merge pull request #4719 from markmcspadden/singularize_words_that_end_in_ssXavier Noria2012-02-101-0/+8
|\ | | | | Add Inflection test (and fixes) to ensure singularizing a singular actually give you the correct singular in more cases
| * Add Inflection test (and fixes) to ensure singularizing a singular actually ↵Mark McSpadden2012-01-271-0/+8
| | | | | | | | give you the correct singular in more cases
* | Add ActiveSupport::Inflector.ordinal and Integer#ordinalTim Gildea2012-02-041-0/+6
|/
* use AS::TestCase as the base classAaron Patterson2012-01-051-1/+1
|
* defines Module#qualified_const_(defined?|get|set) and String#deconstantizeXavier Noria2011-10-291-0/+12
| | | | | | | | | | This commit also implements a faster version of #demodulize I was unable to isolate with git add --patch. Not a big fan of the name #deconstantize. It complements #demodulize getting rid of the rightmost constant, hence the name, but it is unrelated to the well-known #constantize. So unsure. Could not come with anything better, please feel free to rename.
* let demodulize do less work, and add testsXavier Noria2011-10-291-0/+2
| | | | This is also faster on 1.9.
* Added ActiveSupport::Inflector.safe_constantize and String#safe_constantize; ↵Ryan Oblak2011-09-231-17/+10
| | | | refactored common constantize tests into ConstantizeTestCases
* Revert removing gsub and sub from safe buffer.José Valim2011-09-081-9/+13
|
* remove support of symbols on classify and camelizeDamien Mathieu2011-09-081-13/+9
|
* Add acronym support to Inflector; Issue #1366David Lee2011-06-111-0/+82
|
* Test retain delimiter in parameterization inflectorDavid Lee2011-06-111-2/+2
|
* proper reset all inflector scopesStefan Huber2011-04-251-12/+30
|
* Remove warnings about redefined test methodsSam Elliott2011-03-011-4/+4
| | | | | | [#6490 state:committed] Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
* handle double pluralization for irregular pluralsDan Pickett2011-02-161-0/+7
| | | | | | [#6363] Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
* Ensure that uncountable are removed after testPiotr Sarnacki2010-12-221-5/+6
|
* Added a word boundary to uncountable inflection regex for #singularize so ↵John Paul Ashenfelter2010-12-221-0/+27
| | | | short inflections like ors do not affect larger words like sponsors [#6093 state:resolved]
* refactor evals and adds some __FILE__ and __LINE__Santiago Pastorino2010-05-201-2/+2
| | | | Signed-off-by: José Valim <jose.valim@gmail.com>
* Fix that irregular plural inflections should not be double-pluralized: ↵Prem Sichanugrist2009-08-091-0/+10
| | | | | | | | 'people'.pluralize should return 'people' not 'peoples'. [#1183 state:committed] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* ensure Inflector.camelize works with symbols [#2856 state:resolved]Yehuda Katz + Carl Lerche2009-07-011-0/+6
| | | Signed-off-by: Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>
* Fix dependencies revealed by testing in isolationJeremy Kemper2009-04-221-0/+2
|
* Make Inflector#parameterize correctly squeeze multi-character separators ↵Henrik N2009-03-101-0/+6
| | | | | | [#1489 state:resolved] Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Ruby 1.9 compat: rename deprecated assert_raises to assert_raise.Jeremy Kemper2009-03-081-4/+4
| | | | [#1617 state:resolved]
* Ruby 1.9 compat: no Unicode normalization support yetJeremy Kemper2008-11-261-0/+6
|
* Modified ActiveSupport::Inflector#parameterize with code from slugalizer ↵Adam Cigánek2008-09-231-0/+6
| | | | | | | | | (http://github.com/henrik/slugalizer) Handles trailing and leading slashes, and squashes repeated separators into a single character. Signed-off-by: Michael Koziarski <michael@koziarski.com> [#1034 state:committed]
* Added Inflector#parameterize for easy slug generation ("Donald E. ↵David Heinemeier Hansson2008-09-101-0/+6
| | | | Knuth".parameterize => "donald-e-knuth") #713 [Matt Darby]
* New inflectors will overwrite defaults [#337 state:resolved]Peter Wagenet2008-08-231-0/+7
| | | | Signed-off-by: Tarmo Tänav <tarmo@itech.ee>
* camelize(:lower) should always downcase first character. [#696 state:resolved]Amos King2008-08-221-0/+4
| | | | Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Add Inflection rules for String#humanize. [#535 state:resolved] [dcmanges]Pratik Naik2008-07-021-4/+25
| | | | Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Namespace Inflector, Dependencies, OrderedOptions, and TimeZone under ↵Joshua Peek2008-06-031-63/+63
| | | | ActiveSupport [#238 state:resolved]
* Ruby 1.9 compat: compatibility wrapper for new Module#const_defined? behaviorJeremy Kemper2008-05-011-8/+2
|
* require abstract_unit directly since test is in load pathJeremy Kemper2008-01-051-1/+1
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8563 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Ruby 1.9 compat, consistent load pathsJeremy Kemper2007-10-021-2/+8
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7719 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Extract InflectorTestCases so both inflector and string inflections tests ↵Jeremy Kemper2007-09-271-206/+2
| | | | | | can use them. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7655 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Fixed that pluralizing an empty string should return the same empty string, ↵David Heinemeier Hansson2007-09-221-0/+4
| | | | | | not "s" (closes #7720) [josh] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7569 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Added support for pluralization with a different starting letter than the ↵David Heinemeier Hansson2007-06-231-1/+3
| | | | | | singular version (cow/kine) (closes #4929) [norri_b/hasmanyjosh] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7092 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Inflections: MatrixTest -> MatrixTests instead of MatricesTest. Closes #8496.Jeremy Kemper2007-05-291-0/+2
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6886 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Full test coverage for Inflector. Closes #7228.Jeremy Kemper2007-01-281-33/+108
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6075 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Added test coverage for Inflector.inflections.clear. Closes #7179. [Rich ↵Rick Olson2007-01-231-0/+33
| | | | | | Collins]. Remove unused code from Duration#inspect. Closes #7180. [Rich Collins] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6022 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* A couple extra tests for #classify. Closes #7273. [Josh Susser]Rick Olson2007-01-231-1/+2
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6019 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* r4487@asus: jeremy | 2006-04-29 12:21:39 -0700Jeremy Kemper2006-07-081-19/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check whether @flash is defined? for warnings-safety. r4488@asus: jeremy | 2006-04-29 12:23:15 -0700 Check whether @flash is defined? for warnings-safety. Obviates nil? check. r4489@asus: jeremy | 2006-04-29 12:45:18 -0700 Check whether @session is defined? for warnings-safety. r4490@asus: jeremy | 2006-04-29 12:50:41 -0700 Check whether @rendering_runtime is defined? for warnings-safety. r4491@asus: jeremy | 2006-04-29 12:55:01 -0700 Check whether @_cycles is defined? for warnings-safety. r4492@asus: jeremy | 2006-04-29 12:59:19 -0700 Check whether instance variables are defined? for warnings-safety. r4493@asus: jeremy | 2006-04-29 13:14:09 -0700 Add nil @template to PrototypeHelperTest to suppress unitialized instance variable warning. r4494@asus: jeremy | 2006-04-29 13:31:34 -0700 Check whether @auto_index defined? for warnings-safety. r4495@asus: jeremy | 2006-04-29 13:32:24 -0700 Wrap content_columns redefinitions with silence_warnings. r4496@asus: jeremy | 2006-04-29 13:35:28 -0700 Wrap more redefinitions with silence_warnings. r4829@asus: jeremy | 2006-07-08 10:59:20 -0700 abstract unit, fix warnings r4830@asus: jeremy | 2006-07-08 11:06:12 -0700 Use parens to silence warning. r4831@asus: jeremy | 2006-07-08 11:06:48 -0700 Use parens to silence warning. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4595 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Normalize classify's argument to a String so that it plays nice with ↵Marcel Molina2006-05-221-0/+6
| | | | | | Symbols. [Marcel Molina Jr.] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4359 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Added option to String#camelize to generate lower-cased camel case by ↵David Heinemeier Hansson2006-03-201-1/+14
| | | | | | passing in :lower, like "super_man".camelize(:lower) # => "superMan" [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3986 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Enhance Inflector.underscore to convert '-' into '_' (as the inverse of ↵Jamis Buck2006-03-151-0/+6
| | | | | | Inflector.dasherize) git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3877 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Added Hash#to_xml and Array#to_xml that makes it much easier to produce XML ↵David Heinemeier Hansson2006-03-081-0/+12
| | | | | | from basic structures [DHH] Moved Jim Weirich's wonderful Builder from Action Pack to Active Support (it's simply too useful to be stuck in AP) [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3812 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Fix constantize to handle names beginning with '::'. Closes #3803.Nicholas Seckar2006-02-111-0/+2
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3571 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* r3215@asus: jeremy | 2005-11-20 02:05:56 -0800Jeremy Kemper2005-11-211-1/+1
| | | | | | | Eliminate double-requires due to Ruby seeing different paths to the same file. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3127 5ecf4fe2-1ee6-0310-87b1-e25e094e27de