table-for 0.0.16 → 0.0.17

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.16
1
+ 0.0.17
@@ -1,23 +1,23 @@
1
- <%= table.define :table do |options| %>
1
+ <% table.define :table do |options| %>
2
2
  <%= content_tag :table, options[:table_html] do %>
3
3
  <%= table.use :thead %>
4
4
  <%= table.use :tbody %>
5
5
  <% end %>
6
6
  <% end %>
7
7
 
8
- <%= table.define :thead do |options| %>
8
+ <% table.define :thead do |options| %>
9
9
  <%= content_tag :thead, options[:thead_html] do %>
10
10
  <%= table.use :header_row %>
11
11
  <% end %>
12
12
  <% end %>
13
13
 
14
- <%= table.define :header_row do |options| %>
14
+ <% table.define :header_row do |options| %>
15
15
  <%= content_tag :tr, options[:header_row_html] do %>
16
16
  <%= table.use :header_columns %>
17
17
  <% end %>
18
18
  <% end %>
19
19
 
20
- <%= table.define :header_columns do |options| %>
20
+ <% table.define :header_columns do |options| %>
21
21
  <% table.columns.each do |column| %>
22
22
  <% header_html = options.merge(column.options)[:header_html] %>
23
23
  <% if options.merge(column.options)[:sortable] %>
@@ -36,7 +36,7 @@
36
36
  <% end %>
37
37
 
38
38
  <% table.columns.each do |column| %>
39
- <%= table.define "#{column.name.to_s}_header", :column => column do |options| %>
39
+ <% table.define "#{column.name.to_s}_header", :column => column do |options| %>
40
40
  <% if options[:sortable] %>
41
41
  <%= table.use "#{options[:column].name.to_s}_header_sortable_link", options %>
42
42
  <% else %>
@@ -44,12 +44,12 @@
44
44
  <% end %>
45
45
  <% end %>
46
46
 
47
- <%= table.define "#{column.name.to_s}_header_sortable_link", :column => column do |options| %>
47
+ <% table.define "#{column.name.to_s}_header_sortable_link", :column => column do |options| %>
48
48
  <%= table.use :header_sortable_link, options %>
49
49
  <% end %>
50
50
  <% end %>
51
51
 
52
- <%= table.define :header_sortable_link do |options| %>
52
+ <% table.define :header_sortable_link do |options| %>
53
53
  <% order = options[:order] ? options[:order].to_s : options[:column].name.to_s %>
54
54
  <% label = (options[:label] ? options[:label] : options[:column].name.to_s.titleize) %>
55
55
  <% sort_mode = ((params[:order] != order or params[:sort_mode] == "desc") ? "asc" : "desc") %>
@@ -60,25 +60,25 @@
60
60
  <%= link_to label, "#{url}?#{parameters.to_query}" %>
61
61
  <% end %>
62
62
 
63
- <%= table.define :tbody do |options| %>
63
+ <% table.define :tbody do |options| %>
64
64
  <%= content_tag :tbody, options[:tbody_html] do %>
65
65
  <%= table.use :rows %>
66
66
  <% end %>
67
67
  <% end %>
68
68
 
69
- <%= table.define :rows do %>
69
+ <% table.define :rows do %>
70
70
  <% records.each do |record| %>
71
71
  <%= table.use :row, record %>
72
72
  <% end %>
73
73
  <% end %>
74
74
 
75
- <%= table.define :row do |record, options| %>
75
+ <% table.define :row do |record, options| %>
76
76
  <%= content_tag :tr, table_for_options(options[:row_html], options) do %>
77
77
  <%= table.use :data_columns, record, options %>
78
78
  <% end %>
79
79
  <% end %>
80
80
 
81
- <%= table.define :data_columns do |record, options| %>
81
+ <% table.define :data_columns do |record, options| %>
82
82
  <% table.columns.each do |column| %>
83
83
  <%= content_tag :td, options.merge(column.options)[:column_html] do %>
84
84
  <%= table.use column, record, options.merge(:column => column) %>
@@ -86,22 +86,23 @@
86
86
  <% end %>
87
87
  <% end %>
88
88
 
89
- <%= table.define :edit, :action => :edit, :link_label => "Edit" do |record, options| %>
89
+ <% table.define :edit, :action => :edit, :link_label => "Edit" do |record, options| %>
90
90
  <%= link_to options[:link_label], [options[:action], options[:scope], record].flatten, options[:link_html] %>
91
91
  <% end %>
92
92
 
