Class: Arrow::TableSaver

Inherits:
Object
  • Object
show all
Defined in:
lib/arrow/table-saver.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(table, output, options = {}) ⇒ TableSaver

Returns a new instance of TableSaver.



26
27
28
29
30
31
32
# File 'lib/arrow/table-saver.rb', line 26

def initialize(table, output, options={})
  @table = table
  output = output.to_path if output.respond_to?(:to_path)
  @output = output
  @options = options
  fill_options
end

Class Method Details

.save(table, output, options = {}) ⇒ Object



21
22
23
# File 'lib/arrow/table-saver.rb', line 21

def save(table, output, options={})
  new(table, output, options).save
end

Instance Method Details

#saveObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/arrow/table-saver.rb', line 34

def save
  format = @options[:format]
  custom_save_method = "save_as_#{format}"
  unless respond_to?(custom_save_method, true)
    available_formats = []
    (methods(true) | private_methods(true)).each do |name|
      match_data = /\Asave_as_/.match(name.to_s)
      if match_data
        available_formats << match_data.post_match
      end
    end
    message = "Arrow::Table save format must be one of ["
    message << available_formats.join(", ")
    message << "]: #{format.inspect}"
    raise ArgumentError, message
  end
  if method(custom_save_method).arity.zero?
    __send__(custom_save_method)
  else
    # For backward compatibility.
    __send__(custom_save_method, @output)
  end
end