table-for 1.2.0 → 1.2.1
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/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: []
|