Class: Architext::ObsidianSource

Inherits:
Object
  • Object
show all
Defined in:
lib/architext/sources.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(vault: nil, vault_source: nil, executable: ENV.fetch('ARCHITEXT_OBSIDIAN', 'obsidian')) ⇒ ObsidianSource

Returns a new instance of ObsidianSource.



203
204
205
206
207
208
# File 'lib/architext/sources.rb', line 203

def initialize(vault: nil, vault_source: nil, executable: ENV.fetch('ARCHITEXT_OBSIDIAN', 'obsidian'))
  @vault = vault
  @vault_source = vault_source
  @executable = executable
  @client = Obsidian.new(vault:, executable:)
end

Instance Attribute Details

#vaultObject (readonly)

Returns the value of attribute vault.



201
202
203
# File 'lib/architext/sources.rb', line 201

def vault
  @vault
end

#vault_sourceObject (readonly)

Returns the value of attribute vault_source.



201
202
203
# File 'lib/architext/sources.rb', line 201

def vault_source
  @vault_source
end

Instance Method Details

#diagnosticsObject



218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
# File 'lib/architext/sources.rb', line 218

def diagnostics
  version = @client.version
  vault_info = @client.vault_info
  SourceDiagnostics.new(
    source: 'obsidian',
    root: nil,
    vault: @vault,
    vault_source: @vault_source,
    status: 'ok',
    warning: nil,
    markdown_count: nil,
    executable: @executable,
    version:,
    resolved_vault_summary: summarize_vault_info(vault_info)
  )
rescue Obsidian::CommandFailed => e
  SourceDiagnostics.new(
    source: 'obsidian',
    root: nil,
    vault: @vault,
    vault_source: @vault_source,
    status: 'error',
    warning: first_line(e.message),
    markdown_count: nil,
    executable: @executable,
    version: nil,
    resolved_vault_summary: nil
  )
end

#read(path) ⇒ Object



214
215
216
# File 'lib/architext/sources.rb', line 214

def read(path)
  @client.read(path)
end

#search(query) ⇒ Object



210
211
212
# File 'lib/architext/sources.rb', line 210

def search(query)
  @client.search(query)
end