Module: AssOle::Snippets::Shared::ValueTable::Columns

Defined in:
lib/ass_ole/snippets/shared/value_table.rb

Class Method Summary collapse

Class Method Details

.make(vtable, columns, columns_with_types, ole_connector) ⇒ Object



70
71
72
73
74
75
76
77
78
# File 'lib/ass_ole/snippets/shared/value_table.rb', line 70

def self.make(vtable, columns, columns_with_types, ole_connector)
  to_columns_with_types(columns).merge(columns_with_types)
    .each do |col, types|
    type_desc_ = type_desc(types, ole_connector)
    vtable.Columns.Add(col.to_s, type_desc_) if type_desc_
    vtable.Columns.Add(col.to_s) unless type_desc_
  end
  vtable.Columns
end

.to_columns_with_types(columns) ⇒ Object



87
88
89
90
91
92
93
# File 'lib/ass_ole/snippets/shared/value_table.rb', line 87

def self.to_columns_with_types(columns)
  r = {}
  columns.each do |col|
    r[col.to_sym] = nil
  end
  r
end

.type_desc(types, ole_connector) ⇒ Object



80
81
82
83
84
85
# File 'lib/ass_ole/snippets/shared/value_table.rb', line 80

def self.type_desc(types, ole_connector)
  return unless types
  types_ = types.clone
  types_ = types_.split(',') if types.is_a? String
  ole_connector.newObject('TypeDescription', types_.join(','))
end