class Isoics::ICS

Attributes

code[R]

@return [String]

description[R]

@return [String]

description_full[R]

@return [String]

fieldcode[R]

@return [String]

groupcode[R]

@return [String]

notes[R]

@return [Array<Isoics::Note>]

subgroupcode[R]

@return [String]

Public Class Methods

new(fieldcode:, groupcode: nil, subgroupcode: nil) click to toggle source

@param ics_data [Hash]

# File lib/isoics/ics.rb, line 27
def initialize(fieldcode:, groupcode: nil, subgroupcode: nil)
  file_name = "#{__dir__}/../../ics/#{fieldcode}"
  file_name << "_#{groupcode}" if groupcode
  file_name << "_#{subgroupcode}" if subgroupcode
  file_name << ".json"
  ics_data = JSON.parse File.read(file_name), symbolize_names: true

  @code, @fieldcode, @groupcode, @subgroupcode, @description,
    @description_full = ics_data.values_at(
      :code, :fieldcode, :groupcode, :subgroupcode, :description,
      :descriptionFull
    )

  @notes = if ics_data[:notes]
             ics_data[:notes].map { |n| Note.new n }
           else
             []
           end
end