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/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/paragraph.rb,
lib/obp/access/elements/table_wrap.rb,
lib/obp/access/elements/terminology.rb,
lib/obp/access/elements/bibliography.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/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, Urn

Constant Summary collapse

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(urn) ⇒ Access

Returns a new instance of Access.



81
82
83
# File 'lib/obp/access.rb', line 81

def initialize(urn)
  @urn = urn
end

Instance Attribute Details

#urnObject (readonly)

Returns the value of attribute urn.



58
59
60
# File 'lib/obp/access.rb', line 58

def urn
  @urn
end

Class Method Details

.fetch(urn) ⇒ Object

Raises:

  • (ArgumentError)


60
61
62
63
64
# File 'lib/obp/access.rb', line 60

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

  new(Urn.new(urn))
end

.fetch_all(urn, languages:) ⇒ Object



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

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



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

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



100
101
102
# File 'lib/obp/access.rb', line 100

def available_languages
  parser.available_languages
end

#to_stsObject



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

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

#to_xml(pretty: false) ⇒ Object



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

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

#to_xml_fileObject



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

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