Sha256: 32a9be80f1a6512db9715379faaf4f35164ca3b0760102c95a46c6ec703c23f1

Contents?: true

Size: 917 Bytes

Versions: 1

Compression:

Stored size: 917 Bytes

Contents

class Isic
  class Search

    FILES = {
      en: File.join(File.dirname(File.expand_path(__FILE__)), '../../files/ISIC_Rev_4_english_structure.txt'),
      es: File.join(File.dirname(File.expand_path(__FILE__)), '../../files/ISIC_Rev_4_spanish_structure.txt'),
      fr: File.join(File.dirname(File.expand_path(__FILE__)), '../../files/ISIC_Rev_4_french_structure.txt')
    }

    ENCODINGS = {
      en: 'utf-8',
      es: 'iso-8859-15:utf-8',
      fr: 'iso-8859-15:utf-8'
    }

    def initialize(regexp, translation: :en)
      @regexp = regexp
      @file = FILES[translation]
      @encoding = ENCODINGS[translation]
    end

    def all
      entities = []
      File.open(@file, encoding: @encoding).each do |line|
        md = /"(#{@regexp})","(.+)"/.match(line)
        entities << {code: md[1], description: md[2]} if md
      end
      entities
    end

    def first
      all.first
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
isic-1.0.5 lib/isic/search.rb