module Snippr::ViewHelper
Public Instance Methods
snippr(*args) { |content| ... }
click to toggle source
Returns a snippr specified via args
.
# File lib/snippr/view_helper.rb, line 16 def snippr(*args) snip = Snip.new *add_view_to_snippr_args(args) content = snip.content.html_safe if block_given? if snip.missing? || snip.blank? concat content elsif content.strip.present? yield content end 0 else extend_snip_content(content, snip) end end
snippr_with_path(*args, &block)
click to toggle source
# File lib/snippr/view_helper.rb, line 32 def snippr_with_path(*args, &block) path = if controller_name == "pages" params[:id].split('/') else [controller_name, params[:action]] end.compact.map { |e| e.to_s.camelize(:lower).to_sym } snippr(*(path + args), &block) end
Private Instance Methods
add_view_to_snippr_args(args)
click to toggle source
# File lib/snippr/view_helper.rb, line 43 def add_view_to_snippr_args(args) variables = args.last.kind_of?(Hash) ? args.pop : {} variables[:view] = self args << variables args end
extend_snip_content(content, snip)
click to toggle source
# File lib/snippr/view_helper.rb, line 50 def extend_snip_content(content, snip) content.class_eval %( def missing? #{snip.missing?} end def exists? #{!snip.missing?} end def meta(key = nil) meta = #{snip.meta.inspect} key ? meta[key] : meta end ) content end