Module: Ezcript::ApplicationHelperExtension::InstanceMethods

Defined in:
lib/ezcript/application_helper_extension.rb

Instance Method Summary collapse

Instance Method Details

#yield_local_scriptsObject

If declared will include “controller#scripts and controller#action_scripts to the layout”



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/ezcript/application_helper_extension.rb', line 23

def yield_local_scripts
  scripts = []
  if "production".eql?(Rails.env)
    js_cache_dir = File.join(Rails.root, "tmp", "cache", "js")
    FileUtils.mkdir_p(js_cache_dir) unless File.exist?(js_cache_dir)
  end

  ["scripts", "#{action_name}_scripts"].each do |f|
    partial_src = File.join(Rails.root, "app", "views", controller_name, "_#{f}.js.erb")
    if File.exist?(partial_src)
      
      src = render(:partial => "#{controller_name}/#{f}.js")

      if "production".eql?(Rails.env)
        js_src = File.join(js_cache_dir, "#{controller_name}_#{File.basename(f, ".erb")}.min.js")
        unless File.exist?(js_src)
          File.open(js_src, "w") {|js_f| js_f.puts(JSMin.minify(src))}
        end
        src = render(:file => js_src)
      end
      scripts << src
    end
  end
  render :inline => scripts.join("\n")
end

#yield_local_stylesObject



49
50
51
52
53
54
55
# File 'lib/ezcript/application_helper_extension.rb', line 49

def yield_local_styles
  scripts = []
  ["styles", "#{action_name}_styles"].each do |f|
    scripts << render(:partial => "#{controller_name}/#{f}.css") if File.exist?(File.join(Rails.root, "app", "views", controller_name, "_#{f}.css.erb"))
  end
  render :inline => scripts.join("\n")
end

#yield_or_inline(yield_name, partial_name = nil, &block) ⇒ Object

yield for content_for, but will display default contents if content_for is not given



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/ezcript/application_helper_extension.rb', line 10

def yield_or_inline(yield_name, partial_name = nil, &block)
  if @_content_for[yield_name] && !@_content_for[yield_name].empty?
    @_content_for[yield_name]
  else
    if block_given?
      render :inline => capture(&block)
    else
      render :partial => partial_name if partial_name
    end
  end
end