Module: KindExtendable::InstanceMethods

Defined in:
lib/betty_resource/kind_extendable.rb

Instance Method Summary collapse

Instance Method Details

#extend_kind_methodsObject



9
10
11
12
13
# File 'lib/betty_resource/kind_extendable.rb', line 9

def extend_kind_methods
  unless (m = kind_module).nil?
    extend m
  end
end

#kind=(value) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/betty_resource/kind_extendable.rb', line 15

def kind=(value)
  if defined?(super)
    super
  else
    @kind = value
  end
  @kind_module = nil
  extend_kind_methods
end

#kind_moduleObject



25
26
27
28
29
30
31
32
# File 'lib/betty_resource/kind_extendable.rb', line 25

def kind_module
  @kind_module ||= begin
    if kind.is_a?(String) && !kind.empty?
      m = kind.gsub(/(?:^|_)(.)/) { Regexp.last_match[1].upcase }
      ActiveSupport::Inflector.constantize("#{self.class}::Types::#{m}")
    end
  end
end