Class: Daifuku::StrdefGenerator::LogTable

Inherits:
Object
  • Object
show all
Defined in:
lib/daifuku/strdef_generator.rb

Constant Summary collapse

PREDEFINED =
%w[id log_id event_category event_name]

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLogTable

Returns a new instance of LogTable.



66
67
68
# File 'lib/daifuku/strdef_generator.rb', line 66

def initialize
  @columns = {}
end

Class Method Details

.predefined_column?(name) ⇒ Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/daifuku/strdef_generator.rb', line 62

def self.predefined_column?(name)
  PREDEFINED.include?(name)
end

Instance Method Details

#[](name) ⇒ Object



86
87
88
# File 'lib/daifuku/strdef_generator.rb', line 86

def [](name)
  @columns[name]
end

#add_column(column, location = '-') ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
# File 'lib/daifuku/strdef_generator.rb', line 74

def add_column(column, location = '-')
  if prev = @columns[column.name]
    if prev.common?
      raise "common column is being overwritten: #{column.name}: location=#{location}"
    end
    unless column.type.name == prev.type.name
      raise "column type mismatch: name=#{column.name}, curr=#{column.type.name}, prev=#{prev.type.name}"
    end
  end
  @columns[column.name] = LogColumn.new(column.name, column.type)
end

#add_common_column(column) ⇒ Object



70
71
72
# File 'lib/daifuku/strdef_generator.rb', line 70

def add_common_column(column)
  @columns[column.name] = LogColumn.new(column.name, column.type, true)
end

#each_column(&block) ⇒ Object



90
91
92
# File 'lib/daifuku/strdef_generator.rb', line 90

def each_column(&block)
  @columns.each_value(&block)
end