table-for 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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