Module: StiTypeCustomizable::Definition

Defined in:
lib/sti_type_customizable/definition.rb

Instance Method Summary collapse

Instance Method Details

#initialize(default_type_value) ⇒ Object



5
6
7
8
9
10
# File 'lib/sti_type_customizable/definition.rb', line 5

def initialize(default_type_value)
  @definitions = load_definitions
  @inverted_definitions = @definitions.invert
  @module_name = self.class.name.deconstantize
  @default_type_value = default_type_value
end

#resolve_class(type_value) ⇒ Object



12
13
14
15
16
17
# File 'lib/sti_type_customizable/definition.rb', line 12

def resolve_class(type_value)
  key = @inverted_definitions.dig(type_value)
  return nil if key.blank?

  "#{@module_name}::#{key.to_s.classify}".safe_constantize
end

#resolve_type_value(klass) ⇒ Object



19
20
21
# File 'lib/sti_type_customizable/definition.rb', line 19

def resolve_type_value(klass)
  @definitions.dig(klass.name.demodulize.underscore.to_sym) || @default_type_value
end