Name conversion: search terms?

I'm doing some code generation and need to convert from CamelCase to
whatever_this_is_called. Wikipedia has a page for CamelCase but not
underscore separated words.

I'm thinking that someone must have done this already, and got the
edge cases sorted out, so rather than coming up with a wheel with an
iron tyre I'd search... for what? Is there a single correct term
for how we name methods in Ruby?

        Thank you,
        Hugh

Hugh Sasse a écrit :

I'm doing some code generation and need to convert from CamelCase to
whatever_this_is_called. Wikipedia has a page for CamelCase but not
underscore separated words.

I'm thinking that someone must have done this already, and got the
edge cases sorted out, so rather than coming up with a wheel with an
iron tyre I'd search... for what? Is there a single correct term
for how we name methods in Ruby?

        Thank you,
        Hugh

Hi,

Ruby on Rails have similar things. You should take a look at Active Support, and particulary the ActiveSupport::CoreExtensions::String::Inflections class. The "underscore" method can be used to transform a string from CamelCase to underscore_seprated_words.

···

--
Bruno Michel

class String

   # "FooBar".snake_case #=> "foo_bar"
   def snake_case
     return self unless self =~ %r/[A-Z]/
     self.reverse.scan(%r/[A-Z]+|[^A-Z]*[A-Z]+?/).reverse.map{|word| word.reverse.downcase}.join '_'
   end

   # "foo_bar".camel_case #=> "FooBar"
   def camel_case
     return self if self =~ %r/[A-Z]/ and self !~ %r/_/
     words = self.strip.split %r/\s*_+\s*/
     words.map!{|w| w.downcase.sub(%r/^./){|c| c.upcase}}
     words.join
   end

end

Cheers-
-- Ezra Zygmuntowicz-- Lead Rails Evangelist
-- ez@engineyard.com
-- Engine Yard, Serious Rails Hosting
-- (866) 518-YARD (9273)

···

On Nov 21, 2006, at 6:54 AM, Hugh Sasse wrote:

I'm doing some code generation and need to convert from CamelCase to
whatever_this_is_called. Wikipedia has a page for CamelCase but not
underscore separated words.

I'm thinking that someone must have done this already, and got the
edge cases sorted out, so rather than coming up with a wheel with an
iron tyre I'd search... for what? Is there a single correct term
for how we name methods in Ruby?

        Thank you,
        Hugh

Hi,

Ruby on Rails have similar things. You should take a look at Active Support,
and particulary the ActiveSupport::CoreExtensions::String::Inflections class.
The "underscore" method can be used to transform a string from CamelCase to
underscore_seprated_words.

Thank you. That's splendid.

--
Bruno Michel

        Hugh

···

On Wed, 22 Nov 2006, Bruno Michel wrote: