Class: Benoit::PageMetadata::Container

Inherits:
Object
  • Object
show all
Defined in:
lib/benoit/page_metadata/container.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.[](hash) ⇒ Object



5
6
7
8
9
10
# File 'lib/benoit/page_metadata/container.rb', line 5

def self.[](hash)
  hash.inject(new) do |inst,(key,value)|
    inst[key] = value
    inst
  end
end

Instance Method Details

#[](key) ⇒ Object



18
19
20
21
# File 'lib/benoit/page_metadata/container.rb', line 18

def [](key)
  return unless respond_to? key
  send key
end

#[]=(key, value) ⇒ Object



12
13
14
15
16
# File 'lib/benoit/page_metadata/container.rb', line 12

def []=(key,value)
  create_method key do
    value
  end
end

#clearObject



42
43
44
45
46
# File 'lib/benoit/page_metadata/container.rb', line 42

def clear
  keys.each do |key|
    delete key
  end
end

#delete(key) ⇒ Object



38
39
40
# File 'lib/benoit/page_metadata/container.rb', line 38

def delete(key)
  destroy_method(key)
end

#fetch(key) ⇒ Object

Raises:

  • (KeyError)


23
24
25
26
# File 'lib/benoit/page_metadata/container.rb', line 23

def fetch(key)
  raise KeyError.new(key) unless key?(key)
  self[key]
end

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

Returns:

  • (Boolean)


52
53
54
# File 'lib/benoit/page_metadata/container.rb', line 52

def key?(key)
  respond_to? key
end

#keysObject



28
29
30
# File 'lib/benoit/page_metadata/container.rb', line 28

def keys
  singleton_class.instance_methods(false)
end

#to_hashObject



48
49
50
# File 'lib/benoit/page_metadata/container.rb', line 48

def to_hash
  Hash[keys.zip(values)]
end

#valuesObject



32
33
34
35
36
# File 'lib/benoit/page_metadata/container.rb', line 32

def values
  keys.map do |key|
    send key
  end
end