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.
7 8 9 10 |
# File 'lib/glossarist/glossary_store.rb', line 7 def initialize @package = nil @concept_document_class = V3::ConceptDocument end |
Instance Attribute Details
#package ⇒ Object (readonly)
Returns the value of attribute package.
5 6 7 |
# File 'lib/glossarist/glossary_store.rb', line 5 def package @package end |
Instance Method Details
#add_concept(managed_concept) ⇒ Object
75 76 77 78 79 80 |
# File 'lib/glossarist/glossary_store.rb', line 75 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
137 138 139 140 |
# File 'lib/glossarist/glossary_store.rb', line 137 def add_image(path, content) ensure_package @package.add_asset(path, content) end |
#bibliography ⇒ Object
── Bibliography ──
120 121 122 |
# File 'lib/glossarist/glossary_store.rb', line 120 def bibliography @package.models_for(BibliographyData).first end |
#bibliography=(value) ⇒ Object
124 125 126 127 128 129 |
# File 'lib/glossarist/glossary_store.rb', line 124 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 ──
154 155 156 157 158 159 160 |
# File 'lib/glossarist/glossary_store.rb', line 154 def (shortname:, version:, **opts) GcrMetadata.from_concepts(concepts, register_data: register_data, options: { shortname: shortname, version: version, **opts, }) end |
#concept(uuid) ⇒ Object
70 71 72 73 |
# File 'lib/glossarist/glossary_store.rb', line 70 def concept(uuid) doc = @package.fetch_model(@concept_document_class, uuid) doc&.to_managed_concept end |
#concept_count ⇒ Object
86 87 88 |
# File 'lib/glossarist/glossary_store.rb', line 86 def concept_count @package.model_count(@concept_document_class) end |
#concept_exists?(uuid) ⇒ Boolean
90 91 92 |
# File 'lib/glossarist/glossary_store.rb', line 90 def concept_exists?(uuid) @package.model_exists?(@concept_document_class, uuid) end |
#concepts ⇒ Object
── Concepts ──
66 67 68 |
# File 'lib/glossarist/glossary_store.rb', line 66 def concepts @package.models_for(@concept_document_class).map(&:to_managed_concept) end |
#image(path) ⇒ Object
── Images ──
133 134 135 |
# File 'lib/glossarist/glossary_store.rb', line 133 def image(path) @package.asset(path) end |
#image_paths ⇒ Object
142 143 144 |
# File 'lib/glossarist/glossary_store.rb', line 142 def image_paths @package.asset_paths.select { |p| p.start_with?("images/") } end |
#load(path, format: nil) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/glossarist/glossary_store.rb', line 44 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 ──
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/glossarist/glossary_store.rb', line 14 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
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/glossarist/glossary_store.rb', line 29 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 ──
96 97 98 |
# File 'lib/glossarist/glossary_store.rb', line 96 def @package&. end |
#metadata=(value) ⇒ Object
100 101 102 103 |
# File 'lib/glossarist/glossary_store.rb', line 100 def (value) ensure_package @package. = value end |
#register_data ⇒ Object
── Register Data ──
107 108 109 |
# File 'lib/glossarist/glossary_store.rb', line 107 def register_data @package.models_for(RegisterData).first end |
#register_data=(value) ⇒ Object
111 112 113 114 115 116 |
# File 'lib/glossarist/glossary_store.rb', line 111 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
82 83 84 |
# File 'lib/glossarist/glossary_store.rb', line 82 def remove_concept(uuid) @package.remove_model(@concept_document_class, uuid) end |
#save_directory(path, format: nil, formats: {}) ⇒ Object
── Save ──
55 56 57 58 |
# File 'lib/glossarist/glossary_store.rb', line 55 def save_directory(path, format: nil, formats: {}) @package.save(path, transport: :directory, format: format, formats: formats) end |
#save_zip(path, format: nil, formats: {}) ⇒ Object
60 61 62 |
# File 'lib/glossarist/glossary_store.rb', line 60 def save_zip(path, format: nil, formats: {}) @package.save(path, transport: :zip, format: format, formats: formats) end |
#stats ⇒ Object
── Stats ──
148 149 150 |
# File 'lib/glossarist/glossary_store.rb', line 148 def stats @package&.stats end |