Sha256: 19f72724408963462b3eff840e3cde093cd4a84440f57cd96f3ec3f55993287c

Contents?: true

Size: 640 Bytes

Versions: 3

Compression:

Stored size: 640 Bytes

Contents

class String
  
  # reloads controller classes on each request if
  # :allow_reloading is set to true in the config
  # file or command line options.
  def import
    if Merb::Server.allow_reloading
      Object.send(:remove_const, self.camel_case.intern) rescue nil
      load(self.snake_case  + '.rb')
    else  
      require(self.snake_case)
    end
  end
  
  # "FooBar".snake_case #=> "foo_bar"
  def snake_case
    gsub(/\B[A-Z]/, '_\&').downcase
  end

  # "foo_bar".camel_case #=> "FooBar"
  def camel_case
    split('_').map{|e| e.capitalize}.join
  end

  # Concatenates a path
  def /(o)
    File.join(self, o.to_s)
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
merb-0.0.9 lib/merb/core_ext/merb_string.rb
merb-0.1.0 lib/merb/core_ext/merb_string.rb
merb-0.2.0 lib/merb/core_ext/merb_string.rb