Class: RelatonIso::Index
- Inherits:
-
Object
- Object
- RelatonIso::Index
- Defined in:
- lib/relaton_iso/index.rb
Overview
Index.
Instance Method Summary collapse
-
#<<(item) ⇒ void
Add or update index entry.
-
#[](id) ⇒ Hash
Fetch document from index by ID.
-
#index ⇒ Array<Hash>
Create index.
-
#initialize(file = nil) ⇒ Index
constructor
Initialise index.
-
#save ⇒ void
Save index to file.
Constructor Details
#initialize(file = nil) ⇒ Index
Initialise index. If file path is given, read index from file. If file is not given, look for it in a ‘/home/USER/.relaton/iso` directory. If file doesn’t exist, or is outdated then fetch index from GitHub.
11 12 13 |
# File 'lib/relaton_iso/index.rb', line 11 def initialize(file = nil) @file = file end |
Instance Method Details
#<<(item) ⇒ void
This method returns an undefined value.
Add or update index entry.
31 32 33 34 35 36 37 38 39 |
# File 'lib/relaton_iso/index.rb', line 31 def <<(item) id = item.docidentifier.detect(&:primary).id row = self[id] || begin r = { id: id } index << r r end row[:title] = item.title.first.title.content end |
#[](id) ⇒ Hash
Fetch document from index by ID.
48 49 50 |
# File 'lib/relaton_iso/index.rb', line 48 def [](id) index.detect { |i| i[:id] == id } end |
#index ⇒ Array<Hash>
Create index.
20 21 22 |
# File 'lib/relaton_iso/index.rb', line 20 def index @index ||= read_index || read_from_user_dir || fetch_index end |
#save ⇒ void
This method returns an undefined value.
Save index to file.
57 58 59 |
# File 'lib/relaton_iso/index.rb', line 57 def save serialize_and_save index end |