Module: Grokdown::Composing

Defined in:
lib/grokdown/composing.rb

Defined Under Namespace

Modules: InstanceMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



3
# File 'lib/grokdown/composing.rb', line 3

def self.extended(base) = base.include(InstanceMethods)

Instance Method Details

#can_compose?(object) ⇒ Boolean

Returns:

  • (Boolean)


5
# File 'lib/grokdown/composing.rb', line 5

def can_compose?(object) = public_instance_methods.include?(composition_method(object))

#composition_method(object) ⇒ Object



7
8
9
# File 'lib/grokdown/composing.rb', line 7

def composition_method(object)
  :"add_#{object.class.name.gsub(/#<.*>::/,"").gsub("::", "_").gsub(/([A-Z])(?=[A-Z][a-z])|([a-z\d])(?=[A-Z])/) { ($1 || $2) << "_" }.downcase}" if object.class.name
end