Sha256: f04c94c626dac3f96951246295bcd4471a4988ccc3e0d9fa140065aacacf794f

Contents?: true

Size: 1.56 KB

Versions: 3

Compression:

Stored size: 1.56 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 = {})
      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

3 entries across 3 versions & 1 rubygems

Version Path
BrianTheCoder-ratpack-0.2.2 lib/ratpack/html_helpers.rb
BrianTheCoder-ratpack-0.2.3 lib/ratpack/html_helpers.rb
BrianTheCoder-ratpack-0.2.4 lib/ratpack/html_helpers.rb