Class: Glossarist::GlossaryStore
- Inherits:
-
Object
- Object
- Glossarist::GlossaryStore
- Defined in:
- lib/glossarist/glossary_store.rb
Instance Attribute Summary collapse
-
#package ⇒ Object
readonly
Returns the value of attribute package.
Instance Method Summary collapse
- #add_concept(managed_concept) ⇒ Object
- #add_image(path, content) ⇒ Object
-
#bibliography ⇒ Object
── Bibliography ──.
- #bibliography=(value) ⇒ Object
-
#build_metadata(shortname:, version:, **opts) ⇒ Object
── Convenience ──.
- #concept(uuid) ⇒ Object
- #concept_count ⇒ Object
- #concept_exists?(uuid) ⇒ Boolean
-
#concepts ⇒ Object
── Concepts ──.
-
#image(path) ⇒ Object
── Images ──.
- #image_paths ⇒ Object
-
#initialize ⇒ GlossaryStore
constructor
A new instance of GlossaryStore.
- #load(path, format: nil) ⇒ Object
-
#load_directory(path, format: nil) ⇒ Object
── Load ──.
- #load_zip(path, format: nil) ⇒ Object
-
#metadata ⇒ Object
── Metadata ──.
- #metadata=(value) ⇒ Object
-
#register_data ⇒ Object
── Register Data ──.
- #register_data=(value) ⇒ Object
- #remove_concept(uuid) ⇒ Object
-
#save_directory(path, format: nil, formats: {}) ⇒ Object
── Save ──.
- #save_zip(path, format: nil, formats: {}) ⇒ Object
-
#stats ⇒ Object
── Stats ──.
Constructor Details
#initialize ⇒ GlossaryStore
Returns a new instance of GlossaryStore.
10 11 12 13 |
# File 'lib/glossarist/glossary_store.rb', line 10 def initialize @package = nil @concept_document_class = V3::ConceptDocument end |
Instance Attribute Details
#package ⇒ Object (readonly)
Returns the value of attribute package.
8 9 10 |
# File 'lib/glossarist/glossary_store.rb', line 8 def package @package end |
Instance Method Details
#add_concept(managed_concept) ⇒ Object
78 79 80 81 82 83 |
# File 'lib/glossarist/glossary_store.rb', line 78 def add_concept(managed_concept) ensure_package doc = @concept_document_class.from_managed_concept(managed_concept) doc.id = managed_concept.uuid @package.add_model(doc) end |
#add_image(path, content) ⇒ Object
140 141 142 143 |
# File 'lib/glossarist/glossary_store.rb', line 140 def add_image(path, content) ensure_package @package.add_asset(path, content) end |
#bibliography ⇒ Object
── Bibliography ──
123 124 125 |
# File 'lib/glossarist/glossary_store.rb', line 123 def bibliography @package.models_for(BibliographyData).first end |
#bibliography=(value) ⇒ Object
127 128 129 130 131 132 |
# File 'lib/glossarist/glossary_store.rb', line 127 def bibliography=(value) ensure_package existing = bibliography @package.remove_model(BibliographyData, existing.shortname) if existing @package.add_model(value) end |
#build_metadata(shortname:, version:, **opts) ⇒ Object
── Convenience ──
157 158 159 160 161 162 163 |
# File 'lib/glossarist/glossary_store.rb', line 157 def (shortname:, version:, **opts) GcrMetadata.from_concepts(concepts, register_data: register_data, options: { shortname: shortname, version: version, **opts, }) end |
#concept(uuid) ⇒ Object
73 74 75 76 |
# File 'lib/glossarist/glossary_store.rb', line 73 def concept(uuid) doc = @package.fetch_model(@concept_document_class, uuid) doc&.to_managed_concept end |
#concept_count ⇒ Object
89 90 91 |
# File 'lib/glossarist/glossary_store.rb', line 89 def concept_count @package.model_count(@concept_document_class) end |
#concept_exists?(uuid) ⇒ Boolean
93 94 95 |
# File 'lib/glossarist/glossary_store.rb', line 93 def concept_exists?(uuid) @package.model_exists?(@concept_document_class, uuid) end |
#concepts ⇒ Object
── Concepts ──
69 70 71 |
# File 'lib/glossarist/glossary_store.rb', line 69 def concepts @package.models_for(@concept_document_class).map(&:to_managed_concept) end |
#image(path) ⇒ Object
── Images ──
136 137 138 |
# File 'lib/glossarist/glossary_store.rb', line 136 def image(path) @package.asset(path) end |
#image_paths ⇒ Object
145 146 147 |
# File 'lib/glossarist/glossary_store.rb', line 145 def image_paths @package.asset_paths.select { |p| p.start_with?("images/") } end |
#load(path, format: nil) ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/glossarist/glossary_store.rb', line 47 def load(path, format: nil) ext = File.extname(path).downcase if [".gcr", ".zip"].include?(ext) load_zip(path, format: format) else load_directory(path, format: format) end end |
#load_directory(path, format: nil) ⇒ Object
── Load ──
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/glossarist/glossary_store.rb', line 17 def load_directory(path, format: nil) = (path) @concept_document_class = resolve_concept_document_class() definition = GcrPackageDefinition.definition( concept_document_class: @concept_document_class, ) @package = Lutaml::Store::PackageStore.load( definition, path, transport: :directory, format: format ) () self end |
#load_zip(path, format: nil) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/glossarist/glossary_store.rb', line 32 def load_zip(path, format: nil) = (path) @concept_document_class = resolve_concept_document_class() definition = GcrPackageDefinition.definition( concept_document_class: @concept_document_class, ) @package = Lutaml::Store::PackageStore.load( definition, path, transport: :zip, format: format ) () self end |
#metadata ⇒ Object
── Metadata ──
99 100 101 |
# File 'lib/glossarist/glossary_store.rb', line 99 def @package&. end |
#metadata=(value) ⇒ Object
103 104 105 106 |
# File 'lib/glossarist/glossary_store.rb', line 103 def (value) ensure_package @package. = value end |
#register_data ⇒ Object
── Register Data ──
110 111 112 |
# File 'lib/glossarist/glossary_store.rb', line 110 def register_data @package.models_for(RegisterData).first end |
#register_data=(value) ⇒ Object
114 115 116 117 118 119 |
# File 'lib/glossarist/glossary_store.rb', line 114 def register_data=(value) ensure_package existing = register_data @package.remove_model(RegisterData, existing.key) if existing @package.add_model(value) end |
#remove_concept(uuid) ⇒ Object
85 86 87 |
# File 'lib/glossarist/glossary_store.rb', line 85 def remove_concept(uuid) @package.remove_model(@concept_document_class, uuid) end |
#save_directory(path, format: nil, formats: {}) ⇒ Object
── Save ──
58 59 60 61 |
# File 'lib/glossarist/glossary_store.rb', line 58 def save_directory(path, format: nil, formats: {}) @package.save(path, transport: :directory, format: format, formats: formats) end |
#save_zip(path, format: nil, formats: {}) ⇒ Object
63 64 65 |
# File 'lib/glossarist/glossary_store.rb', line 63 def save_zip(path, format: nil, formats: {}) @package.save(path, transport: :zip, format: format, formats: formats) end |
#stats ⇒ Object
── Stats ──
151 152 153 |
# File 'lib/glossarist/glossary_store.rb', line 151 def stats @package&.stats end |