Class: Confluence::Metadata

Inherits:
Object
  • Object
show all
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

Constructor Details

#initialize(page) ⇒ Metadata

Returns a new instance of Metadata.

Raises:

  • (ArgumentError)


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

#eachObject



50
51
52
53
# File 'lib/confluence/metadata.rb', line 50

def each
   = 
  .each{|k,v| yield k,v}
end

#empty?Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/confluence/metadata.rb', line 60

def empty?
  .empty?
end

#include?(key) ⇒ Boolean Also known as: has_key?

Returns:

  • (Boolean)


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