Class: ActiveSupport::Inflector::Inflections::Uncountables
- Inherits:
-
Object
- Object
- ActiveSupport::Inflector::Inflections::Uncountables
show all
- Includes:
- Enumerable
- Defined in:
- lib/active_support/inflector/inflections.rb
Overview
Instance Method Summary
collapse
Methods included from Enumerable
#as_json, #compact_blank, #exclude?, #excluding, #in_order_of, #including, #index_by, #index_with, #many?, #maximum, #minimum, #pick, #pluck, #sole
Constructor Details
Returns a new instance of Uncountables.
40
41
42
43
|
# File 'lib/active_support/inflector/inflections.rb', line 40
def initialize
@members = []
@pattern = nil
end
|
Instance Method Details
50
51
52
53
54
55
|
# File 'lib/active_support/inflector/inflections.rb', line 50
def <<(word)
word = word.downcase
@members << word
@pattern = nil
self
end
|
#add(words) ⇒ Object
61
62
63
64
65
66
|
# File 'lib/active_support/inflector/inflections.rb', line 61
def add(words)
words = words.flatten.map(&:downcase)
@members.concat(words)
@pattern = nil
self
end
|
#delete(entry) ⇒ Object
45
46
47
48
|
# File 'lib/active_support/inflector/inflections.rb', line 45
def delete(entry)
@members.delete(entry)
@pattern = nil
end
|
57
58
59
|
# File 'lib/active_support/inflector/inflections.rb', line 57
def flatten
@members.dup
end
|
#uncountable?(str) ⇒ Boolean
68
69
70
71
72
73
74
|
# File 'lib/active_support/inflector/inflections.rb', line 68
def uncountable?(str)
if @pattern.nil?
members_pattern = Regexp.union(@members.map { |w| /#{Regexp.escape(w)}/i })
@pattern = /\b#{members_pattern}\Z/i
end
@pattern.match?(str)
end
|