Class: Reading::Row::LengthSubattribute

Inherits:
Object
  • Object
show all
Defined in:
lib/reading/attribute/variants/length_subattribute.rb

Instance Method Summary collapse

Constructor Details

#initialize(bare_variant:, columns:, config:) ⇒ LengthSubattribute

Returns a new instance of LengthSubattribute.

Parameters:

  • bare_variant (String)

    the variant string before series / extra info.

  • columns (Array<String>)
  • config (Hash)


11
12
13
14
15
# File 'lib/reading/attribute/variants/length_subattribute.rb', line 11

def initialize(bare_variant:, columns:, config:)
  @bare_variant = bare_variant
  @columns = columns
  @config = config
end

Instance Method Details

#parseObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/reading/attribute/variants/length_subattribute.rb', line 17

def parse
  in_variant = length_in(
    bare_variant,
    time_regex: config.deep_fetch(:csv, :regex, :time_length_in_variant),
    pages_regex: config.deep_fetch(:csv, :regex, :pages_length_in_variant),
  )
  in_length = length_in(
    columns[:length],
    time_regex: config.deep_fetch(:csv, :regex, :time_length),
    pages_regex: config.deep_fetch(:csv, :regex, :pages_length),
  )

  in_variant || in_length ||
    (raise InvalidLengthError, "Missing length" unless columns[:length].blank?)
end