Skip to content

Commit

Permalink
handle opts for header coreecty
Browse files Browse the repository at this point in the history
  • Loading branch information
tsonntag committed Mar 5, 2012
1 parent b7ae90f commit 6ce308d
Showing 1 changed file with 11 additions and 13 deletions.
24 changes: 11 additions & 13 deletions lib/gitter/column.rb
Expand Up @@ -5,9 +5,15 @@ class Column
attr_reader :grid, :name, :headers, :attr, :block, :order, :order_desc attr_reader :grid, :name, :headers, :attr, :block, :order, :order_desc


def initialize grid, name, opts = {}, &block def initialize grid, name, opts = {}, &block
@grid, @name = grid, name @grid, @name, @block = grid, name, block
@attr = opts.delete(:column){name}
@order = begin
order = opts.delete :order
order = attr if order == true
end
@order_desc = opts.delete :order_desc
if opts.has_key?(:header) || opts.has_key?(:headers) # handle :header => false correctly if opts.has_key?(:header) || opts.has_key?(:headers) # handle :header => false correctly
header_opts = opts.fetch(:header){opts.fetch(:headers)} header_opts = opts.delete(:header){opts.delete(:headers)}
@headers = [header_opts].flatten.map do |header_opt| @headers = [header_opts].flatten.map do |header_opt|
case header_opt case header_opt
when Hash when Hash
Expand All @@ -22,14 +28,6 @@ def initialize grid, name, opts = {}, &block
else else
@headers = [Header.new(grid, name, nil, opts.merge(:column => self))] @headers = [Header.new(grid, name, nil, opts.merge(:column => self))]
end end
@attr = opts[:column] || name
@order = case opts[:order]
when true then attr
when false, nil then nil
else opts[:order]
end
@order_desc = opts[:order_desc]
@block = block
end end


def cell model def cell model
Expand Down Expand Up @@ -81,12 +79,12 @@ def ordered?
@ordered ||= params[:order] == name.to_s @ordered ||= params[:order] == name.to_s
end end


def link label = nil, params = {}, opts = {} def link label = nil, params = {}, options = {}
label ||= headers.first.label label ||= headers.first.label
if @order if @order
img = order_img_tag(opts) img = order_img_tag(options)
label = h.content_tag :span, img + label if ordered? label = h.content_tag :span, img + label if ordered?
h.link_to label, grid.scoped_params(order_params.merge(params)), opts h.link_to label, grid.scoped_params(order_params.merge(params)), options
else else
label label
end end
Expand Down

0 comments on commit 6ce308d

Please sign in to comment.