table-for 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +7 -1
- data/README.rdoc +70 -9
- data/VERSION +1 -1
- data/app/views/table_for/_table_for.html.erb +9 -6
- data/lib/table_for/view_additions.rb +3 -7
- data/spec/table_for/view_additions_spec.rb +7 -24
- metadata +214 -10
data/CHANGELOG.rdoc
CHANGED
@@ -4,4 +4,10 @@
|
|
4
4
|
|
5
5
|
1.2.0 (February 5, 2012)
|
6
6
|
|
7
|
-
* Upgraded dependency on BuildingBlocks to at least version 1.2.0
|
7
|
+
* Upgraded dependency on BuildingBlocks to at least version 1.2.0
|
8
|
+
|
9
|
+
1.2.1 (February 9, 2012)
|
10
|
+
|
11
|
+
* Moved table_for_evaluated_options method into BuildingBlocks gem and renamed to evaluated_procs
|
12
|
+
* Also now utilizing a method created in BuildingBlocks called evaluated_proc
|
13
|
+
* The url for an edit, show, and delete link can now be a Proc that takes the current row's domain object as a paramter
|
data/README.rdoc
CHANGED
@@ -22,19 +22,19 @@ In users_controller.rb (index action)
|
|
22
22
|
|
23
23
|
== Sample Usage
|
24
24
|
<%= table_for @users, :table_html => {:style => "border: 1px solid black"},
|
25
|
-
:sortable => true,
|
25
|
+
:sortable => true, :sort_url => users_path,
|
26
26
|
:row_html => {:class => lambda { cycle('even', 'odd')},
|
27
27
|
:id => lambda {|user| "user-#{user.id}"}} do |table| %>
|
28
|
-
<%= table.column :edit %>
|
28
|
+
<%= table.column :edit, :link_label => "Modify" %>
|
29
29
|
<%= table.column :show %>
|
30
30
|
<%= table.column :email, :label => "Email Address" %>
|
31
31
|
<%= table.column :label => "Full Name", :sortable => false, :header_html => {:style => "color:orange"} do |user| %>
|
32
32
|
<%= "#{user.first_name} #{user.last_name}" %>
|
33
33
|
<% end %>
|
34
|
-
<%= table.column :delete %>
|
34
|
+
<%= table.column :delete, :confirm => "Are you sure?" %>
|
35
35
|
<% end %>
|
36
36
|
|
37
|
-
== Specifying the
|
37
|
+
== Specifying the Columns to Use
|
38
38
|
<%= table_for @users do |table| %>
|
39
39
|
<% table.column :email %>
|
40
40
|
<% table.column :first_name %>
|
@@ -42,30 +42,91 @@ In users_controller.rb (index action)
|
|
42
42
|
<% end %>
|
43
43
|
|
44
44
|
Here, each column will send its respective column name to the user object: user.send(:email), user.send(:first_name), user.send(:last_name),
|
45
|
-
to determine what data to output in each column
|
45
|
+
to determine what data to output in each column.
|
46
46
|
|
47
|
-
== Specifying the
|
47
|
+
== Specifying the Label to Use for a Column
|
48
48
|
<%= table_for @users do |table| %>
|
49
49
|
<% table.column :email, :label => "Email Address" %>
|
50
50
|
<% end %>
|
51
51
|
|
52
|
-
==
|
52
|
+
== Overriding the Default Way of Rendering a Column
|
53
53
|
<%= table_for @users do |table| %>
|
54
54
|
<% table.column :name do |user| %>
|
55
55
|
<%= "#{user.first_name} #{user.last_name}" %>
|
56
56
|
<% end %>
|
57
57
|
<% end %>
|
58
58
|
|
59
|
-
|
59
|
+
<!-- Or, since the name of the column is no longer used to figure out what data to render: -->
|
60
60
|
<%= table_for @users do |table| %>
|
61
61
|
<% table.column :full_name do |user| %>
|
62
62
|
<%= "#{user.first_name} #{user.last_name}" %>
|
63
63
|
<% end %>
|
64
64
|
<% end %>
|
65
65
|
|
66
|
-
Or the block name could
|
66
|
+
<!-- Or the block name could be removed altogether and replaced with a label: -->
|
67
67
|
<%= table_for @users do |table| %>
|
68
68
|
<% table.column :label => "Full Name" do |user| %>
|
69
69
|
<%= "#{user.first_name} #{user.last_name}" %>
|
70
70
|
<% end %>
|
71
|
+
<% end %>
|
72
|
+
|
73
|
+
== Specifying Sortability
|
74
|
+
<!-- Globally: -->
|
75
|
+
<%= table_for @users, :sortable => true, :sort_url => users_path do |table| %>
|
76
|
+
<% table.column :id, :sortable => false %>
|
77
|
+
<% table.column :email %>
|
78
|
+
<% table.column :name, :order => "first_name,last_name" do |user| %>
|
79
|
+
<%= "#{user.first_name} #{user.last_name}" %>
|
80
|
+
<% end %>
|
81
|
+
<% end %>
|
82
|
+
|
83
|
+
<!-- Column by column basis: -->
|
84
|
+
<%= table_for @users, :sort_url => users_path do |table| %>
|
85
|
+
<% table.column :id %>
|
86
|
+
<% table.column :email, :sortable => true %>
|
87
|
+
<% table.column :name, :order => "first_name,last_name", :sortable => true do |user| %>
|
88
|
+
<%= "#{user.first_name} #{user.last_name}" %>
|
89
|
+
<% end %>
|
90
|
+
<% end %>
|
91
|
+
|
92
|
+
== Specifying the Table HTML
|
93
|
+
<%= table_for @users, :table_html => {:class => "table-for-table", :style => "border:1px solid black"} %>
|
94
|
+
|
95
|
+
== Specifying the Row HTML
|
96
|
+
<!-- Header row -->
|
97
|
+
<%= table_for @users, :header_row_html => {:style => "background-color:blue", :class => "table-header"} do |table| %>
|
98
|
+
<% table.column :email %>
|
99
|
+
<% end %>
|
100
|
+
|
101
|
+
<!-- Data rows -->
|
102
|
+
<%= table_for @users, :row_html => {:style => "background-color:blue",
|
103
|
+
:class => lambda {"table-row #{cycle('even', 'odd')}"},
|
104
|
+
:id => lambda {|user| "user-#{user.id}"}} do |table| %>
|
105
|
+
<% table.column :email %>
|
106
|
+
<% end %>
|
107
|
+
|
108
|
+
== Specifying the Column HTML
|
109
|
+
<!-- Header columns -->
|
110
|
+
<%= table_for @users, :header_html => {:class => lambda {|column| "header-column #{column.name}"} } do |table| %>
|
111
|
+
<!-- Override this columns' header's html -->
|
112
|
+
<% table.column :email, :header_html => {:style => "color: red"} %>
|
113
|
+
|
114
|
+
<% table.column :first_name %>
|
115
|
+
<% table.column :last_name %>
|
116
|
+
<% end %>
|
117
|
+
|
118
|
+
<!-- Data columns -->
|
119
|
+
<%= table_for @users, :column_html => {:class => lambda {|column| "data-column #{column.name}"} } do |table| %>
|
120
|
+
<!-- Override this column's html -->
|
121
|
+
<% table.column :email, :column_html => {:style => "background-color: red"} %>
|
122
|
+
|
123
|
+
<% table.column :first_name %>
|
124
|
+
<% table.column :last_name %>
|
125
|
+
<% end %>
|
126
|
+
|
127
|
+
== Using Show, Edit, and Delete Columns
|
128
|
+
<%= table_for @users do |table| %>
|
129
|
+
<% table.column :edit, :url => lambda {|user| edit_user_path(user) } %>
|
130
|
+
<% table.column :show %>
|
131
|
+
<% table.column :show %>
|
71
132
|
<% end %>
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.1
|
@@ -24,7 +24,7 @@
|
|
24
24
|
<% end %>
|
25
25
|
|
26
26
|
<% table.define :header_column do |column, options| %>
|
27
|
-
<%= content_tag :th, table_for_header_html(column, options) do %>
|
27
|
+
<%= content_tag :th, table_for_header_html(table, column, options) do %>
|
28
28
|
<%= table.render "#{column.name}_header", column, column.options %>
|
29
29
|
<% end %>
|
30
30
|
<% end %>
|
@@ -58,7 +58,7 @@
|
|
58
58
|
<% end %>
|
59
59
|
|
60
60
|
<% table.define :row do |record, options| %>
|
61
|
-
<%= content_tag :tr,
|
61
|
+
<%= content_tag :tr, table.evaluated_procs(record, options[:row_html]) do %>
|
62
62
|
<%= table.render :columns, record %>
|
63
63
|
<% end %>
|
64
64
|
<% end %>
|
@@ -70,23 +70,26 @@
|
|
70
70
|
<% end %>
|
71
71
|
|
72
72
|
<% table.define :column do |record, column, options| %>
|
73
|
-
<%= content_tag :td,
|
73
|
+
<%= content_tag :td, table.evaluated_procs(record, column, options[:column_html]) do %>
|
74
74
|
<%= table.render column.name, record, column, column.options %>
|
75
75
|
<% end %>
|
76
76
|
<% end %>
|
77
77
|
|
78
78
|
<% table.define :edit, :action => :edit, :link_label => "Edit" do |record, column, options| %>
|
79
|
-
|
79
|
+
<% url = options[:url] ? table.evaluated_proc(record, options[:url]) : [options[:action], options[:scope], record].flatten %>
|
80
|
+
<%= link_to options[:link_label], url, options[:link_html] %>
|
80
81
|
<% end %>
|
81
82
|
|
82
83
|
<% table.define :show, :action => nil, :link_label => "Show" do |record, column, options| %>
|
83
|
-
|
84
|
+
<% url = options[:url] ? table.evaluated_proc(record, options[:url]) : [options[:action], options[:scope], record].flatten %>
|
85
|
+
<%= link_to options[:link_label], url, options[:link_html] %>
|
84
86
|
<% end %>
|
85
87
|
|
86
88
|
<% table.define :delete, :action => nil, :link_html => {}, :link_label => "Delete" do |record, column, options| %>
|
89
|
+
<% url = options[:url] ? table.evaluated_proc(record, options[:url]) : [options[:action], options[:scope], record].flatten %>
|
87
90
|
<% confirm = options[:confirm] ? options[:confirm] : "Are you sure you want to delete this #{record.class.to_s.titleize}?" %>
|
88
91
|
<% method = options[:method] ? options[:method] : "delete" %>
|
89
|
-
<%= link_to options[:link_label],
|
92
|
+
<%= link_to options[:link_label], url, {:method => method, :confirm => confirm}.merge(options[:link_html]) %>
|
90
93
|
<% end %>
|
91
94
|
|
92
95
|
<% table.columns.each do |column| %>
|
@@ -2,16 +2,12 @@ module TableFor
|
|
2
2
|
module ViewAdditions
|
3
3
|
module ClassMethods
|
4
4
|
def table_for(records, options={}, &block)
|
5
|
+
options[:use_partials_for_before_and_after_hooks] = false
|
5
6
|
TableFor::Base.new(self, options.merge(:variable => "table", :records => records)).render_template("table_for/table_for", &block)
|
6
7
|
end
|
7
8
|
|
8
|
-
def
|
9
|
-
|
10
|
-
options.inject({}) { |hash, (k, v)| hash[k] = (v.is_a?(Proc) ? v.call(*args) : v); hash} unless options.nil?
|
11
|
-
end
|
12
|
-
|
13
|
-
def table_for_header_html(column, options={})
|
14
|
-
header_html = table_for_evaluated_options(column, options[:header_html])
|
9
|
+
def table_for_header_html(table, column, options={})
|
10
|
+
header_html = table.evaluated_procs(column, options[:header_html])
|
15
11
|
if options[:sortable]
|
16
12
|
order = options[:order] ? options[:order].to_s : column.name.to_s
|
17
13
|
sort_class = (params[:order] != order || params[:sort_mode] == "reset") ? "sorting" : (params[:sort_mode] == "desc" ? "sorting_desc" : "sorting_asc")
|
@@ -42,61 +42,44 @@ describe TableFor::ViewAdditions do
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
describe "table_for_evaluated_options method" do
|
46
|
-
it "should evaluate any proc options" do
|
47
|
-
proc1 = lambda {@view.cycle("even", "odd")}
|
48
|
-
proc2 = lambda {@view.cycle("one", "two")}
|
49
|
-
evaluated_options = @view.table_for_evaluated_options(:class => proc1, :id => proc2, :style => "color:red")
|
50
|
-
evaluated_options[:class].should eql "even"
|
51
|
-
evaluated_options[:id].should eql "one"
|
52
|
-
evaluated_options[:style].should eql "color:red"
|
53
|
-
end
|
54
|
-
|
55
|
-
it "should pass any additional arguments to evaluated procs" do
|
56
|
-
proc1 = lambda { |param1, param2| "user_#{param1}_#{param2}"}
|
57
|
-
evaluated_options = @view.table_for_evaluated_options(1, 2, :class => proc1)
|
58
|
-
evaluated_options[:class].should eql "user_1_2"
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
45
|
describe "table_for_header_html method" do
|
63
46
|
it "should return nil if header_html is not passed in" do
|
64
|
-
header_html = @view.table_for_header_html(@column)
|
47
|
+
header_html = @view.table_for_header_html(mock(:evaluated_procs => {}), @column)
|
65
48
|
header_html.should eql({})
|
66
49
|
end
|
67
50
|
|
68
51
|
it "should evaluate any procs for header_html" do
|
69
|
-
header_html = @view.table_for_header_html(@column, :header_html => {:class => lambda {|column| "#{column.name}_header"}})
|
52
|
+
header_html = @view.table_for_header_html(mock(:evaluated_procs => {:class => "#{@column.name}_header"}), @column, :header_html => {:class => lambda {|column| "#{column.name}_header"}})
|
70
53
|
header_html[:class].should eql "#{@column.name}_header"
|
71
54
|
end
|
72
55
|
|
73
56
|
it "should join the 'sorting' class with any other header_html class provided" do
|
74
57
|
@view.expects(:params).returns({})
|
75
|
-
header_html = @view.table_for_header_html(@column, :header_html => {:class => "c1 c2"}, :sortable => true)
|
58
|
+
header_html = @view.table_for_header_html(mock(:evaluated_procs => {:class => "c1 c2"}), @column, :header_html => {:class => "c1 c2"}, :sortable => true)
|
76
59
|
header_html[:class].should eql "c1 c2 sorting"
|
77
60
|
end
|
78
61
|
|
79
62
|
it "should add a 'sorting' class to the header_html class if a column is sortable" do
|
80
63
|
@view.expects(:params).returns({})
|
81
|
-
header_html = @view.table_for_header_html(@column, :sortable => true)
|
64
|
+
header_html = @view.table_for_header_html(mock(:evaluated_procs => {}), @column, :sortable => true)
|
82
65
|
header_html[:class].should eql "sorting"
|
83
66
|
end
|
84
67
|
|
85
68
|
it "should add a 'sorting_asc' class to the header_html class if a column is sortable and it is already sorted in asc order" do
|
86
69
|
@view.expects(:params).at_least_once.returns(:order => @column.name.to_s, :sort_mode => "asc")
|
87
|
-
header_html = @view.table_for_header_html(@column, :sortable => true)
|
70
|
+
header_html = @view.table_for_header_html(mock(:evaluated_procs => {}), @column, :sortable => true)
|
88
71
|
header_html[:class].should eql "sorting_asc"
|
89
72
|
end
|
90
73
|
|
91
74
|
it "should add a 'sorting_desc' class to the header_html class if a column is sortable and it is already sorted in desc order" do
|
92
75
|
@view.expects(:params).at_least_once.returns(:order => @column.name.to_s, :sort_mode => "desc")
|
93
|
-
header_html = @view.table_for_header_html(@column, :sortable => true)
|
76
|
+
header_html = @view.table_for_header_html(mock(:evaluated_procs => {}), @column, :sortable => true)
|
94
77
|
header_html[:class].should eql "sorting_desc"
|
95
78
|
end
|
96
79
|
|
97
80
|
it "should add a 'sorting' class to the header_html class if a column is sortable and it is reset mode" do
|
98
81
|
@view.expects(:params).at_least_once.returns(:order => @column.name.to_s, :sort_mode => "reset")
|
99
|
-
header_html = @view.table_for_header_html(@column, :sortable => true)
|
82
|
+
header_html = @view.table_for_header_html(mock(:evaluated_procs => {}), @column, :sortable => true)
|
100
83
|
header_html[:class].should eql "sorting"
|
101
84
|
end
|
102
85
|
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:
|
4
|
+
hash: 29
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 1.2.
|
9
|
+
- 1
|
10
|
+
version: 1.2.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrew Hunter
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-02-
|
18
|
+
date: 2012-02-09 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -55,12 +55,12 @@ dependencies:
|
|
55
55
|
requirements:
|
56
56
|
- - ">="
|
57
57
|
- !ruby/object:Gem::Version
|
58
|
-
hash:
|
58
|
+
hash: 25
|
59
59
|
segments:
|
60
60
|
- 1
|
61
61
|
- 2
|
62
|
-
-
|
63
|
-
version: 1.2.
|
62
|
+
- 3
|
63
|
+
version: 1.2.3
|
64
64
|
prerelease: false
|
65
65
|
type: :runtime
|
66
66
|
requirement: *id003
|
@@ -85,7 +85,7 @@ dependencies:
|
|
85
85
|
requirements:
|
86
86
|
- - ">="
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
hash: -
|
88
|
+
hash: -4164648240
|
89
89
|
segments:
|
90
90
|
- 2
|
91
91
|
- 0
|
@@ -187,7 +187,7 @@ dependencies:
|
|
187
187
|
requirements:
|
188
188
|
- - ">="
|
189
189
|
- !ruby/object:Gem::Version
|
190
|
-
hash: -
|
190
|
+
hash: -4164648240
|
191
191
|
segments:
|
192
192
|
- 2
|
193
193
|
- 0
|
@@ -289,7 +289,7 @@ dependencies:
|
|
289
289
|
requirements:
|
290
290
|
- - ">="
|
291
291
|
- !ruby/object:Gem::Version
|
292
|
-
hash: -
|
292
|
+
hash: -4164648240
|
293
293
|
segments:
|
294
294
|
- 2
|
295
295
|
- 0
|
@@ -370,6 +370,210 @@ dependencies:
|
|
370
370
|
prerelease: false
|
371
371
|
type: :development
|
372
372
|
requirement: *id024
|
373
|
+
- !ruby/object:Gem::Dependency
|
374
|
+
name: jeweler
|
375
|
+
version_requirements: &id025 !ruby/object:Gem::Requirement
|
376
|
+
none: false
|
377
|
+
requirements:
|
378
|
+
- - ">="
|
379
|
+
- !ruby/object:Gem::Version
|
380
|
+
hash: 3
|
381
|
+
segments:
|
382
|
+
- 0
|
383
|
+
version: "0"
|
384
|
+
prerelease: false
|
385
|
+
type: :development
|
386
|
+
requirement: *id025
|
387
|
+
- !ruby/object:Gem::Dependency
|
388
|
+
name: rspec-rails
|
389
|
+
version_requirements: &id026 !ruby/object:Gem::Requirement
|
390
|
+
none: false
|
391
|
+
requirements:
|
392
|
+
- - ">="
|
393
|
+
- !ruby/object:Gem::Version
|
394
|
+
hash: -4164648240
|
395
|
+
segments:
|
396
|
+
- 2
|
397
|
+
- 0
|
398
|
+
- 0
|
399
|
+
- beta
|
400
|
+
- 20
|
401
|
+
version: 2.0.0.beta.20
|
402
|
+
prerelease: false
|
403
|
+
type: :development
|
404
|
+
requirement: *id026
|
405
|
+
- !ruby/object:Gem::Dependency
|
406
|
+
name: mocha
|
407
|
+
version_requirements: &id027 !ruby/object:Gem::Requirement
|
408
|
+
none: false
|
409
|
+
requirements:
|
410
|
+
- - ">="
|
411
|
+
- !ruby/object:Gem::Version
|
412
|
+
hash: 3
|
413
|
+
segments:
|
414
|
+
- 0
|
415
|
+
version: "0"
|
416
|
+
prerelease: false
|
417
|
+
type: :development
|
418
|
+
requirement: *id027
|
419
|
+
- !ruby/object:Gem::Dependency
|
420
|
+
name: xml-simple
|
421
|
+
version_requirements: &id028 !ruby/object:Gem::Requirement
|
422
|
+
none: false
|
423
|
+
requirements:
|
424
|
+
- - ">="
|
425
|
+
- !ruby/object:Gem::Version
|
426
|
+
hash: 3
|
427
|
+
segments:
|
428
|
+
- 0
|
429
|
+
version: "0"
|
430
|
+
prerelease: false
|
431
|
+
type: :development
|
432
|
+
requirement: *id028
|
433
|
+
- !ruby/object:Gem::Dependency
|
434
|
+
name: supermodel
|
435
|
+
version_requirements: &id029 !ruby/object:Gem::Requirement
|
436
|
+
none: false
|
437
|
+
requirements:
|
438
|
+
- - ">="
|
439
|
+
- !ruby/object:Gem::Version
|
440
|
+
hash: 3
|
441
|
+
segments:
|
442
|
+
- 0
|
443
|
+
version: "0"
|
444
|
+
prerelease: false
|
445
|
+
type: :development
|
446
|
+
requirement: *id029
|
447
|
+
- !ruby/object:Gem::Dependency
|
448
|
+
name: sqlite3
|
449
|
+
version_requirements: &id030 !ruby/object:Gem::Requirement
|
450
|
+
none: false
|
451
|
+
requirements:
|
452
|
+
- - ">="
|
453
|
+
- !ruby/object:Gem::Version
|
454
|
+
hash: 3
|
455
|
+
segments:
|
456
|
+
- 0
|
457
|
+
version: "0"
|
458
|
+
prerelease: false
|
459
|
+
type: :development
|
460
|
+
requirement: *id030
|
461
|
+
- !ruby/object:Gem::Dependency
|
462
|
+
name: with_model
|
463
|
+
version_requirements: &id031 !ruby/object:Gem::Requirement
|
464
|
+
none: false
|
465
|
+
requirements:
|
466
|
+
- - ">="
|
467
|
+
- !ruby/object:Gem::Version
|
468
|
+
hash: 3
|
469
|
+
segments:
|
470
|
+
- 0
|
471
|
+
version: "0"
|
472
|
+
prerelease: false
|
473
|
+
type: :development
|
474
|
+
requirement: *id031
|
475
|
+
- !ruby/object:Gem::Dependency
|
476
|
+
name: jeweler
|
477
|
+
version_requirements: &id032 !ruby/object:Gem::Requirement
|
478
|
+
none: false
|
479
|
+
requirements:
|
480
|
+
- - ">="
|
481
|
+
- !ruby/object:Gem::Version
|
482
|
+
hash: 3
|
483
|
+
segments:
|
484
|
+
- 0
|
485
|
+
version: "0"
|
486
|
+
prerelease: false
|
487
|
+
type: :development
|
488
|
+
requirement: *id032
|
489
|
+
- !ruby/object:Gem::Dependency
|
490
|
+
name: rspec-rails
|
491
|
+
version_requirements: &id033 !ruby/object:Gem::Requirement
|
492
|
+
none: false
|
493
|
+
requirements:
|
494
|
+
- - ">="
|
495
|
+
- !ruby/object:Gem::Version
|
496
|
+
hash: -4164648240
|
497
|
+
segments:
|
498
|
+
- 2
|
499
|
+
- 0
|
500
|
+
- 0
|
501
|
+
- beta
|
502
|
+
- 20
|
503
|
+
version: 2.0.0.beta.20
|
504
|
+
prerelease: false
|
505
|
+
type: :development
|
506
|
+
requirement: *id033
|
507
|
+
- !ruby/object:Gem::Dependency
|
508
|
+
name: mocha
|
509
|
+
version_requirements: &id034 !ruby/object:Gem::Requirement
|
510
|
+
none: false
|
511
|
+
requirements:
|
512
|
+
- - ">="
|
513
|
+
- !ruby/object:Gem::Version
|
514
|
+
hash: 3
|
515
|
+
segments:
|
516
|
+
- 0
|
517
|
+
version: "0"
|
518
|
+
prerelease: false
|
519
|
+
type: :development
|
520
|
+
requirement: *id034
|
521
|
+
- !ruby/object:Gem::Dependency
|
522
|
+
name: xml-simple
|
523
|
+
version_requirements: &id035 !ruby/object:Gem::Requirement
|
524
|
+
none: false
|
525
|
+
requirements:
|
526
|
+
- - ">="
|
527
|
+
- !ruby/object:Gem::Version
|
528
|
+
hash: 3
|
529
|
+
segments:
|
530
|
+
- 0
|
531
|
+
version: "0"
|
532
|
+
prerelease: false
|
533
|
+
type: :development
|
534
|
+
requirement: *id035
|
535
|
+
- !ruby/object:Gem::Dependency
|
536
|
+
name: supermodel
|
537
|
+
version_requirements: &id036 !ruby/object:Gem::Requirement
|
538
|
+
none: false
|
539
|
+
requirements:
|
540
|
+
- - ">="
|
541
|
+
- !ruby/object:Gem::Version
|
542
|
+
hash: 3
|
543
|
+
segments:
|
544
|
+
- 0
|
545
|
+
version: "0"
|
546
|
+
prerelease: false
|
547
|
+
type: :development
|
548
|
+
requirement: *id036
|
549
|
+
- !ruby/object:Gem::Dependency
|
550
|
+
name: sqlite3
|
551
|
+
version_requirements: &id037 !ruby/object:Gem::Requirement
|
552
|
+
none: false
|
553
|
+
requirements:
|
554
|
+
- - ">="
|
555
|
+
- !ruby/object:Gem::Version
|
556
|
+
hash: 3
|
557
|
+
segments:
|
558
|
+
- 0
|
559
|
+
version: "0"
|
560
|
+
prerelease: false
|
561
|
+
type: :development
|
562
|
+
requirement: *id037
|
563
|
+
- !ruby/object:Gem::Dependency
|
564
|
+
name: with_model
|
565
|
+
version_requirements: &id038 !ruby/object:Gem::Requirement
|
566
|
+
none: false
|
567
|
+
requirements:
|
568
|
+
- - ">="
|
569
|
+
- !ruby/object:Gem::Version
|
570
|
+
hash: 3
|
571
|
+
segments:
|
572
|
+
- 0
|
573
|
+
version: "0"
|
574
|
+
prerelease: false
|
575
|
+
type: :development
|
576
|
+
requirement: *id038
|
373
577
|
description: table-for is a table builder for an array of objects, easily allowing overriding of how any aspect of the table is generated
|
374
578
|
email: hunterae@gmail.com
|
375
579
|
executables: []
|