Module: Legion::Extensions::Knowledge::Helpers::Manifest
- Defined in:
- lib/legion/extensions/knowledge/helpers/manifest.rb
Class Method Summary collapse
Class Method Details
.diff(current:, previous:) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/legion/extensions/knowledge/helpers/manifest.rb', line 29 def diff(current:, previous:) current_map = current.to_h { |e| [e[:path], e[:sha256]] } previous_map = previous.to_h { |e| [e[:path], e[:sha256]] } added = current_map.keys - previous_map.keys removed = previous_map.keys - current_map.keys changed = current_map.keys.select do |p| previous_map.key?(p) && previous_map[p] != current_map[p] end { added: added, changed: changed, removed: removed } end |
.scan(path:, extensions: %w[.md .txt .docx .pdf])) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/legion/extensions/knowledge/helpers/manifest.rb', line 13 def scan(path:, extensions: %w[.md .txt .docx .pdf]) results = [] Find.find(path) do |entry| basename = ::File.basename(entry) Find.prune if basename.start_with?('.') next unless ::File.file?(entry) next unless extensions.include?(::File.extname(entry).downcase) results << build_entry(entry) end results end |