Class: Lite::Utils::MdCode::Instance
- Inherits:
-
Object
- Object
- Lite::Utils::MdCode::Instance
- Defined in:
- lib/lite/utils/md_code/instance.rb
Class Method Summary collapse
Instance Method Summary collapse
- #consume(key, deplete) ⇒ Object
- #ensure_consumed! ⇒ Object
-
#initialize(snippets, usage) ⇒ Instance
constructor
A new instance of Instance.
- #snippet(key) ⇒ Object
- #snippet!(key) ⇒ Object
Constructor Details
#initialize(snippets, usage) ⇒ Instance
Returns a new instance of Instance.
17 18 19 |
# File 'lib/lite/utils/md_code/instance.rb', line 17 def initialize(snippets, usage) super(snippets.freeze, usage) end |
Class Method Details
.instance(snippets) ⇒ Object
13 14 15 |
# File 'lib/lite/utils/md_code/instance.rb', line 13 def self.instance(snippets) new snippets, {} end |
Instance Method Details
#consume(key, deplete) ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/lite/utils/md_code/instance.rb', line 29 def consume(key, deplete) raise Error, "Snippet not defined: #{key}" unless snippets.key?(key) raise Error, "Key already used: #{key}" if usage[key] == :depleted case usage[key] when nil, :consumed then usage[key] = deplete ? :depleted : :consumed end snippets[key] end |
#ensure_consumed! ⇒ Object
39 40 41 42 43 |
# File 'lib/lite/utils/md_code/instance.rb', line 39 def ensure_consumed! unconsumed = snippets.keys - usage.keys raise Error, "Some snippets haven't been consumed: #{unconsumed.join(', ')}" unless unconsumed.empty? end |
#snippet(key) ⇒ Object
25 26 27 |
# File 'lib/lite/utils/md_code/instance.rb', line 25 def snippet(key) consume key, false end |
#snippet!(key) ⇒ Object
21 22 23 |
# File 'lib/lite/utils/md_code/instance.rb', line 21 def snippet!(key) consume key, true end |