Class: Pubid::Nist::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/pubid/nist/configuration.rb

Overview

Configuration class responsible for loading and managing series definitions Single Responsibility: Series configuration management

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(series_file_path = nil) ⇒ Configuration

Returns a new instance of Configuration.



12
13
14
15
# File 'lib/pubid/nist/configuration.rb', line 12

def initialize(series_file_path = nil)
  @series_file_path = series_file_path || default_series_path
  load_series
end

Instance Attribute Details

#seriesObject (readonly)

Returns the value of attribute series.



10
11
12
# File 'lib/pubid/nist/configuration.rb', line 10

def series
  @series
end

Instance Method Details

#all_series_codesArray<String>

Get all series codes

Returns:

  • (Array<String>)

    all valid series codes



47
48
49
# File 'lib/pubid/nist/configuration.rb', line 47

def all_series_codes
  @series["long"].keys
end

#series_abbrev(series_code) ⇒ String?

Get series abbreviation

Parameters:

  • series_code (String)

    the series code

Returns:

  • (String, nil)

    the abbreviation or nil if not found



27
28
29
# File 'lib/pubid/nist/configuration.rb', line 27

def series_abbrev(series_code)
  @series.dig("abbrev", series_code)
end

#series_from_mr(mr_format) ⇒ String?

Get series code from MR format

Parameters:

  • mr_format (String)

    the MR format

Returns:

  • (String, nil)

    the series code or nil if not found



54
55
56
# File 'lib/pubid/nist/configuration.rb', line 54

def series_from_mr(mr_format)
  @series["mr"].key(mr_format)
end

#series_long_name(series_code) ⇒ String?

Get series long name

Parameters:

  • series_code (String)

    the series code (e.g., “SP”, “FIPS”)

Returns:

  • (String, nil)

    the long name or nil if not found



20
21
22
# File 'lib/pubid/nist/configuration.rb', line 20

def series_long_name(series_code)
  @series.dig("long", series_code)
end

#series_mr(series_code) ⇒ String?

Get series MR (machine-readable) format

Parameters:

  • series_code (String)

    the series code

Returns:

  • (String, nil)

    the MR format or nil if not found



34
35
36
# File 'lib/pubid/nist/configuration.rb', line 34

def series_mr(series_code)
  @series.dig("mr", series_code)
end

#valid_series?(series_code) ⇒ Boolean

Check if series code is valid

Parameters:

  • series_code (String)

    the series code

Returns:

  • (Boolean)

    true if series is valid



41
42
43
# File 'lib/pubid/nist/configuration.rb', line 41

def valid_series?(series_code)
  @series["long"].key?(series_code)
end