Sha256: dabf27fd2a3d8d946bec7d56a0b136ecbd44d4e5505fc29916370c6d0376cce0

Contents?: true

Size: 1.4 KB

Versions: 1

Compression:

Stored size: 1.4 KB

Contents

module RatPack
  module HtmlHelpers  
    def pluralize(str,num)
      num.to_i > 1 ? str.plural : str.singular
    end
      
    def link_to(name, url, options = {})
      defaults = {:href => url}
      tag(:a,name,defaults.merge(options))
    end
    
    def image_tag(file,attrs = {})
      file = "/images/#{file}" unless remote_asset?(file)
      defaults = {:src => 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 = {})
      engine = opts.delete(:template) || :erb
      opts.merge!(:layout => false)
      path = :"partials/#{template}"
      if collection = opts.delete(:collection) then
        collection.map do |member|
          send(engine,path, opts.merge(:locals => {template.to_sym => member}))
        end.join("\n")
      else
        send(engine,path, 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.3.1 lib/ratpack/html_helpers.rb