Module: Hamlit::BooleanAttributes

Defined in:
lib/hamlit/boolean_attributes.rb,
lib/hamlit/boolean_attributes/version.rb

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.add(attribute) ⇒ Object

Changing Hamlit::AttributeBuilder::BOOLEAN_ATTRIBUTES to a instance/class method will cause performance regression because it requires rb_funcall. So directly modifying constant.



9
10
11
12
13
14
15
16
# File 'lib/hamlit/boolean_attributes.rb', line 9

def self.add(attribute)
  original = Hamlit::AttributeBuilder::BOOLEAN_ATTRIBUTES.dup
  original << attribute.to_s
  Hamlit::AttributeBuilder.class_eval do
    remove_const('BOOLEAN_ATTRIBUTES')
    const_set('BOOLEAN_ATTRIBUTES', original.uniq.freeze)
  end
end