Class: Ddr::Index::CSVQueryResult
- Inherits:
-
AbstractQueryResult
- Object
- AbstractQueryResult
- Ddr::Index::CSVQueryResult
- Defined in:
- lib/ddr/index/csv_query_result.rb
Constant Summary collapse
- MAX_ROWS =
10**8
- COL_SEP =
CSV::DEFAULT_OPTIONS[:col_sep].freeze
- QUOTE_CHAR =
CSV::DEFAULT_OPTIONS[:quote_char].freeze
- SOLR_CSV_OPTS =
{ "csv.header" => "false", "csv.mv.separator" => "|", "wt" => "csv", }.freeze
- CSV_OPTS =
{ return_headers: true, write_headers: true, }.freeze
Instance Attribute Summary collapse
-
#csv_opts ⇒ Object
readonly
Returns the value of attribute csv_opts.
-
#solr_csv_opts ⇒ Object
readonly
Returns the value of attribute solr_csv_opts.
Attributes inherited from AbstractQueryResult
Instance Method Summary collapse
- #csv ⇒ Object
- #each ⇒ Object
-
#initialize(query, **opts) ⇒ CSVQueryResult
constructor
A new instance of CSVQueryResult.
- #to_s ⇒ Object
Methods inherited from AbstractQueryResult
Constructor Details
#initialize(query, **opts) ⇒ CSVQueryResult
Returns a new instance of CSVQueryResult.
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/ddr/index/csv_query_result.rb', line 24 def initialize(query, **opts) super(query) @solr_csv_opts = SOLR_CSV_OPTS.dup @solr_csv_opts[:rows] ||= MAX_ROWS @csv_opts = CSV_OPTS.dup @csv_opts[:headers] = query.fields.map(&:label) # Set column separator and quote character consistently @csv_opts[:col_sep] = @solr_csv_opts["csv.separator"] = opts.fetch(:col_sep, COL_SEP) @csv_opts[:quote_char] = @solr_csv_opts["csv.encapsulator"] = opts.fetch(:quote_char, QUOTE_CHAR) end |
Instance Attribute Details
#csv_opts ⇒ Object (readonly)
Returns the value of attribute csv_opts.
22 23 24 |
# File 'lib/ddr/index/csv_query_result.rb', line 22 def csv_opts @csv_opts end |
#solr_csv_opts ⇒ Object (readonly)
Returns the value of attribute solr_csv_opts.
22 23 24 |
# File 'lib/ddr/index/csv_query_result.rb', line 22 def solr_csv_opts @solr_csv_opts end |
Instance Method Details
#csv ⇒ Object
38 39 40 |
# File 'lib/ddr/index/csv_query_result.rb', line 38 def csv CSV.new(data, csv_opts) end |
#each ⇒ Object
42 43 44 |
# File 'lib/ddr/index/csv_query_result.rb', line 42 def each csv.each end |
#to_s ⇒ Object
46 47 48 |
# File 'lib/ddr/index/csv_query_result.rb', line 46 def to_s csv.string end |