Class: Glossarist::GlossaryStore
- Inherits:
-
Object
- Object
- Glossarist::GlossaryStore
- Defined in:
- lib/glossarist/glossary_store.rb
Instance Attribute Summary collapse
-
#localized_concepts_dir_name ⇒ Object
readonly
Returns the value of attribute localized_concepts_dir_name.
-
#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 ──.
- #each_concept(&block) ⇒ Object
-
#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 11 12 |
# File 'lib/glossarist/glossary_store.rb', line 7 def initialize @package = nil @concept_document_class = V3::ConceptDocument @v1_concepts = nil @localized_concepts_dir_name = nil end |
Instance Attribute Details
#localized_concepts_dir_name ⇒ Object (readonly)
Returns the value of attribute localized_concepts_dir_name.
5 6 7 |
# File 'lib/glossarist/glossary_store.rb', line 5 def localized_concepts_dir_name @localized_concepts_dir_name end |
#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
106 107 108 109 110 111 |
# File 'lib/glossarist/glossary_store.rb', line 106 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
168 169 170 171 |
# File 'lib/glossarist/glossary_store.rb', line 168 def add_image(path, content) ensure_package @package.add_asset(path, content) end |
#bibliography ⇒ Object
── Bibliography ──
151 152 153 |
# File 'lib/glossarist/glossary_store.rb', line 151 def bibliography @package.models_for(BibliographyData).first end |
#bibliography=(value) ⇒ Object
155 156 157 158 159 160 |
# File 'lib/glossarist/glossary_store.rb', line 155 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 ──
185 186 187 188 189 190 191 |
# File 'lib/glossarist/glossary_store.rb', line 185 def (shortname:, version:, **opts) GcrMetadata.from_concepts(concepts, register_data: register_data, options: { shortname: shortname, version: version, **opts, }) end |
#concept(uuid) ⇒ Object
101 102 103 104 |
# File 'lib/glossarist/glossary_store.rb', line 101 def concept(uuid) doc = @package.fetch_model(@concept_document_class, uuid) doc&.to_managed_concept end |
#concept_count ⇒ Object
117 118 119 |
# File 'lib/glossarist/glossary_store.rb', line 117 def concept_count @package.model_count(@concept_document_class) end |
#concept_exists?(uuid) ⇒ Boolean
121 122 123 |
# File 'lib/glossarist/glossary_store.rb', line 121 def concept_exists?(uuid) @package.model_exists?(@concept_document_class, uuid) end |
#concepts ⇒ Object
── Concepts ──
83 84 85 86 87 |
# File 'lib/glossarist/glossary_store.rb', line 83 def concepts return @v1_concepts if @v1_concepts @package.models_for(@concept_document_class).map(&:to_managed_concept) end |
#each_concept(&block) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/glossarist/glossary_store.rb', line 89 def each_concept(&block) return enum_for(:each_concept) unless block if @v1_concepts @v1_concepts.each(&block) else @package.models_for(@concept_document_class).each do |doc| yield doc.to_managed_concept end end end |
#image(path) ⇒ Object
── Images ──
164 165 166 |
# File 'lib/glossarist/glossary_store.rb', line 164 def image(path) @package.asset(path) end |
#image_paths ⇒ Object
173 174 175 |
# File 'lib/glossarist/glossary_store.rb', line 173 def image_paths @package.asset_paths.select { |p| p.start_with?("images/") } end |
#load(path, format: nil) ⇒ Object
61 62 63 64 65 66 67 68 |
# File 'lib/glossarist/glossary_store.rb', line 61 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 ──
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/glossarist/glossary_store.rb', line 16 def load_directory(path, format: nil) if v1_dataset?(path) load_v1_fallback(path) return self end if legacy_managed_layout?(path) load_legacy_managed(path) return self end if grouped_at_root?(path) load_grouped_at_root(path) return self end = (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
46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/glossarist/glossary_store.rb', line 46 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 ──
127 128 129 |
# File 'lib/glossarist/glossary_store.rb', line 127 def @package&. end |
#metadata=(value) ⇒ Object
131 132 133 134 |
# File 'lib/glossarist/glossary_store.rb', line 131 def (value) ensure_package @package. = value end |
#register_data ⇒ Object
── Register Data ──
138 139 140 |
# File 'lib/glossarist/glossary_store.rb', line 138 def register_data @package.models_for(RegisterData).first end |
#register_data=(value) ⇒ Object
142 143 144 145 146 147 |
# File 'lib/glossarist/glossary_store.rb', line 142 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
113 114 115 |
# File 'lib/glossarist/glossary_store.rb', line 113 def remove_concept(uuid) @package.remove_model(@concept_document_class, uuid) end |
#save_directory(path, format: nil, formats: {}) ⇒ Object
── Save ──
72 73 74 75 |
# File 'lib/glossarist/glossary_store.rb', line 72 def save_directory(path, format: nil, formats: {}) @package.save(path, transport: :directory, format: format, formats: formats) end |
#save_zip(path, format: nil, formats: {}) ⇒ Object
77 78 79 |
# File 'lib/glossarist/glossary_store.rb', line 77 def save_zip(path, format: nil, formats: {}) @package.save(path, transport: :zip, format: format, formats: formats) end |
#stats ⇒ Object
── Stats ──
179 180 181 |
# File 'lib/glossarist/glossary_store.rb', line 179 def stats @package&.stats end |