1
0
Fork 0
mirror of https://github.com/haml/haml.git synced 2022-11-09 12:33:31 -05:00
haml--haml/lib/hamlit/object_ref.rb
2015-11-18 11:04:50 -06:00

29 lines
691 B
Ruby

module Hamlit
module ObjectRef
class << self
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
# Haml::Buffer.underscore
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
end
end
end