class Ddr::Index::CSVQueryResult
Constants
- CSV_MV_SEPARATOR
- DEFAULT_CSV_OPTIONS
- MAX_ROWS
Attributes
csv_opts[R]
Public Class Methods
new(query, csv_opts: {})
click to toggle source
See Ruby docs on CSV::new for details on available keys and values for the optional `csv_options' Hash parameter.
N.B. If you want to add a converter and retain the default converters, append DEFAULT_CSV_OPTIONS to your Array of converters.
Calls superclass method
Ddr::Index::AbstractQueryResult::new
# File lib/ddr/index/csv_query_result.rb, line 33 def initialize(query, csv_opts: {}) super(query) @csv_opts = DEFAULT_CSV_OPTIONS.merge(csv_opts) end
Public Instance Methods
[](index_or_header)
click to toggle source
# File lib/ddr/index/csv_query_result.rb, line 46 def [](index_or_header) table.by_col_or_row![index_or_header] end
data()
click to toggle source
# File lib/ddr/index/csv_query_result.rb, line 78 def data if solr_csv_header? solr_data else [ query_field_headings.join(","), solr_data ].join("\n") end end
delete_empty_columns!()
click to toggle source
# File lib/ddr/index/csv_query_result.rb, line 38 def delete_empty_columns! table.by_col!.delete_if { |c, vals| vals.all?(&:nil?) } end
each(&block)
click to toggle source
# File lib/ddr/index/csv_query_result.rb, line 42 def each(&block) table.by_row!.each(&block) end
query_field_headings()
click to toggle source
# File lib/ddr/index/csv_query_result.rb, line 62 def query_field_headings query.fields.map { |f| f.respond_to?(:heading) ? f.heading : f.to_s } end
solr_csv_header?()
click to toggle source
# File lib/ddr/index/csv_query_result.rb, line 66 def solr_csv_header? query.fields.empty? end
solr_csv_opts()
click to toggle source
# File lib/ddr/index/csv_query_result.rb, line 54 def solr_csv_opts { "csv.mv.separator" => CSV_MV_SEPARATOR, "csv.header" => solr_csv_header?, "rows" => solr_csv_rows, "wt" => "csv", } end
solr_csv_params()
click to toggle source
# File lib/ddr/index/csv_query_result.rb, line 74 def solr_csv_params params.merge(solr_csv_opts) end
solr_csv_rows()
click to toggle source
# File lib/ddr/index/csv_query_result.rb, line 70 def solr_csv_rows query.rows || MAX_ROWS end
solr_data()
click to toggle source
# File lib/ddr/index/csv_query_result.rb, line 86 def solr_data Connection.get("select", params: solr_csv_params) end
table()
click to toggle source
# File lib/ddr/index/csv_query_result.rb, line 50 def table @table ||= CSV.parse(data, csv_opts) end