Module: Middleman::OGP::Helper

Includes:
Padrino::Helpers::TagHelpers
Defined in:
lib/middleman-ogp/extension.rb

Class Method Summary collapse

Class Method Details

.og_tag(key, obj = nil, prefix = 'og', &block) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/middleman-ogp/extension.rb', line 49

def self.og_tag(key, obj = nil, prefix = 'og', &block)
  case key
  when String, Symbol
    key = [key]
  when Hash
    prefix = obj if obj
    obj = key
    key = []
  end
  case obj
  when Hash
    obj.map{|k, v|
      og_tag(k.to_s.empty? ? key.dup : (key.dup << k.to_s) , v, prefix, &block)
    }.join("\n")
  when Array
    obj.map{|v|
      og_tag(key, v, prefix, &block)
    }.join("\n")
  else
    block.call [prefix].concat(key).join(':'), obj.to_s
  end
end

.ogp_tags(opts = {}, &block) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/middleman-ogp/extension.rb', line 27

def self.ogp_tags(opts = {}, &block)
  opts ||= {}
  options = (namespaces.respond_to?(:to_h) ? namespaces.to_h : namespaces || {}).dup
  opts.stringify_keys!
  options.stringify_keys!
  options = options.deep_merge4(opts) {|k, old_value, new_value|
    if old_value.is_a?(Hash)
      if new_value.is_a? Hash
        old_value.deep_merge4 new_value
      else
        old_value[''] = new_value
        old_value
      end
    else
      new_value
    end
  }.symbolize_keys
  options.map{|k, v|
    og_tag([], v, k, &block)
  }.join("\n")
end