From: Intransition Date: 2010-07-06T02:09:00+09:00 Subject: Re: name correspondence On Jul 5, 6:25 am, Brian Candler wrote: > Thomas Sawyer wrote: > >     Library: foo-bar > >     Directory: lib/foo/bar > >     Namespace: Foo::Bar > > >     Library: foo_bar > >     Directory: lib/foo_bar > >     Namespace: FooBar > > > That being the case I think Ruby needs to include methods to make it > > easy to translate between these. In ActiveSupport these methods are > > String#pathize and String#methodize. I would think there would also be > > something like String#modulize. > > Perhaps you're thinking of camelize and underscore in > lib/active_support/inflector.rb Oh? My bad, I thought it had #pathize and #methodize too. >     # Examples: >     #   "active_record".camelize                # => "ActiveRecord" >     #   "active_record".camelize(:lower)        # => "activeRecord" >     #   "active_record/errors".camelize         # => > "ActiveRecord::Errors" >     #   "active_record/errors".camelize(:lower) # => > "activeRecord::Errors" > >     # Examples: >     #   "ActiveRecord".underscore         # => "active_record" >     #   "ActiveRecord::Errors".underscore # => active_record/errors > > Each of these methods is only a few lines. I've seen them copy-pasted in > several projects... In Facets those are #camelcase and #snakecase, but it also has the other methods -- No problem getting access to such methods. Just think Ruby needs to support something along these lines out the box if the correspondence should be considered a standard.