table_for 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -37,7 +37,7 @@ Or:
37
37
  <% end %>
38
38
  <% end %>
39
39
 
40
- The footer if not shown if there is the view helper "admin?" is defined and returns false.
40
+ The footer and rows can be filtered out through the TableFor.footer_filter/row_filter methods.
41
41
 
42
42
  == Credits and contributors
43
43
 
data/lib/table_for.rb CHANGED
@@ -4,4 +4,19 @@ module TableFor
4
4
  autoload :Table, 'table_for/table'
5
5
  autoload :TableBuilder, 'table_for/table_builder'
6
6
  autoload :RowBuilder, 'table_for/row_builder'
7
- end
7
+
8
+ class << self
9
+ def footer_filter(&block)
10
+ @footer_filter = block if block
11
+ @footer_filter
12
+ end
13
+
14
+ def row_filter(&block)
15
+ @row_filter = block if block
16
+ @row_filter
17
+ end
18
+ end
19
+ end
20
+
21
+ TableFor.footer_filter { |table| true }
22
+ TableFor.row_filter { |table, record| true }
@@ -20,15 +20,17 @@ module TableFor
20
20
  def body(*columns, &block)
21
21
  content_tag(:tbody) do
22
22
  table.row_builders.map do |builder|
23
- content_tag(:tr) do
24
- if block then capture(builder, &block) else builder.cells(*columns) end
23
+ if TableFor.row_filter.call(table, builder.record)
24
+ content_tag(:tr) do
25
+ if block then capture(builder, &block) else builder.cells(*columns) end
26
+ end
25
27
  end
26
- end.join.html_safe
28
+ end.compact.join.html_safe
27
29
  end
28
30
  end
29
31
 
30
32
  def foot(&block)
31
- if admin?
33
+ if TableFor.footer_filter.call(table)
32
34
  content_tag(:tfoot) do
33
35
  content_tag(:tr) do
34
36
  content_tag(:td, capture(&block), :colspan => table.columns.size)
@@ -36,10 +38,5 @@ module TableFor
36
38
  end.html_safe
37
39
  end
38
40
  end
39
-
40
- def admin?
41
- return true unless template.respond_to?(:admin?)
42
- template.admin?
43
- end
44
41
  end
45
42
  end
@@ -1,3 +1,3 @@
1
1
  module TableFor
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -6,6 +6,5 @@ require 'rails'
6
6
  require 'rubygems'
7
7
  require 'bundler/setup'
8
8
  require "rails/test_help"
9
-
10
- Dir["#{File.expand_path(File.dirname(__FILE__))}/../lib/table_for/*.rb"].each {|f| require(f) unless f =~ /version\.rb$/ }
11
- Dir["#{File.expand_path(File.dirname(__FILE__))}/support/*.rb"].each {|f| require(f) }
9
+ require 'table_for'
10
+ require 'support/user'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table_for
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Nicklas Ramh\xC3\xB6j"
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-11-02 00:00:00 +01:00
19
+ date: 2011-03-01 00:00:00 +01:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency