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
- MV_SEP =
";"
Instance Attribute Summary collapse
-
#mv_sep ⇒ Object
readonly
Returns the value of attribute mv_sep.
Attributes inherited from AbstractQueryResult
Instance Method Summary collapse
- #csv ⇒ Object
- #csv_headers ⇒ Object
- #csv_opts ⇒ Object
- #data ⇒ Object
- #headers ⇒ Object
-
#initialize(query, mv_sep: MV_SEP) ⇒ CSVQueryResult
constructor
A new instance of CSVQueryResult.
- #rows ⇒ Object
- #solr_csv_header ⇒ Object
- #solr_csv_opts ⇒ Object
- #solr_csv_params ⇒ Object
- #to_s ⇒ Object
Methods inherited from AbstractQueryResult
Constructor Details
#initialize(query, mv_sep: MV_SEP) ⇒ CSVQueryResult
Returns a new instance of CSVQueryResult.
13 14 15 16 |
# File 'lib/ddr/index/csv_query_result.rb', line 13 def initialize(query, mv_sep: MV_SEP) super(query) @mv_sep = mv_sep end |
Instance Attribute Details
#mv_sep ⇒ Object (readonly)
Returns the value of attribute mv_sep.
9 10 11 |
# File 'lib/ddr/index/csv_query_result.rb', line 9 def mv_sep @mv_sep end |
Instance Method Details
#csv ⇒ Object
18 19 20 |
# File 'lib/ddr/index/csv_query_result.rb', line 18 def csv CSV.new(data, csv_opts.to_h) end |
#csv_headers ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/ddr/index/csv_query_result.rb', line 46 def csv_headers if headers.empty? :first_row else headers end end |
#csv_opts ⇒ Object
30 31 32 |
# File 'lib/ddr/index/csv_query_result.rb', line 30 def csv_opts @csv_opts ||= CSVOptions.new(headers: csv_headers) end |
#data ⇒ Object
62 63 64 65 |
# File 'lib/ddr/index/csv_query_result.rb', line 62 def data raw = conn.get("select", params: solr_csv_params) raw.gsub(/\\#{mv_sep}/, mv_sep) end |
#headers ⇒ Object
42 43 44 |
# File 'lib/ddr/index/csv_query_result.rb', line 42 def headers @headers ||= query.fields.map(&:heading) end |
#rows ⇒ Object
26 27 28 |
# File 'lib/ddr/index/csv_query_result.rb', line 26 def rows query.rows || MAX_ROWS end |
#solr_csv_header ⇒ Object
54 55 56 |
# File 'lib/ddr/index/csv_query_result.rb', line 54 def solr_csv_header csv_headers == :first_row end |
#solr_csv_opts ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/ddr/index/csv_query_result.rb', line 34 def solr_csv_opts @solr_csv_opts ||= SolrCSVOptions.new(col_sep: csv_opts.col_sep, quote_char: csv_opts.quote_char, header: solr_csv_header, mv_sep: mv_sep, rows: rows) end |
#solr_csv_params ⇒ Object
58 59 60 |
# File 'lib/ddr/index/csv_query_result.rb', line 58 def solr_csv_params params.merge solr_csv_opts.params end |
#to_s ⇒ Object
22 23 24 |
# File 'lib/ddr/index/csv_query_result.rb', line 22 def to_s read.to_csv end |