Class: PgObjects::ParsedObjectFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/pg_objects/parsed_object_factory.rb

Overview

Returns an object of the respective class based on the provided parsed query

Constant Summary collapse

DISPATCH =
{
  composite_type_stmt: PgObjects::ParsedObject::Type,
  create_conversion_stmt: PgObjects::ParsedObject::Conversion,
  create_domain_stmt: PgObjects::ParsedObject::Domain,
  create_enum_stmt: PgObjects::ParsedObject::EnumType,
  create_event_trig_stmt: PgObjects::ParsedObject::EventTrigger,
  create_extension_stmt: PgObjects::ParsedObject::Extension,
  create_function_stmt: PgObjects::ParsedObject::Function,
  create_op_class_stmt: PgObjects::ParsedObject::OperatorClass,
  create_policy_stmt: PgObjects::ParsedObject::Policy,
  create_range_stmt: PgObjects::ParsedObject::RangeType,
  create_seq_stmt: PgObjects::ParsedObject::Sequence,
  create_stmt: PgObjects::ParsedObject::Table,
  create_trig_stmt: PgObjects::ParsedObject::Trigger,
  index_stmt: PgObjects::ParsedObject::Index,
  rule_stmt: PgObjects::ParsedObject::Rule,
  view_stmt: PgObjects::ParsedObject::View
}.freeze
DEFINE_STMT_DISPATCH =
{
  OBJECT_AGGREGATE: PgObjects::ParsedObject::Aggregate,
  OBJECT_OPERATOR: PgObjects::ParsedObject::Operator,
  OBJECT_TSPARSER: PgObjects::ParsedObject::TextSearchParser,
  OBJECT_TSTEMPLATE: PgObjects::ParsedObject::TextSearchTemplate,
  OBJECT_TYPE: PgObjects::ParsedObject::BaseType
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(input_data) ⇒ ParsedObjectFactory

Returns a new instance of ParsedObjectFactory.



38
39
40
41
# File 'lib/pg_objects/parsed_object_factory.rb', line 38

def initialize(input_data)
  @input_data = input_data
  @stmt = input_data.tree.stmts[0].stmt
end

Class Method Details

.create_object(input_data) ⇒ Object



34
35
36
# File 'lib/pg_objects/parsed_object_factory.rb', line 34

def self.create_object(input_data)
  new(input_data).create_object
end

Instance Method Details

#create_objectObject



43
44
45
# File 'lib/pg_objects/parsed_object_factory.rb', line 43

def create_object
  determine_class.new(stmt)
end