Class: Isoics::ICS

Inherits:
Object
  • Object
show all
Defined in:
lib/isoics/ics.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(fieldcode:, groupcode: nil, subgroupcode: nil) ⇒ ICS



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/isoics/ics.rb', line 27

def initialize(fieldcode:, groupcode: nil, subgroupcode: nil)
  sbgcode = groupcode && subgroupcode
  code = [fieldcode.to_s, groupcode, sbgcode].compact.join "."
  file_name = "#{__dir__}/../../ics/#{code.gsub('.', '_')}.json"
  if File.exist? file_name
    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 = ics_data[:notes]&.map { |n| Note.new n }
    @notes ||= []
  else
    warn "[isoics] code #{code} not found in ICS list"
    @code = code
    @fieldcode = fieldcode
    @groupcode = groupcode
    @subgroupcode = sbgcode
  end
end

Instance Attribute Details

#codeString (readonly)



20
21
22
# File 'lib/isoics/ics.rb', line 20

def code
  @code
end

#descriptionString (readonly)



20
21
22
# File 'lib/isoics/ics.rb', line 20

def description
  @description
end

#description_fullString (readonly)



20
21
22
# File 'lib/isoics/ics.rb', line 20

def description_full
  @description_full
end

#fieldcodeString (readonly)



20
21
22
# File 'lib/isoics/ics.rb', line 20

def fieldcode
  @fieldcode
end

#groupcodeString (readonly)



20
21
22
# File 'lib/isoics/ics.rb', line 20

def groupcode
  @groupcode
end

#notesArray<Isoics::Note> (readonly)



24
25
26
# File 'lib/isoics/ics.rb', line 24

def notes
  @notes
end

#subgroupcodeString (readonly)



20
21
22
# File 'lib/isoics/ics.rb', line 20

def subgroupcode
  @subgroupcode
end