module Hamlit::ObjectRef

Public Class Methods

parse(args) click to toggle source
# File lib/hamlit/object_ref.rb, line 4
def parse(args)
  object, prefix = args
  return {} unless object

  suffix = underscore(object.class)
  {
    'class' => [prefix, suffix].compact.join('_'),
    'id'    => [prefix, suffix, object.id || 'new'].compact.join('_'),
  }
end

Private Class Methods

underscore(camel_cased_word) click to toggle source

Haml::Buffer.underscore

# File lib/hamlit/object_ref.rb, line 18
def underscore(camel_cased_word)
  word = camel_cased_word.to_s.dup
  word.gsub!(/::/, '_')
  word.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
  word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
  word.tr!('-', '_')
  word.downcase!
  word
end