module Sunrise module Views module Helper def javascript(*args) content_for(:head) { javascript_include_tag(*args) } end def stylesheet(*args) content_for(:head) { stylesheet_link_tag(*args) } end def link_by_href(name, options={}) link_to name, name, options end def link_to_unless_current_span(name, options = {}, html_options = {}, &block) link_to_unless_span current_page?(options), name, options, html_options, &block end def link_to_unless_span(condition, name, options = {}, html_options = {}, &block) if condition if block_given? block.arity <= 1 ? yield(name) : yield(name, options, html_options) else content_tag(:span, name, html_options) end else link_to(name, options, html_options) end end def link_to_unless_current_tag(name, options = {}, html_options = {}, &block) link_to_unless_tag current_page?(options), name, options, html_options, &block end def link_to_if_tag(condition, name, options = {}, html_options = {}, &block) tag_name = html_options.delete(:tag) || :span if condition link_to(name, options, html_options) else if block_given? block.arity <= 1 ? yield(name) : yield(name, options, html_options) else content_tag(tag_name, name, html_options) end end end def link_to_unless_tag(condition, name, options = {}, html_options = {}, &block) tag_name = html_options.delete(:tag) || :span unless condition link_to(name, options, html_options) else if block_given? block.arity <= 1 ? yield(name) : yield(name, options, html_options) else content_tag(tag_name, name, html_options) end end end # swf_object def swf_object(swf, id, width, height, flash_version, options = {}) options.symbolize_keys! params = options.delete(:params) || {} attributes = options.delete(:attributes) || {} flashvars = options.delete(:flashvars) || {} attributes[:classid] ||= "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" attributes[:id] ||= id attributes[:name] ||= id output_buffer = ActiveSupport::SafeBuffer.new if options[:create_div] output_buffer << content_tag(:div, "This website requires Flash player #{flash_version} or higher.", :id => id) end js = [] js << "var params = {#{params.to_a.map{|item| "#{item[0]}:'#{item[1]}'" }.join(',')}};" js << "var attributes = {#{attributes.to_a.map{|item| "#{item[0]}:'#{item[1]}'" }.join(',')}};" js << "var flashvars = {#{flashvars.to_a.map{|item| "#{item[0]}:'#{item[1]}'" }.join(',')}};" js << "swfobject.embedSWF('#{swf}', '#{id}', '#{width}', '#{height}', '#{flash_version}', '/swf/expressInstall.swf', flashvars, params, attributes);" output_buffer << javascript_tag(js.join) output_buffer end def encode_email(email_address, options = {}) email_address = email_address.to_s string = '' "document.write('#{email_address}');".each_byte do |c| string << sprintf("%%%x", c) end "" end end end end