Module: Item::ViewHelpers

Defined in:
lib/item/view_helpers.rb

Defined Under Namespace

Modules: Util

Instance Method Summary collapse

Instance Method Details

#prop(key, value = nil, options = {}, &block) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/item/view_helpers.rb', line 9

def prop(key, value = nil, options = {}, &block)
  @_item_enabled = true unless defined?(@_item_enabled)

  if key.is_a?(Hash)
    key.map do |key, value|
      if value.is_a?(Symbol)
        link_prop(key, value) if @_item_enabled
      else
        meta_prop(key, value) if @_item_enabled
      end
    end.compact.join("\n").html_safe
  elsif value.is_a?(Symbol)
    link_prop(key, value) if @_item_enabled
  else
    options, value = value, nil if value.is_a?(Hash)
    itemprop = Util.itemprop(key)

    item_enabled_old = @_item_enabled
    @_item_enabled = item_enabled_old && options.fetch(:if, !options.fetch(:unless, false))
    
    options.delete(:if)
    options.delete(:unless)

    content = if block
      tag = options.delete(:tag) || :div
      itemtype = Util.itemtype(options.delete(:type) || key)
      options = { itemprop: itemprop, itemscope: "itemscope", itemtype: itemtype }.merge(options) if @_item_enabled
      (tag, options, &block)
    else
      tag = options.delete(:tag) || :span
      options = { itemprop: itemprop }.merge(options) if @_item_enabled
      (tag, value, options)
    end

    @_item_enabled = item_enabled_old

    content
  end
end

#scope(key, options = {}, &block) ⇒ Object



3
4
5
6
7
# File 'lib/item/view_helpers.rb', line 3

def scope(key, options = {}, &block)
  tag = options.delete(:tag) || :div
  tag_options = { itemscope: "itemscope", itemtype: Util.itemtype(key) }.merge(options)
  (tag, tag_options, &block)
end