Module: Spider::Inflector
- Defined in:
- lib/spiderfw/utils/inflector.rb
Class Method Summary collapse
-
.camelize(lower_case_and_underscored_word, first_letter_in_uppercase = true) ⇒ Object
– From ActiveSupport.
-
.underscore(camel_cased_word) ⇒ Object
– From ActiveSupport.
- .underscore_to_upcasefirst(str) ⇒ Object
- .upcasefirst(str) ⇒ Object
Class Method Details
.camelize(lower_case_and_underscored_word, first_letter_in_uppercase = true) ⇒ Object
– From ActiveSupport
7 8 9 10 11 12 13 |
# File 'lib/spiderfw/utils/inflector.rb', line 7 def self.camelize(lower_case_and_underscored_word, first_letter_in_uppercase = true) if first_letter_in_uppercase lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::" + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase } else lower_case_and_underscored_word.first + camelize(lower_case_and_underscored_word)[1..-1] end end |
.underscore(camel_cased_word) ⇒ Object
– From ActiveSupport
17 18 19 20 21 22 23 |
# File 'lib/spiderfw/utils/inflector.rb', line 17 def self.underscore(camel_cased_word) camel_cased_word.to_s.gsub(/::/, '/'). gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). gsub(/([a-z\d])([A-Z])/,'\1_\2'). tr("-", "_"). downcase end |
.underscore_to_upcasefirst(str) ⇒ Object
25 26 27 |
# File 'lib/spiderfw/utils/inflector.rb', line 25 def self.underscore_to_upcasefirst(str) upcasefirst(str.gsub(/_+/, ' ')) end |
.upcasefirst(str) ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/spiderfw/utils/inflector.rb', line 29 def self.upcasefirst(str) # FIXME: move to language specific! no_upcase = ['di', 'da', 'a'] res = str.split(' ').map do | p | l = p.downcase l.gsub(/^[a-z]/){ |a| a.upcase } unless no_upcase.include?(l) end res.join(' ') end |