tabulatr 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog.textile +9 -0
- data/README.textile +6 -1
- data/app/assets/images/tabulatr/buttons_lite_background.png +0 -0
- data/app/assets/images/tabulatr/pager_arrow_left.gif +0 -0
- data/app/assets/images/tabulatr/pager_arrow_left_off.gif +0 -0
- data/app/assets/images/tabulatr/pager_arrow_right.gif +0 -0
- data/app/assets/images/tabulatr/pager_arrow_right_off.gif +0 -0
- data/app/assets/images/tabulatr/sort_arrow_down.gif +0 -0
- data/app/assets/images/tabulatr/sort_arrow_down_off.gif +0 -0
- data/app/assets/images/tabulatr/sort_arrow_up.gif +0 -0
- data/app/assets/images/tabulatr/sort_arrow_up_off.gif +0 -0
- data/app/assets/stylesheets/tabulatr.css +1 -0
- data/app/assets/stylesheets/tabulatr/application.scss +102 -0
- data/lib/tabulatr.rb +1 -0
- data/lib/tabulatr/engine.rb +3 -0
- data/lib/tabulatr/tabulatr.rb +18 -1
- data/lib/tabulatr/tabulatr/finder.rb +2 -2
- data/lib/tabulatr/tabulatr/finder/find_for_table.rb +9 -4
- data/lib/tabulatr/tabulatr/header_cell.rb +5 -8
- data/lib/tabulatr/tabulatr/paginator.rb +10 -21
- data/lib/tabulatr/tabulatr/settings.rb +1 -1
- data/lib/tabulatr/version.rb +1 -1
- data/tabulatr.gemspec +1 -5
- metadata +63 -75
data/Changelog.textile
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
h1. Changelog for tabulatr
|
2
2
|
|
3
|
+
h2. 0.3.0
|
4
|
+
|
5
|
+
* Converted into a Rails 3.1 engine and moved css and images to use the new asset pipeline. Works with 3.0.x -- 'opefully. Thanks to all that reported the problem.
|
6
|
+
* Header cells are now auto translated. Thanks to <a href="https://github.com/niedhui">niedhui</a>!
|
7
|
+
|
8
|
+
h2. 0.2.1
|
9
|
+
|
10
|
+
* Fixed a ruby 1.8 syntax issue. Thanks to <a href="https://github.com/TBAA">TBAA</a> for reporting!
|
11
|
+
|
3
12
|
h2. 0.2.0
|
4
13
|
|
5
14
|
* Mongoid can also be used in place of ActiveRecord
|
data/README.textile
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
h1. Tabulatr - Index Tables made easy, finally
|
2
2
|
|
3
|
-
|
3
|
+
<b>Notes:</b>
|
4
|
+
|
5
|
+
<ul>
|
6
|
+
<li>there is a <a href="https://github.com/provideal/tabulatr-demo">demo app repository</a></li>
|
7
|
+
<li>note the spelling, it's tabulatr, not tabulat<b>o</b>r.
|
8
|
+
</ul>
|
4
9
|
|
5
10
|
h2. Mission Objective
|
6
11
|
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
/*= require tabulatr/application */
|
@@ -0,0 +1,102 @@
|
|
1
|
+
body {
|
2
|
+
font: 9pt Verdana;
|
3
|
+
}
|
4
|
+
|
5
|
+
table {
|
6
|
+
border-collapse: collapse;
|
7
|
+
width:100%;
|
8
|
+
}
|
9
|
+
|
10
|
+
td, th {
|
11
|
+
border: 1px solid gray;
|
12
|
+
padding:5px;
|
13
|
+
text-overflow: ellipsis;
|
14
|
+
white-space: nowrap;
|
15
|
+
overflow: ellipsis;
|
16
|
+
}
|
17
|
+
|
18
|
+
th {
|
19
|
+
background-color: #ccc;
|
20
|
+
text-shadow: 1px 1px 1px rgba(0,0,0,.2);
|
21
|
+
}
|
22
|
+
|
23
|
+
div.table-controls {
|
24
|
+
font: 9pt Verdana;
|
25
|
+
width: 100%-10px;
|
26
|
+
border: 1px solid gray;
|
27
|
+
padding:5px;
|
28
|
+
margin-bottom: 10px;
|
29
|
+
background-color: #eee;
|
30
|
+
border-radius: 5px;
|
31
|
+
position: relative;
|
32
|
+
}
|
33
|
+
|
34
|
+
div.table-controls input {
|
35
|
+
font: 9pt Verdana;
|
36
|
+
}
|
37
|
+
|
38
|
+
div.table-controls input[type=submit] {
|
39
|
+
position: relative;
|
40
|
+
background-repeat: repeat-x;
|
41
|
+
color: #efefef;
|
42
|
+
font-weight: bold;
|
43
|
+
display: inline-block;
|
44
|
+
text-decoration: none;
|
45
|
+
border-width: 1px;
|
46
|
+
border-style: solid;
|
47
|
+
padding: 0 12px;
|
48
|
+
margin: 0;
|
49
|
+
text-shadow: 1px 1px 1px rgba(0,0,0,.2);
|
50
|
+
-moz-box-shadow: 1px 1px 1px rgba(0,0,0,.25);
|
51
|
+
-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.25);
|
52
|
+
box-shadow: 1px 1px 1px rgba(0,0,0,.25);
|
53
|
+
-moz-border-radius: 5px;
|
54
|
+
-webkit-border-radius: 5px;
|
55
|
+
border-radius: 5px;
|
56
|
+
cursor: pointer;
|
57
|
+
background-position: 0 -80px;
|
58
|
+
font-size: 11px;
|
59
|
+
height: 24px;
|
60
|
+
line-height: 24px;
|
61
|
+
}
|
62
|
+
|
63
|
+
div.table-controls input[type=submit] {
|
64
|
+
background-image: asset-url("buttons_lite_background.png", "image");
|
65
|
+
background-color: #263849;
|
66
|
+
border-color: #16222c;
|
67
|
+
color: #efefef;
|
68
|
+
}
|
69
|
+
|
70
|
+
div.table-controls input[type=submit]:hover {
|
71
|
+
background-color: #16222c;
|
72
|
+
color: #efefef;
|
73
|
+
text-decoration: none;
|
74
|
+
}
|
75
|
+
|
76
|
+
div.paginator {
|
77
|
+
display: inline-block;
|
78
|
+
margin-right: 40px;
|
79
|
+
}
|
80
|
+
|
81
|
+
div.batch-actions {
|
82
|
+
display: inline-block;
|
83
|
+
}
|
84
|
+
|
85
|
+
div.check-controls {
|
86
|
+
margin-top: 10px;
|
87
|
+
position: absolute;
|
88
|
+
bottom: 5px;
|
89
|
+
right: 5px;
|
90
|
+
}
|
91
|
+
|
92
|
+
div.check-controls input[type=submit] {
|
93
|
+
font-size: 9px;
|
94
|
+
height: 20px;
|
95
|
+
line-height: 20px;
|
96
|
+
margin:3px;
|
97
|
+
}
|
98
|
+
|
99
|
+
div.info-text {
|
100
|
+
margin-top:10px;
|
101
|
+
font-size: 9pt;
|
102
|
+
}
|
data/lib/tabulatr.rb
CHANGED
data/lib/tabulatr/tabulatr.rb
CHANGED
@@ -42,6 +42,8 @@ class Tabulatr
|
|
42
42
|
include ActionView::Helpers::FormOptionsHelper
|
43
43
|
include ActionView::Helpers::TranslationHelper
|
44
44
|
include ActionView::Helpers::RecordTagHelper
|
45
|
+
# include ActionView::Helpers::AssetTagHelper
|
46
|
+
# include Rails::Application::Configurable
|
45
47
|
|
46
48
|
# Constructor of Tabulatr
|
47
49
|
#
|
@@ -57,7 +59,7 @@ class Tabulatr
|
|
57
59
|
@val = []
|
58
60
|
@record = nil
|
59
61
|
@row_mode = false
|
60
|
-
@classname, @id, @id_type = @records.__classinfo
|
62
|
+
@klaz, @classname, @id, @id_type = @records.__classinfo
|
61
63
|
@pagination = @records.__pagination
|
62
64
|
@filters = @records.__filters
|
63
65
|
@sorting = @records.__sorting
|
@@ -237,6 +239,21 @@ private
|
|
237
239
|
end
|
238
240
|
nil
|
239
241
|
end
|
242
|
+
|
243
|
+
def make_image_button(iname, options)
|
244
|
+
inactive = options.delete(:inactive)
|
245
|
+
psrc = @view.image_path File.join(@table_options[:image_path_prefix], iname)
|
246
|
+
if !inactive
|
247
|
+
make_tag(:input,
|
248
|
+
options.merge(
|
249
|
+
:type => 'image',
|
250
|
+
:src => psrc
|
251
|
+
)
|
252
|
+
)
|
253
|
+
else
|
254
|
+
make_tag(:img, :src => psrc)
|
255
|
+
end
|
256
|
+
end
|
240
257
|
end
|
241
258
|
|
242
259
|
Dir[File.join(File.dirname(__FILE__), "tabulatr", "*.rb")].each do |file|
|
@@ -45,8 +45,8 @@ module Tabulatr::Finder
|
|
45
45
|
if !str.present?
|
46
46
|
[]
|
47
47
|
elsif str.starts_with?("GzB")
|
48
|
-
Zlib::Inflate.inflate(Base64.decode64(str[3..-1]))
|
49
|
-
|
48
|
+
Zlib::Inflate.inflate(Base64.decode64(str[3..-1])).split(
|
49
|
+
Tabulatr.table_form_options[:checked_separator])
|
50
50
|
else
|
51
51
|
IdStuffer.unstuff(str)
|
52
52
|
end
|
@@ -99,7 +99,8 @@ module Tabulatr::Finder
|
|
99
99
|
if opts[:stateful]
|
100
100
|
session = opts[:stateful]
|
101
101
|
sname = "#{cname}#{form_options[:state_session_postfix]}"
|
102
|
-
raise "give the session as the :stateful parameter in find_for_table
|
102
|
+
raise "give the session as the :stateful parameter in find_for_table, not a '#{session.class}'" \
|
103
|
+
unless session.is_a?(Rails::version.to_f >= 3.1 ? ActiveSupport::HashWithIndifferentAccess : ActionDispatch::Session::AbstractStore::SessionHash)
|
103
104
|
session[sname] ||= {}
|
104
105
|
|
105
106
|
if params["#{cname}#{form_options[:reset_state_postfix]}"]
|
@@ -188,19 +189,23 @@ module Tabulatr::Finder
|
|
188
189
|
page += 1 if paginate_options[:page_right]
|
189
190
|
page -= 1 if paginate_options[:page_left]
|
190
191
|
c = rel.count
|
192
|
+
# Group statments return a hash
|
193
|
+
c = c.count unless c.class == Fixnum
|
191
194
|
pages = (c/pagesize).ceil
|
192
195
|
page = [1, [page, pages].min].max
|
193
196
|
total = klaz
|
194
197
|
total = total.where(opts[:precondition]) if opts[:precondition]
|
198
|
+
# here too
|
195
199
|
total = total.count
|
200
|
+
total = total.count unless total.class == Fixnum
|
196
201
|
|
197
202
|
# Now, actually find the stuff
|
198
|
-
found = rel.limit(pagesize.to_i).offset(((page-1)*pagesize).to_i
|
199
|
-
|
203
|
+
found = rel.limit(pagesize.to_i).offset(((page-1)*pagesize).to_i
|
204
|
+
).order(order).to_a #, :include => includes
|
200
205
|
|
201
206
|
# finally, inject methods to retrieve the current 'settings'
|
202
207
|
found.define_singleton_method(:__filters) do filter_param end
|
203
|
-
found.define_singleton_method(:__classinfo) do [cname, id, id_type] end
|
208
|
+
found.define_singleton_method(:__classinfo) do [klaz, cname, id, id_type] end
|
204
209
|
found.define_singleton_method(:__pagination) do
|
205
210
|
{ :page => page, :pagesize => pagesize, :count => c, :pages => pages,
|
206
211
|
:pagesizes => paginate_options[:pagesizes],
|
@@ -37,25 +37,22 @@ class Tabulatr
|
|
37
37
|
bid = "#{@classname}#{@table_form_options[:sort_postfix]}"
|
38
38
|
opts = normalize_column_options opts
|
39
39
|
make_tag(:th, opts[:th_html]) do
|
40
|
-
concat(t(opts[:header] || name.
|
40
|
+
concat(t(opts[:header] || @klaz.human_attribute_name(name).titlecase), :escape_html)
|
41
41
|
if opts[:sortable] and @table_options[:sortable]
|
42
42
|
if @sorting and @sorting[:by].to_s == name.to_s
|
43
43
|
pname = "#{sortparam}[_resort][#{name}][#{@sorting[:direction] == 'asc' ? 'desc' : 'asc'}]"
|
44
44
|
bid = "#{bid}_#{name}_#{@sorting[:direction] == 'asc' ? 'desc' : 'asc'}"
|
45
|
-
psrc =
|
46
|
-
:sort_down_button : :sort_up_button]
|
45
|
+
psrc = @table_options[@sorting[:direction] == 'desc' ?
|
46
|
+
:sort_down_button : :sort_up_button]
|
47
47
|
make_tag(:input, :type => :hidden,
|
48
48
|
:name => "#{sortparam}[#{name}][#{@sorting[:direction]}]",
|
49
49
|
:value => "#{@sorting[:direction]}")
|
50
50
|
else
|
51
51
|
pname = "#{sortparam}[_resort][#{name}][desc]"
|
52
52
|
bid = "#{bid}_#{name}_desc"
|
53
|
-
psrc =
|
53
|
+
psrc = @table_options[:sort_down_button_inactive]
|
54
54
|
end
|
55
|
-
|
56
|
-
:id => bid,
|
57
|
-
:src => psrc,
|
58
|
-
:name => pname)
|
55
|
+
make_image_button(psrc, :id => bid, :name => pname)
|
59
56
|
end
|
60
57
|
end # </th>
|
61
58
|
end
|
@@ -35,17 +35,11 @@ class Tabulatr
|
|
35
35
|
# render the 'wrapping' div
|
36
36
|
make_tag(:div, :class => @table_options[:paginator_div_class]) do
|
37
37
|
# << Page Left
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
:name => "#{pagination_name}[page_left]")
|
44
|
-
else
|
45
|
-
make_tag(:img,
|
46
|
-
:src => File.join(@table_options[:image_path_prefix], @table_options[:pager_left_button_inactive]),
|
47
|
-
:class => @table_options[:page_left_class])
|
48
|
-
end # page > 1
|
38
|
+
make_image_button(@table_options[page > 1 ? :pager_left_button : :pager_left_button_inactive],
|
39
|
+
:class => @table_options[:page_left_class],
|
40
|
+
:id => "#{pagination_name}_page_left",
|
41
|
+
:name => "#{pagination_name}[page_left]",
|
42
|
+
:inactive => (page <= 1))
|
49
43
|
# current page number
|
50
44
|
concat(make_tag(:input,
|
51
45
|
:type => :hidden,
|
@@ -58,16 +52,11 @@ class Tabulatr
|
|
58
52
|
:value => page))
|
59
53
|
concat("/#{pages}")
|
60
54
|
# >> Page Right
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
:name => "#{pagination_name}[page_right]")
|
67
|
-
else
|
68
|
-
make_tag(:img, :src => File.join(@table_options[:image_path_prefix], @table_options[:pager_right_button_inactive]),
|
69
|
-
:class => @table_options[:page_right_class])
|
70
|
-
end # page < pages
|
55
|
+
make_image_button(@table_options[page < pages ? :pager_right_button : :pager_right_button_inactive],
|
56
|
+
:class => @table_options[:page_right_class],
|
57
|
+
:id => "#{pagination_name}_page_right",
|
58
|
+
:name => "#{pagination_name}[page_right]",
|
59
|
+
:inactive => (page >= pages))
|
71
60
|
if pagesizes.length > 1
|
72
61
|
make_tag(:select, :name => "#{pagination_name}[pagesize]", :class => @table_options[:pagesize_select_class]) do
|
73
62
|
pagesizes.each do |n|
|
@@ -75,7 +75,7 @@ class Tabulatr
|
|
75
75
|
:select_controls => [:select_all, :select_none, :select_visible, :unselect_visible,
|
76
76
|
:select_filtered, :unselect_filtered],
|
77
77
|
|
78
|
-
:image_path_prefix => '/images/tabulatr/',
|
78
|
+
:image_path_prefix => (Rails::version.to_f >= 3.1 ? 'tabulatr/' : '/images/tabulatr/'),
|
79
79
|
:pager_left_button => 'pager_arrow_left.gif',
|
80
80
|
:pager_left_button_inactive => 'pager_arrow_left_off.gif',
|
81
81
|
:pager_right_button => 'pager_arrow_right.gif',
|
data/lib/tabulatr/version.rb
CHANGED
data/tabulatr.gemspec
CHANGED
@@ -15,14 +15,10 @@ Gem::Specification.new do |s|
|
|
15
15
|
|
16
16
|
s.files = `git ls-files`.split("\n")
|
17
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
-
s.executables = []
|
19
|
-
s.require_paths = ["lib"]
|
20
18
|
s.rdoc_options = ['--charset=UTF-8']
|
21
19
|
|
22
20
|
|
23
|
-
s.add_runtime_dependency('rails', '
|
21
|
+
s.add_runtime_dependency('rails', '>= 3.0.0')
|
24
22
|
s.add_dependency('whiny_hash', '>= 0.0.2')
|
25
23
|
s.add_dependency('id_stuffer', '>= 0.0.1')
|
26
|
-
|
27
|
-
s.rubyforge_project = "tabulatr"
|
28
24
|
end
|
metadata
CHANGED
@@ -1,76 +1,58 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: tabulatr
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 0
|
9
|
-
version: 0.2.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Peter Horn
|
13
|
-
-
|
9
|
+
- René Sprotte
|
14
10
|
autorequire:
|
15
11
|
bindir: bin
|
16
12
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2011-08-20 00:00:00.000000000Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
22
16
|
name: rails
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: &70348423259000 !ruby/object:Gem::Requirement
|
25
18
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
- 3
|
31
|
-
- 0
|
32
|
-
version: "3.0"
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.0.0
|
33
23
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: whiny_hash
|
37
24
|
prerelease: false
|
38
|
-
|
25
|
+
version_requirements: *70348423259000
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: whiny_hash
|
28
|
+
requirement: &70348423258260 !ruby/object:Gem::Requirement
|
39
29
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
- 0
|
46
|
-
- 2
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
47
33
|
version: 0.0.2
|
48
34
|
type: :runtime
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: id_stuffer
|
52
35
|
prerelease: false
|
53
|
-
|
36
|
+
version_requirements: *70348423258260
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: id_stuffer
|
39
|
+
requirement: &70348423257540 !ruby/object:Gem::Requirement
|
54
40
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
segments:
|
59
|
-
- 0
|
60
|
-
- 0
|
61
|
-
- 1
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
62
44
|
version: 0.0.1
|
63
45
|
type: :runtime
|
64
|
-
|
65
|
-
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *70348423257540
|
48
|
+
description: A tight DSL to build tables of ActiveRecord or Mongoid models with sorting,
|
49
|
+
pagination, finding/filtering, selecting and batch actions. Tries to do for tables
|
50
|
+
what formtastic and simple_form did for forms.
|
66
51
|
email: info@provideal.net
|
67
52
|
executables: []
|
68
|
-
|
69
53
|
extensions: []
|
70
|
-
|
71
54
|
extra_rdoc_files: []
|
72
|
-
|
73
|
-
files:
|
55
|
+
files:
|
74
56
|
- .gitignore
|
75
57
|
- .rspec
|
76
58
|
- Changelog.textile
|
@@ -78,6 +60,17 @@ files:
|
|
78
60
|
- LICENSE
|
79
61
|
- README.textile
|
80
62
|
- Rakefile
|
63
|
+
- app/assets/images/tabulatr/buttons_lite_background.png
|
64
|
+
- app/assets/images/tabulatr/pager_arrow_left.gif
|
65
|
+
- app/assets/images/tabulatr/pager_arrow_left_off.gif
|
66
|
+
- app/assets/images/tabulatr/pager_arrow_right.gif
|
67
|
+
- app/assets/images/tabulatr/pager_arrow_right_off.gif
|
68
|
+
- app/assets/images/tabulatr/sort_arrow_down.gif
|
69
|
+
- app/assets/images/tabulatr/sort_arrow_down_off.gif
|
70
|
+
- app/assets/images/tabulatr/sort_arrow_up.gif
|
71
|
+
- app/assets/images/tabulatr/sort_arrow_up_off.gif
|
72
|
+
- app/assets/stylesheets/tabulatr.css
|
73
|
+
- app/assets/stylesheets/tabulatr/application.scss
|
81
74
|
- assets/images/buttons_lite_background.png
|
82
75
|
- assets/images/pager_arrow_left.gif
|
83
76
|
- assets/images/pager_arrow_left_off.gif
|
@@ -97,6 +90,7 @@ files:
|
|
97
90
|
- lib/initializers/mark_as_localizable.rb
|
98
91
|
- lib/initializers/mongoid.rb
|
99
92
|
- lib/tabulatr.rb
|
93
|
+
- lib/tabulatr/engine.rb
|
100
94
|
- lib/tabulatr/tabulatr.rb
|
101
95
|
- lib/tabulatr/tabulatr/batch_actions.rb
|
102
96
|
- lib/tabulatr/tabulatr/check_controls.rb
|
@@ -185,39 +179,33 @@ files:
|
|
185
179
|
- spec/requests/tabulatrs_spec.rb
|
186
180
|
- spec/spec_helper.rb
|
187
181
|
- tabulatr.gemspec
|
188
|
-
has_rdoc: true
|
189
182
|
homepage: http://github.com/provideal/tabulatr
|
190
183
|
licenses: []
|
191
|
-
|
192
184
|
post_install_message:
|
193
|
-
rdoc_options:
|
185
|
+
rdoc_options:
|
194
186
|
- --charset=UTF-8
|
195
|
-
require_paths:
|
187
|
+
require_paths:
|
196
188
|
- lib
|
197
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
189
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
198
190
|
none: false
|
199
|
-
requirements:
|
200
|
-
- -
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
|
203
|
-
|
204
|
-
version: "0"
|
205
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ! '>='
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
196
|
none: false
|
207
|
-
requirements:
|
208
|
-
- -
|
209
|
-
- !ruby/object:Gem::Version
|
210
|
-
|
211
|
-
- 0
|
212
|
-
version: "0"
|
197
|
+
requirements:
|
198
|
+
- - ! '>='
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '0'
|
213
201
|
requirements: []
|
214
|
-
|
215
|
-
|
216
|
-
rubygems_version: 1.3.7
|
202
|
+
rubyforge_project:
|
203
|
+
rubygems_version: 1.8.6
|
217
204
|
signing_key:
|
218
205
|
specification_version: 3
|
219
|
-
summary: A tight DSL to build tables of ActiveRecord or Mongoid models with sorting,
|
220
|
-
|
206
|
+
summary: A tight DSL to build tables of ActiveRecord or Mongoid models with sorting,
|
207
|
+
pagination, finding/filtering, selecting and batch actions.
|
208
|
+
test_files:
|
221
209
|
- spec/dummy_app/.gitignore
|
222
210
|
- spec/dummy_app/app/controllers/application_controller.rb
|
223
211
|
- spec/dummy_app/app/controllers/products_controller.rb
|