Class: ROM::SQL::Header

Inherits:
Object
  • Object
show all
Defined in:
lib/rom/sql/header.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(columns, table) ⇒ Header

Returns a new instance of Header.



11
12
13
14
# File 'lib/rom/sql/header.rb', line 11

def initialize(columns, table)
  super
  @table = table
end

Instance Attribute Details

#tableObject (readonly)

Returns the value of attribute table.



9
10
11
# File 'lib/rom/sql/header.rb', line 9

def table
  @table
end

Instance Method Details

#prefix(col_prefix) ⇒ Object



48
49
50
# File 'lib/rom/sql/header.rb', line 48

def prefix(col_prefix)
  rename(Hash[map { |col| [col, :"#{col_prefix}_#{col}"] }])
end

#project(*names) ⇒ Object



28
29
30
# File 'lib/rom/sql/header.rb', line 28

def project(*names)
  find_all { |col| names.include?(col) }
end

#qualifiedObject



32
33
34
# File 'lib/rom/sql/header.rb', line 32

def qualified
  map { |col| :"#{table}__#{col}" }
end

#rename(options) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/rom/sql/header.rb', line 36

def rename(options)
  map { |col|
    new_name = options[col]

    if new_name
      :"#{col}___#{new_name}"
    else
      col
    end
  }
end

#to_aryObject Also known as: to_a



16
17
18
# File 'lib/rom/sql/header.rb', line 16

def to_ary
  columns
end

#to_hObject



21
22
23
24
25
26
# File 'lib/rom/sql/header.rb', line 21

def to_h
  columns.each_with_object({}) { |col, h|
    left, right = col.to_s.split('___')
    h[left.to_sym] = (right || left).to_sym
  }
end