Sha256: 628b49b8162ade313deb920e22e5a682ff91634871ae63b01b9ac5dfdbbb01dd

Contents?: true

Size: 1.48 KB

Versions: 1

Compression:

Stored size: 1.48 KB

Contents

module RatPack
  module HtmlHelpers    
    def link_to(name, url, options = {})
      defaults = {:href => url}
      tag(:a,name,defaults.merge(options))
    end
    
    def image_tag(file,attrs = {})
      defaults = {:src => "/images/#{file}"}
      self_closing_tag(:img,defaults.merge(options))
    end

    def css_link(name, options = {})
      name = "/stylesheets/#{name}.css" unless remote_asset?(name)
      defaults = {:href => name, :media => "screen",
        :rel => "stylesheet", :type => "text/css"}
      self_closing_tag(:link,defaults.merge(options))
    end

    def js_link(name, options = {})
      name = "/javascripts/#{name}.js" unless remote_asset?(name)
      defaults = {:src => name, :type => "text/javascript"}
      tag(:script,defaults.merge(options))
    end
    
    def partial(template, opts = {})
      template_engine = opts.delete(:template) || :erb
      opts.merge!(:layout => false)
      template = :"partials/#{template}"
      if collection = opts.delete(:collection) then
        collection.inject([]) do |buffer, member|
          buffer << send(template_engine,template, opts.merge(
                                    :layout => false, 
                                    :locals => {template.to_sym => member}
                                  )
                       )
        end.join("\n")
      else
        send(template_engine,template, opts)
      end
    end
    
    private
    
    def remote_asset?(uri)
      uri =~ %r[^\w+://.+]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
BrianTheCoder-ratpack-0.2.0 lib/ratpack/html_helpers.rb