Module: BrainzLab::Dendrite
- Defined in:
- lib/brainzlab/dendrite.rb,
lib/brainzlab/dendrite/client.rb,
lib/brainzlab/dendrite/provisioner.rb
Defined Under Namespace
Classes: Client, Provisioner
Class Method Summary collapse
-
.ask(repo_id, question, session_id: nil) ⇒ Hash?
Ask a question about the codebase.
- .client ⇒ Object
-
.connect(url, name: nil, branch: 'main') ⇒ Hash?
Connect a Git repository for documentation.
-
.diagram(repo_id, type:, scope: nil) ⇒ Hash?
Generate a diagram.
-
.ensure_provisioned! ⇒ Object
INTERNAL ===.
-
.explain(repo_id, path, symbol: nil) ⇒ Hash?
Explain a file or code symbol.
-
.page(repo_id, page_slug) ⇒ Hash?
Get a specific wiki page.
- .provisioner ⇒ Object
-
.repositories ⇒ Array<Hash>
List all connected repositories.
-
.repository(repo_id) ⇒ Hash?
Get repository info.
- .reset! ⇒ Object
-
.search(repo_id, query, limit: 10) ⇒ Array<Hash>
Semantic search across the codebase.
-
.sync(repo_id) ⇒ Boolean
Trigger documentation sync for a repository.
-
.wiki(repo_id) ⇒ Hash?
Get wiki for a repository.
Class Method Details
.ask(repo_id, question, session_id: nil) ⇒ Hash?
Ask a question about the codebase
119 120 121 122 123 124 125 126 |
# File 'lib/brainzlab/dendrite.rb', line 119 def ask(repo_id, question, session_id: nil) return nil unless enabled? ensure_provisioned! return nil unless BrainzLab.configuration.dendrite_valid? client.ask(repo_id, question, session_id: session_id) end |
.client ⇒ Object
178 179 180 |
# File 'lib/brainzlab/dendrite.rb', line 178 def client @client ||= Client.new(BrainzLab.configuration) end |
.connect(url, name: nil, branch: 'main') ⇒ Hash?
Connect a Git repository for documentation
22 23 24 25 26 27 28 29 |
# File 'lib/brainzlab/dendrite.rb', line 22 def connect(url, name: nil, branch: 'main', **) return nil unless enabled? ensure_provisioned! return nil unless BrainzLab.configuration.dendrite_valid? client.connect_repository(url: url, name: name, branch: branch, **) end |
.diagram(repo_id, type:, scope: nil) ⇒ Hash?
Generate a diagram
156 157 158 159 160 161 162 163 |
# File 'lib/brainzlab/dendrite.rb', line 156 def diagram(repo_id, type:, scope: nil) return nil unless enabled? ensure_provisioned! return nil unless BrainzLab.configuration.dendrite_valid? client.generate_diagram(repo_id, type: type, scope: scope) end |
.ensure_provisioned! ⇒ Object
INTERNAL ===
167 168 169 170 171 172 |
# File 'lib/brainzlab/dendrite.rb', line 167 def ensure_provisioned! return if @provisioned @provisioned = true provisioner.ensure_project! end |
.explain(repo_id, path, symbol: nil) ⇒ Hash?
Explain a file or code symbol
137 138 139 140 141 142 143 144 |
# File 'lib/brainzlab/dendrite.rb', line 137 def explain(repo_id, path, symbol: nil) return nil unless enabled? ensure_provisioned! return nil unless BrainzLab.configuration.dendrite_valid? client.explain(repo_id, path, symbol: symbol) end |
.page(repo_id, page_slug) ⇒ Hash?
Get a specific wiki page
82 83 84 85 86 87 88 89 |
# File 'lib/brainzlab/dendrite.rb', line 82 def page(repo_id, page_slug) return nil unless enabled? ensure_provisioned! return nil unless BrainzLab.configuration.dendrite_valid? client.get_wiki_page(repo_id, page_slug) end |
.provisioner ⇒ Object
174 175 176 |
# File 'lib/brainzlab/dendrite.rb', line 174 def provisioner @provisioner ||= Provisioner.new(BrainzLab.configuration) end |
.repositories ⇒ Array<Hash>
List all connected repositories
57 58 59 60 61 62 63 64 |
# File 'lib/brainzlab/dendrite.rb', line 57 def repositories return [] unless enabled? ensure_provisioned! return [] unless BrainzLab.configuration.dendrite_valid? client.list_repositories end |
.repository(repo_id) ⇒ Hash?
Get repository info
46 47 48 49 50 51 52 53 |
# File 'lib/brainzlab/dendrite.rb', line 46 def repository(repo_id) return nil unless enabled? ensure_provisioned! return nil unless BrainzLab.configuration.dendrite_valid? client.get_repository(repo_id) end |
.reset! ⇒ Object
182 183 184 185 186 |
# File 'lib/brainzlab/dendrite.rb', line 182 def reset! @client = nil @provisioner = nil @provisioned = false end |
.search(repo_id, query, limit: 10) ⇒ Array<Hash>
Semantic search across the codebase
100 101 102 103 104 105 106 107 |
# File 'lib/brainzlab/dendrite.rb', line 100 def search(repo_id, query, limit: 10) return [] unless enabled? ensure_provisioned! return [] unless BrainzLab.configuration.dendrite_valid? client.search(repo_id, query, limit: limit) end |
.sync(repo_id) ⇒ Boolean
Trigger documentation sync for a repository
34 35 36 37 38 39 40 41 |
# File 'lib/brainzlab/dendrite.rb', line 34 def sync(repo_id) return false unless enabled? ensure_provisioned! return false unless BrainzLab.configuration.dendrite_valid? client.sync_repository(repo_id) end |
.wiki(repo_id) ⇒ Hash?
Get wiki for a repository
69 70 71 72 73 74 75 76 |
# File 'lib/brainzlab/dendrite.rb', line 69 def wiki(repo_id) return nil unless enabled? ensure_provisioned! return nil unless BrainzLab.configuration.dendrite_valid? client.get_wiki(repo_id) end |