Module: ScribblerContentHelper

Included in:
ScribblerContentCreator
Defined in:
app/helpers/scribbler_content_helper.rb

Instance Method Summary collapse

Instance Method Details

#scribbler_container(container_name, options = {}) {|container| ... } ⇒ Object

Yields:

  • (container)


3
4
5
6
7
8
9
# File 'app/helpers/scribbler_content_helper.rb', line 3

def scribbler_container(container_name, options = {}, &block)
  container_name = "#{container_name}-#{options[:element].page.name}-#{options[:element].id}" if options[:element]
  q = {:name => container_name, :scaleable => (options[:scaleable].nil? ? false : options[:scaleable]), :element_id => (options[:element] ? options[:element].id : nil)}
  container = ScribblerContainer.where(:name => container_name).first || ScribblerContainer.create(q)
  container.update_attributes(:scaleable => options[:scaleable]) if options[:scaleable] && container.scaleable != options[:scaleable]
  yield(container)
end

#scribbler_element(container, group, type, name, options = {}, &block) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'app/helpers/scribbler_content_helper.rb', line 19

def scribbler_element(container, group, type, name, options = {}, &block)
  if block_given?
    options[:default] = capture(&block).html_safe.strip.force_encoding("UTF-8")
  end
  
  if options[:i18n]
    group = "#{group}-#{I18n.locale}"
    options[:locale] = I18n.locale
    options[:localized] = true
  else
    options[:locale] = nil
    options[:localized] = false
  end
  
  scribbler_group(container.to_s, group.to_s, options.slice(:locale, :localized, :default)) do |g|
    v = g.send(type.to_s, name.to_s, options)
    if v.blank? && options[:default]
      options[:default].try(:html_safe) || options[:default]
    else
      return v.try(:html_safe) || v
    end
  end
end

#scribbler_group(container, group, options = {}, &block) ⇒ Object



11
12
13
14
15
16
17
# File 'app/helpers/scribbler_content_helper.rb', line 11

def scribbler_group(container, group, options = {}, &block)
  scribbler_container(container) do |c|
    c.scribbler_group(group, options) do |g|
      yield(g)
    end
  end
end