93
- <%= table.define :show, :action => nil, :link_label => "Show" do |record, options| %>
93
+ <% table.define :show, :action => nil, :link_label => "Show" do |record, options| %>
94
94
  <%= link_to options[:link_label], [options[:action], options[:scope], record].flatten, options[:link_html] %>
95
95
  <% end %>
96
96
 
97
- <%= table.define :delete, :link_html => {}, :link_label => "Delete" do |record, options| %>
97
+ <% table.define :delete, :link_html => {}, :link_label => "Delete" do |record, options| %>
98
98
  <%= link_to options[:link_label], [options[:scope], record].flatten, {:method => "delete", :confirm => "Are you sure you want to delete this #{record.class.to_s.titleize}?"}.merge(options[:link_html]) %>
99
99
  <% end %>
100
100
 
101
101
  <% table.columns.each do |column| %>
102
- <%= table.define column.name, :column => column do |record, options| %>
102
+ <% table.define column.name, :column => column do |record, options| %>
103
103
  <%= record.send(options[:column].name) %>
104
104
  <% end %>
105
105
  <% end %>
106
106
 
107
+ <%# Now that all the blocks are defined, render the table %>
107
108
  <%= table.use :table %>
data/lib/table-for.rb CHANGED
@@ -2,7 +2,7 @@ require "action_view"
2
2
 
3
3
  $LOAD_PATH.unshift(File.dirname(__FILE__))
4
4
 
5
- require "table_for/table_for"
5
+ require "table_for/base"
6
6
  require "table_for/helper_methods"
7
7
  require "table_for/engine"
8
8
 
@@ -2,8 +2,8 @@ require 'building-blocks'
2
2
 
3
3
  module TableFor
4
4
  class Base < BuildingBlocks::Base
5
- alias columns block_positions
6
- alias column use
5
+ alias columns queued_blocks
6
+ alias column queue
7
7
 
8
8
  def header(name, options={}, &block)
9
9
  define("#{name.to_s}_header", options, &block)
@@ -1,6 +1,8 @@
1
1
  module TableFor
2
2
  module HelperMethods
3
3
  def table_for_options(options={}, parameters={})
4
+ return nil if options.nil?
5
+
4
6
  evaluated_options = {}
5
7
  options.each_pair { |k, v| evaluated_options[k] = (v.is_a?(Proc) ? v.call(parameters) : v)}
6
8
  evaluated_options
@@ -8,12 +10,10 @@ module TableFor
8
10
 
9
11
  def table_for(records, options={}, &block)
10
12
  options[:records] = records
11
- options[:row_html] = {:class => lambda { |parameters| cycle('odd', 'even')}} if options[:row_html].nil?
12
13
  options[:template] = "table_for/table_for"
13
14
  options[:templates_folder] = "table_for"
14
- options[:record_variable] = "records"
15
15
  options[:variable] = "table"
16
-
16
+
17
17
  TableFor::Base.new(self, options, &block).render
18
18
  end
19
19
  end
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: 63
4
+ hash: 61
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 16
10
- version: 0.0.16
9
+ - 17
10
+ version: 0.0.17
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andrew Hunter
@@ -53,17 +53,45 @@ dependencies:
53
53
  version_requirements: &id003 !ruby/object:Gem::Requirement
54
54
  none: false
55
55
  requirements:
56
- - - "="
56
+ - - ">="
57
57
  - !ruby/object:Gem::Version
58
- hash: 17
58
+ hash: 15
59
59
  segments:
60
60
  - 0
61
61
  - 0
62
- - 7
63
- version: 0.0.7
62
+ - 8
63
+ version: 0.0.8
64
64
  prerelease: false
65
65
  type: :runtime
66
66
  requirement: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: jeweler
69
+ version_requirements: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ prerelease: false
79
+ type: :development
80
+ requirement: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ name: jeweler
83
+ version_requirements: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 0
91
+ version: "0"
92
+ prerelease: false
93
+ type: :development
94
+ requirement: *id005
67
95
  description: table-for is a table builder for an array of objects, easily allowing overriding of how any aspect of the table is generated
68
96
  email: hunterae@gmail.com
69
97
  executables: []
@@ -78,9 +106,9 @@ files:
78
106
  - VERSION
79
107
  - app/views/table_for/_table_for.html.erb
80
108
  - lib/table-for.rb
109
+ - lib/table_for/base.rb
81
110
  - lib/table_for/engine.rb
82
111
  - lib/table_for/helper_methods.rb
83
- - lib/table_for/table_for.rb
84
112
  - rails/init.rb
85
113
  has_rdoc: true
86
114
  homepage: http://github.com/hunterae/table-for