Class: ChupaText::Decomposers::CSV
- Inherits:
-
ChupaText::Decomposer
- Object
- ChupaText::Decomposer
- ChupaText::Decomposers::CSV
- Includes:
- Loggable
- Defined in:
- lib/chupa-text/decomposers/csv.rb
Instance Method Summary collapse
Methods inherited from ChupaText::Decomposer
#initialize, registry, #target_score
Constructor Details
This class inherits a constructor from ChupaText::Decomposer
Instance Method Details
#decompose(data) {|text_data| ... } ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/chupa-text/decomposers/csv.rb', line 38 def decompose(data) text = +"" data.open do |input| begin csv = ::CSV.new(input, liberal_parsing: true) csv.each do |row| text << row.join("\t") text << "\n" end rescue ::CSV::MalformedCSVError => csv_error error do = "#{log_tag} Failed to parse CSV: " << "#{csv_error.class}: #{csv_error.}\n" << csv_error.backtrace.join("\n") end return end end text_data = TextData.new(text, :source_data => data) if data.need_screenshot? text_data.screenshot = create_screenshot(data, text) end yield(text_data) end |
#target?(data) ⇒ Boolean
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/chupa-text/decomposers/csv.rb', line 27 def target?(data) return true if data.mime_type == "text/csv" if data.text_plain? and (data["source-mime-types"] || []).include?("text/csv") return false end data.extension == "csv" end |