Module: Iev

Defined in:
lib/iev/cli.rb,
lib/iev.rb,
lib/iev/cli/ui.rb,
lib/iev/config.rb,
lib/iev/scraper.rb,
lib/iev/version.rb,
lib/iev/exporter.rb,
lib/iev/profiler.rb,
lib/iev/converter.rb,
lib/iev/db_writer.rb,
lib/iev/utilities.rb,
lib/iev/relaton_db.rb,
lib/iev/cli/command.rb,
lib/iev/data_source.rb,
lib/iev/iso_639_code.rb,
lib/iev/term_builder.rb,
lib/iev/source_parser.rb,
lib/iev/subject_areas.rb,
lib/iev/scraper/browser.rb,
lib/iev/data_conversions.rb,
lib/iev/term_attrs_parser.rb,
lib/iev/cli/command_helper.rb,
lib/iev/scraper/page_parser.rb,
lib/iev/supersession_parser.rb,
lib/iev/subject_area_concepts.rb,
lib/iev/converter/mathml_to_asciimath.rb

Overview

© Copyright 2020 Ribose Inc.

Defined Under Namespace

Modules: Cli, Converter, DataConversions, DataSource, ScraperBrowser, SubjectAreaConcepts, SubjectAreas, Utilities Classes: Config, DbWriter, Exporter, Iso639Code, Profiler, RelatonDb, Scraper, SourceParser, SupersessionParser, TermAttrsParser, TermBuilder

Constant Summary collapse

VERSION =
"0.4.4"

Class Method Summary collapse

Class Method Details

.area_for_section(section_code) ⇒ Hash?

Return the parent subject area for a given section code.

Parameters:

  • section_code (String)

    e.g. “102-01”

Returns:

  • (Hash, nil)


116
117
118
# File 'lib/iev.rb', line 116

def self.area_for_section(section_code)
  SubjectAreas.area_for_section(section_code)
end

.configObject



19
20
21
# File 'lib/iev/config.rb', line 19

def config
  @config ||= Config.new
end

.configure {|config| ... } ⇒ Object

Yields:



23
24
25
# File 'lib/iev/config.rb', line 23

def configure
  yield(config) if block_given?
end

.fetch_concept(code) ⇒ Hash

Fetch full concept data (all languages) for a given IEV code.

Parameters:

  • code (String)

    IEV code, e.g. “103-01-02”

Returns:

  • (Hash)

    concept data hash with all languages

Raises:



63
64
65
# File 'lib/iev.rb', line 63

def self.fetch_concept(code)
  DataSource.fetch_concept(code)
end

.fetch_term(code, lang) ⇒ Hash?

Fetch localized term data for a given IEV code and language.

Parameters:

  • code (String)

    IEV code, e.g. “103-01-02”

  • lang (String)

    language code, e.g. “en” or “eng”

Returns:

  • (Hash, nil)

    localized concept data or nil if not found

Raises:



73
74
75
# File 'lib/iev.rb', line 73

def self.fetch_term(code, lang)
  DataSource.fetch_term(code, lang)
end

.find_section(section_code) ⇒ Hash?

Find a section by its section code.

Parameters:

  • section_code (String)

    e.g. “102-01”

Returns:

  • (Hash, nil)


102
103
104
# File 'lib/iev.rb', line 102

def self.find_section(section_code)
  SubjectAreas.find_section(section_code)
end

.find_subject_area(code) ⇒ Hash?

Find a subject area by code.

Parameters:

  • code (String, Integer)

    e.g. “102”

Returns:

  • (Hash, nil)


95
96
97
# File 'lib/iev.rb', line 95

def self.find_subject_area(code)
  SubjectAreas.find_area(code)
end

.get(code, lang) ⇒ String?

Fetch term designation from IEV data.

Parameters:

  • code (String)

    for example “103-01-02”

  • lang (String)

    language code, for example “en”

Returns:

  • (String, nil)

    if found then term, if code or language not found then nil.



52
53
54
55
56
# File 'lib/iev.rb', line 52

def self.get(code, lang)
  DataSource.fetch_term_designation(code, lang)
rescue DataSource::NotFoundError
  nil
end

.reset_config!Object



27
28
29
# File 'lib/iev/config.rb', line 27

def reset_config!
  @config = nil
end

.scrape_concept(code) ⇒ Hash?

Scrape concept data from Electropedia for a given IEV code. Uses Ferrum (headless Chrome) to handle AWS WAF challenge.

Parameters:

  • code (String)

    IEV code, e.g. “103-01-02”

Returns:

  • (Hash, nil)

    concept data hash or nil if not found



82
83
84
# File 'lib/iev.rb', line 82

def self.scrape_concept(code)
  Scraper.new.fetch_concept(code)
end

.sections_for(code) ⇒ Array<Hash>

Return sections for a given area code.

Parameters:

  • code (String, Integer)

    e.g. “102”

Returns:

  • (Array<Hash>)


109
110
111
# File 'lib/iev.rb', line 109

def self.sections_for(code)
  SubjectAreas.sections_for(code)
end

.subject_areasArray<Hash>

Return all IEV subject areas with their sections (from bundled data).

Returns:

  • (Array<Hash>)


88
89
90
# File 'lib/iev.rb', line 88

def self.subject_areas
  SubjectAreas.all
end