Class: EasyCols::ColumnSelector

Inherits:
Object
  • Object
show all
Defined in:
lib/easy_cols/column_selector.rb

Instance Method Summary collapse

Constructor Details

#initialize(headers) ⇒ ColumnSelector

Returns a new instance of ColumnSelector.



5
6
7
# File 'lib/easy_cols/column_selector.rb', line 5

def initialize(headers)
  @headers = headers
end

Instance Method Details

#select(selectors) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/easy_cols/column_selector.rb', line 9

def select(selectors)
  indices = []

  selectors.each do |selector|
    result = case selector
             when Integer then select_by_index(selector)
             when Range   then select_by_range(selector)
             when Array   then select_by_array(selector)
             when String  then select_by_name(selector)
             else
               raise SelectionError, "Invalid selector type: #{selector.class}"
             end
    indices.concat(result)
  end

  indices.uniq.sort
end