Class: Avm::Entries::Base::UriComponentsEntriesValues::ComponentFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/avm/entries/base/uri_components_entries_values/component_factory.rb

Instance Method Summary collapse

Instance Method Details

#component_classObject



15
16
17
# File 'lib/avm/entries/base/uri_components_entries_values/component_factory.rb', line 15

def component_class
  specific_class || generic_class
end

#generic_classObject



19
20
21
# File 'lib/avm/entries/base/uri_components_entries_values/component_factory.rb', line 19

def generic_class
  parent_class.const_get('GenericComponent')
end

#parent_classObject



23
24
25
# File 'lib/avm/entries/base/uri_components_entries_values/component_factory.rb', line 23

def parent_class
  ::Avm::Entries::Base::UriComponentsEntriesValues
end

#resultObject



11
12
13
# File 'lib/avm/entries/base/uri_components_entries_values/component_factory.rb', line 11

def result
  component_class.new(owner, component)
end

#specific_classObject



27
28
29
30
31
# File 'lib/avm/entries/base/uri_components_entries_values/component_factory.rb', line 27

def specific_class
  return nil unless parent_class.const_defined?(specific_class_basename)

  parent_class.const_get(specific_class_basename)
end

#specific_class_basenameObject



33
34
35
# File 'lib/avm/entries/base/uri_components_entries_values/component_factory.rb', line 33

def specific_class_basename
  [component, 'component'].join('_').camelize
end