Class: Confluence::Metadata
- Inherits:
-
Object
- Object
- Confluence::Metadata
- Includes:
- Enumerable
- Defined in:
- lib/confluence/metadata.rb
Overview
Allows for reading and writing a metadata-list macro in a page’s content.
For example, if your wiki content is:
Hello, World!
{metadata-list}
|| Foo | Bar |
|| Fruit | Orange |
{metadata-list}
You may do this (assuming that you have the above text stored in a variable called ‘wiki_content’):
m = Confluence::Metadata.new(wiki_content)
puts m['Foo'] # outputs "Bar"
puts m['Fruit'] # outputs "Orange"
m['Fruit'] = "Banana"
puts m['Fruit'] # outputs "Banana"
m['Hello'] = "Goodbye"
… and your wiki_content now holds:
Hello, World!
{metadata-list}
|| Foo | Bar |
|| Fruit | Banana |
|| Hello | Goodbye |
{metadata-list}
Instance Method Summary collapse
- #[](metadata_key) ⇒ Object
- #[]=(metadata_key, value) ⇒ Object
- #each ⇒ Object
- #empty? ⇒ Boolean
- #include?(key) ⇒ Boolean (also: #has_key?)
-
#initialize(page) ⇒ Metadata
constructor
A new instance of Metadata.
-
#merge!(data) ⇒ Object
Merges a hash (or some other Hash-like, Enumerable object) into this metadata.
Constructor Details
#initialize(page) ⇒ Metadata
Returns a new instance of Metadata.
34 35 36 37 |
# File 'lib/confluence/metadata.rb', line 34 def initialize(page) raise ArgumentError.new("Argument passed to Confluence::Metadata must be a Confluence::Page") unless page.kind_of? Confluence::Page @page = page end |
Instance Method Details
#[](metadata_key) ⇒ Object
39 40 41 |
# File 'lib/confluence/metadata.rb', line 39 def []() [] end |
#[]=(metadata_key, value) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/confluence/metadata.rb', line 43 def []=(, value) = [] = value () value end |
#each ⇒ Object
50 51 52 53 |
# File 'lib/confluence/metadata.rb', line 50 def each = .each{|k,v| yield k,v} end |
#empty? ⇒ Boolean
60 61 62 |
# File 'lib/confluence/metadata.rb', line 60 def empty? .empty? end |
#include?(key) ⇒ Boolean Also known as: has_key?
55 56 57 |
# File 'lib/confluence/metadata.rb', line 55 def include?(key) not self.find{|k,v| k}.nil? end |
#merge!(data) ⇒ Object
Merges a hash (or some other Hash-like, Enumerable object) into this metadata. That is, key-value pairs from the given object will be added as metadata to this Confluence::Metadata’s page, overriding any existing duplicate keys.
67 68 69 70 71 |
# File 'lib/confluence/metadata.rb', line 67 def merge!(data) data.each do |k,v| self[k] = v end end |