Class: Obp::Access

Inherits:
Object
  • Object
show all
Defined in:
lib/obp/access.rb,
lib/obp/access/cli.rb,
lib/obp/access/urn.rb,
lib/obp/access/imager.rb,
lib/obp/access/parser.rb,
lib/obp/access/catalog.rb,
lib/obp/access/fetcher.rb,
lib/obp/access/version.rb,
lib/obp/access/renderer.rb,
lib/obp/access/converter.rb,
lib/obp/access/retriever.rb,
lib/obp/access/deliverable.rb,
lib/obp/access/table_mapper.rb,
lib/obp/access/elements/base.rb,
lib/obp/access/elements/list.rb,
lib/obp/access/elements/root.rb,
lib/obp/access/elements/array.rb,
lib/obp/access/elements/index.rb,
lib/obp/access/elements/title.rb,
lib/obp/access/grammar_parser.rb,
lib/obp/access/elements/figure.rb,
lib/obp/access/inline_renderer.rb,
lib/obp/access/domain_extractor.rb,
lib/obp/access/element_registry.rb,
lib/obp/access/elements/section.rb,
lib/obp/access/elements/copyright.rb,
lib/obp/access/elements/footnotes.rb,
lib/obp/access/elements/paragraph.rb,
lib/obp/access/elements/table_wrap.rb,
lib/obp/access/elements/terminology.rb,
lib/obp/access/table_term_extractor.rb,
lib/obp/access/elements/bibliography.rb,
lib/obp/access/elements/disp_formula.rb,
lib/obp/access/elements/figure_group.rb,
lib/obp/access/elements/introduction.rb,
lib/obp/access/elements/section_type.rb,
lib/obp/access/elements/section_title.rb,
lib/obp/access/elements/terminology/tig.rb,
lib/obp/access/elements/terminology/base.rb,
lib/obp/access/elements/terminology/note.rb,
lib/obp/access/elements/non_normative_note.rb,
lib/obp/access/elements/terminology/source.rb,
lib/obp/access/elements/terminology/example.rb,
lib/obp/access/elements/bibliography/bib_ref.rb,
lib/obp/access/elements/non_normative_example.rb,
lib/obp/access/elements/protected_content_note.rb,
lib/obp/access/elements/terminology/definition.rb,
lib/obp/access/elements/terminology/tig_admitted.rb,
lib/obp/access/elements/terminology/tig_preferred.rb,
lib/obp/access/elements/terminology/tig_deprecated.rb

Defined Under Namespace

Modules: InlineRenderer Classes: CLI, Catalog, Converter, Deliverable, DomainExtractor, ElementRegistry, Fetcher, GrammarParser, Imager, Parser, Renderer, Retriever, TableMapper, TableTermExtractor, Urn

Constant Summary collapse

BASE_URL =
"https://www.iso.org".freeze
API_URL =
"#{BASE_URL}/obp/ui".freeze
VERSION =
"0.1.5".freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(urn) ⇒ Access

Returns a new instance of Access.



87
88
89
# File 'lib/obp/access.rb', line 87

def initialize(urn)
  @urn = urn
end

Instance Attribute Details

#urnObject (readonly)

Returns the value of attribute urn.



64
65
66
# File 'lib/obp/access.rb', line 64

def urn
  @urn
end

Class Method Details

.fetch(urn) ⇒ Object

Raises:

  • (ArgumentError)


66
67
68
69
70
# File 'lib/obp/access.rb', line 66

def self.fetch(urn)
  raise ArgumentError, "URN is required" unless urn

  new(Urn.new(urn))
end

.fetch_all(urn, languages:) ⇒ Object



72
73
74
75
76
77
# File 'lib/obp/access.rb', line 72

def self.fetch_all(urn, languages:)
  urn = Urn.new(urn)
  available = new(urn).available_languages
  resolved = resolve_languages(urn.language, languages, available)
  resolved.map { |lang| new(Urn.new("#{urn.base}:#{lang}")) }
end

.resolve_languages(primary, requested, available) ⇒ Object



79
80
81
82
83
84
85
# File 'lib/obp/access.rb', line 79

def self.resolve_languages(primary, requested, available)
  case requested
  when :all then [primary] | available
  when Array then [primary] | (requested & available)
  else [primary]
  end
end

Instance Method Details

#available_languagesObject



118
119
120
# File 'lib/obp/access.rb', line 118

def available_languages
  parser.available_languages
end

#to_stsObject



96
97
98
# File 'lib/obp/access.rb', line 96

def to_sts
  Sts::NisoSts::Standard.from_xml(to_xml)
end

#to_tablesObject

YAML serialization of every table in the OBP preview HTML (TableMapper's generic table model).



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

def to_tables
  table_mapper.to_yaml
end

#to_termsObject

YAML serialization of term entries extracted from the document's term-carrying tables (TableTermExtractor over the table model).



108
109
110
# File 'lib/obp/access.rb', line 108

def to_terms
  TableTermExtractor.new(tables: table_mapper.tables).to_yaml
end

#to_xml(pretty: false) ⇒ Object



91
92
93
94
# File 'lib/obp/access.rb', line 91

def to_xml(pretty: false)
  xml = parser.to_xml
  pretty ? pretty_print(xml) : xml
end

#to_xml_fileObject



112
113
114
115
116
# File 'lib/obp/access.rb', line 112

def to_xml_file
  path = File.join(tmpdir, "#{urn.safe}.xml")
  File.write(path, to_xml(pretty: true))
  path
end