Class: Sufia::GenericFileCSVService
- Inherits:
-
Object
- Object
- Sufia::GenericFileCSVService
- Defined in:
- app/services/sufia/generic_file_csv_service.rb
Overview
Generates CSV from a Generic_File
Instance Attribute Summary collapse
-
#generic_file ⇒ GenericFile
readonly
file that will be examined to generate the CSVs.
-
#multi_value_separator ⇒ String
readonly
separator for terms that have more than one value.
-
#terms ⇒ Array
readonly
list of terms that will be output in CSV form.
Instance Method Summary collapse
-
#csv ⇒ Object
provide csv version of the GenericFile.
-
#csv_header ⇒ Object
provide csv header line for a GenericFile.
-
#initialize(file, terms = nil, multi_value_separator = '|') ⇒ GenericFileCSVService
constructor
A new instance of GenericFileCSVService.
Constructor Details
#initialize(file, terms = nil, multi_value_separator = '|') ⇒ GenericFileCSVService
16 17 18 19 20 21 |
# File 'app/services/sufia/generic_file_csv_service.rb', line 16 def initialize(file, terms = nil, multi_value_separator = '|') @generic_file = file @terms = terms @terms ||= [:id, :title, :depositor, :creator, :visibility, :resource_type, :rights, :file_format] @multi_value_separator = multi_value_separator end |
Instance Attribute Details
#generic_file ⇒ GenericFile (readonly)
file that will be examined to generate the CSVs
8 9 10 |
# File 'app/services/sufia/generic_file_csv_service.rb', line 8 def generic_file @generic_file end |
#multi_value_separator ⇒ String (readonly)
separator for terms that have more than one value
8 9 10 |
# File 'app/services/sufia/generic_file_csv_service.rb', line 8 def multi_value_separator @multi_value_separator end |
#terms ⇒ Array (readonly)
list of terms that will be output in CSV form
8 9 10 |
# File 'app/services/sufia/generic_file_csv_service.rb', line 8 def terms @terms end |
Instance Method Details
#csv ⇒ Object
provide csv version of the GenericFile
24 25 26 27 28 29 30 31 32 |
# File 'app/services/sufia/generic_file_csv_service.rb', line 24 def csv ::CSV.generate do |csv| csv << terms.map do |term| values = generic_file.send(term) values = Array(values) # make sure we have an array values.join(multi_value_separator) end end end |
#csv_header ⇒ Object
provide csv header line for a GenericFile
35 36 37 38 39 |
# File 'app/services/sufia/generic_file_csv_service.rb', line 35 def csv_header ::CSV.generate do |csv| csv << terms end end |