class Reading::Csv::Parse::ParseLine::ParseSeries

Public Instance Methods

call(name, _columns = nil) click to toggle source
# File lib/reading/csv/parse_attributes.rb, line 45
def call(name, _columns = nil)
  separated = name.split(config.fetch(:csv).fetch(:long_separator))
                  .map(&:strip)
                  .map(&:presence)
                  .compact
  separated.delete_at(0) # everything before the series/extra info.
  separated.map do |str|
    volume = str.match(config.fetch(:csv).fetch(:regex).fetch(:series_volume))
    prefix = "#{config.fetch(:csv).fetch(:series_prefix)} "
    if volume || str.start_with?(prefix)
      { name: str.delete_suffix(volume.to_s).delete_prefix(prefix) || default[:name],
        volume: volume&.captures&.first&.to_i                      || default[:volume] }
    end
  end
  .compact.presence || []
end
default() click to toggle source
# File lib/reading/csv/parse_attributes.rb, line 62
def default
  config.fetch(:item).fetch(:template).fetch(:series).first
end