Class: Bookworm::KnowledgeBase
- Inherits:
-
Object
- Object
- Bookworm::KnowledgeBase
- Defined in:
- lib/bookworm/knowledge_base.rb
Overview
The KnowledgeBase is a backend-agnostic way of storing and querying information that’s generated about the files via InferRules.
We provide indirect access to the information stored by the knowledge base, so that we’ll soon be able to leverage different backends (for concurrent writes, caching rule output across runs, etc).
Instance Method Summary collapse
- #[](_key) ⇒ Object
- #[]=(_key, _value) ⇒ Object
- #backend_missing ⇒ Object
- #init_hooks ⇒ Object
-
#initialize(opts) ⇒ KnowledgeBase
constructor
A new instance of KnowledgeBase.
Constructor Details
#initialize(opts) ⇒ KnowledgeBase
Returns a new instance of KnowledgeBase.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/bookworm/knowledge_base.rb', line 44 def initialize(opts) extend Bookworm::KnowledgeBaseBackends::SimpleHash init_hooks # TODO: Only initialize keys required by rules BOOKWORM_KEYS.each do |k, v| unless v['dont_init_kb_key'] if v['determine_cookbook_name'] init_key_with_cookbook_name(k, opts[k] || []) else init_key(k, opts[k] || []) end end create_pluralized_getter(k) end end |
Instance Method Details
#[](_key) ⇒ Object
66 67 68 |
# File 'lib/bookworm/knowledge_base.rb', line 66 def [](_key) backend_missing end |
#[]=(_key, _value) ⇒ Object
70 71 72 |
# File 'lib/bookworm/knowledge_base.rb', line 70 def []=(_key, _value) backend_missing end |
#backend_missing ⇒ Object
62 63 64 |
# File 'lib/bookworm/knowledge_base.rb', line 62 def backend_missing fail 'Need to specify a backend for KnowledgeBase class' end |
#init_hooks ⇒ Object
74 75 76 |
# File 'lib/bookworm/knowledge_base.rb', line 74 def init_hooks # This is optional for KnowledgeBaseBackends end |