tabulatr 0.0.2 → 0.0.3
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/Gemfile +5 -1
- data/Gemfile.lock +7 -14
- data/README.textile +3 -3
- data/lib/initializers/define_singleton_method.rb +34 -0
- data/lib/tabulatr/tabulatr/batch_actions.rb +1 -1
- data/lib/tabulatr/tabulatr/check_controls.rb +1 -0
- data/lib/tabulatr/tabulatr/data_cell.rb +1 -1
- data/lib/tabulatr/tabulatr/finder.rb +1 -1
- data/lib/tabulatr/tabulatr/settings.rb +105 -105
- data/lib/tabulatr/version.rb +1 -1
- data/spec/dummy_app/app/controllers/products_controller.rb +4 -4
- data/spec/dummy_app/config/initializers/tabulatr_settings.rb +9 -9
- data/spec/requests/tabulatrs_spec.rb +0 -1
- metadata +12 -5
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -36,7 +36,6 @@ GEM
|
|
36
36
|
activemodel (= 3.0.5)
|
37
37
|
activesupport (= 3.0.5)
|
38
38
|
activesupport (3.0.5)
|
39
|
-
archive-tar-minitar (0.5.2)
|
40
39
|
arel (2.0.9)
|
41
40
|
builder (2.1.2)
|
42
41
|
capybara (0.4.1.2)
|
@@ -66,8 +65,7 @@ GEM
|
|
66
65
|
launchy (0.4.0)
|
67
66
|
configuration (>= 0.0.5)
|
68
67
|
rake (>= 0.8.1)
|
69
|
-
|
70
|
-
ruby_core_source (>= 0.1.4)
|
68
|
+
linecache (0.43)
|
71
69
|
mail (2.2.15)
|
72
70
|
activesupport (>= 2.3.6)
|
73
71
|
i18n (>= 0.4.0)
|
@@ -108,16 +106,11 @@ GEM
|
|
108
106
|
activesupport (~> 3.0)
|
109
107
|
railties (~> 3.0)
|
110
108
|
rspec (~> 2.5.0)
|
111
|
-
ruby-debug
|
112
|
-
columnize (>= 0.
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
columnize (>= 0.3.1)
|
117
|
-
linecache19 (>= 0.5.11)
|
118
|
-
ruby-debug-base19 (>= 0.11.19)
|
119
|
-
ruby_core_source (0.1.4)
|
120
|
-
archive-tar-minitar (>= 0.5.2)
|
109
|
+
ruby-debug (0.10.4)
|
110
|
+
columnize (>= 0.1)
|
111
|
+
ruby-debug-base (~> 0.10.4.0)
|
112
|
+
ruby-debug-base (0.10.4)
|
113
|
+
linecache (>= 0.3)
|
121
114
|
rubyzip (0.9.4)
|
122
115
|
selenium-webdriver (0.1.3)
|
123
116
|
childprocess (~> 0.1.5)
|
@@ -144,6 +137,6 @@ DEPENDENCIES
|
|
144
137
|
launchy
|
145
138
|
rspec
|
146
139
|
rspec-rails
|
147
|
-
ruby-
|
140
|
+
ruby-debug
|
148
141
|
sqlite3-ruby
|
149
142
|
tabulatr!
|
data/README.textile
CHANGED
@@ -81,7 +81,7 @@ but the result is pretty fancy, already:
|
|
81
81
|
|
82
82
|
<img src="https://github.com/provideal/tabulatr/raw/master/assets/simple_table.png" />
|
83
83
|
|
84
|
-
To add a column with
|
84
|
+
To add a column with checkboxes (thus giving all the "Select ..." buttons a reasonable semantics), we simply add a
|
85
85
|
|
86
86
|
<pre>
|
87
87
|
t.checkbox
|
@@ -97,7 +97,7 @@ To add e.g. edit-buttons, we specify
|
|
97
97
|
end
|
98
98
|
</pre>
|
99
99
|
|
100
|
-
To add a select-popup with batch-actions (i.e., actions that are to be
|
100
|
+
To add a select-popup with batch-actions (i.e., actions that are to be performed on all selected rows), we add an option to the table_for:
|
101
101
|
|
102
102
|
<pre>
|
103
103
|
<%= table_for @products, :batch_actions => {'foo' => 'Foo', 'delete' => "Delete"} do |t|
|
@@ -308,7 +308,7 @@ h2. Dependencies
|
|
308
308
|
We use
|
309
309
|
* <a href="http://github.com/provideal/whiny_hash">WhinyHash</a> to handle the options in a fail-early-manner,
|
310
310
|
* <a href="http://github.com/provideal/id_stuffer">IdStuffer</a> to compress the _remembered_ ids.
|
311
|
-
* And... eh... It's an extension for Rails 3, so it might be handy to have a version of Rails 3 and Ruby 1.9
|
311
|
+
* And... eh... It's an extension for Rails 3, so it might be handy to have a version of Rails 3 and Ruby 1.8.? or 1.9.?.
|
312
312
|
|
313
313
|
h2. Bugs
|
314
314
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2010-2011 Peter Horn, Provideal GmbH
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#++
|
23
|
+
|
24
|
+
# we add the required define_singleton_method method to enable usage of
|
25
|
+
# Tabulatr w/ ruby 1.8
|
26
|
+
if RUBY_VERSION.to_f < 1.9
|
27
|
+
class Object
|
28
|
+
def define_singleton_method name, &block
|
29
|
+
self.instance_eval do
|
30
|
+
(class << self; self; end).send :define_method, name, &block
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -23,7 +23,7 @@
|
|
23
23
|
|
24
24
|
class Tabulatr
|
25
25
|
|
26
|
-
# render the select tag for batch actions
|
26
|
+
# render the select tag or the buttons for batch actions
|
27
27
|
def render_batch_actions
|
28
28
|
make_tag(:div, :class => @table_options[:batch_actions_div_class]) do
|
29
29
|
concat(t(@table_options[:batch_actions_label])) if @table_options[:batch_actions_label]
|
@@ -68,7 +68,7 @@ class Tabulatr
|
|
68
68
|
# <tt>:td_html</tt>:: a hash with html-attributes added to the <ts>s created
|
69
69
|
# <tt>:method</tt>:: the actual method invoked on the record to retrieve the
|
70
70
|
# value for the column, or false if name is to be used.
|
71
|
-
# <tt>:
|
71
|
+
# <tt>:format</tt>:: either a String by which the value is <tt>sprinf</tt>ed,
|
72
72
|
# a proc/lambda to which the value is passed or false if
|
73
73
|
# no specific formatting is desired.
|
74
74
|
def data_association(relation, name, opts={}, &block)
|
@@ -28,152 +28,152 @@ class Tabulatr
|
|
28
28
|
# Hash keeping the defaults for the table options, may be overriden in the
|
29
29
|
# table_for call
|
30
30
|
TABLE_OPTIONS = WhinyHash.new({ # WhinyHash.new({
|
31
|
-
remote
|
32
|
-
|
33
|
-
form_class
|
34
|
-
table_class
|
35
|
-
sortable_class
|
36
|
-
sorting_asc_class
|
37
|
-
sorting_desc_class
|
38
|
-
page_left_class
|
39
|
-
page_right_class
|
40
|
-
page_no_class
|
41
|
-
control_div_class_before
|
42
|
-
control_div_class_after
|
43
|
-
paginator_div_class
|
44
|
-
batch_actions_div_class
|
45
|
-
select_controls_div_class
|
46
|
-
submit_class
|
47
|
-
pagesize_select_class
|
48
|
-
select_all_class
|
49
|
-
select_none_class
|
50
|
-
select_visible_class
|
51
|
-
unselect_visible_class
|
52
|
-
select_filtered_class
|
53
|
-
unselect_filtered_class
|
54
|
-
info_text_class
|
55
|
-
|
56
|
-
batch_actions_label
|
57
|
-
batch_actions_type
|
58
|
-
batch_actions_class
|
59
|
-
submit_label
|
60
|
-
select_all_label
|
61
|
-
select_none_label
|
62
|
-
select_visible_label
|
63
|
-
unselect_visible_label
|
64
|
-
select_filtered_label
|
65
|
-
unselect_filtered_label
|
66
|
-
info_text
|
31
|
+
:remote => false, # add data-remote="true" to form
|
32
|
+
|
33
|
+
:form_class => 'tabulatr_form', # class of the overall form
|
34
|
+
:table_class => 'tabulatr_table', # class for the actual data table
|
35
|
+
:sortable_class => 'sortable', # class for the header of a sortable column
|
36
|
+
:sorting_asc_class => 'sorting-asc', # class for the currently asc sorting column
|
37
|
+
:sorting_desc_class => 'sorting-desc', # class for the currently desc sorting column
|
38
|
+
:page_left_class => 'page-left', # class for the page left button
|
39
|
+
:page_right_class => 'page-right', # class for the page right button
|
40
|
+
:page_no_class => 'page-no', # class for the page no <input>
|
41
|
+
:control_div_class_before => 'table-controls', # class of the upper div containing the paging and batch action controls
|
42
|
+
:control_div_class_after => 'table-controls', # class of the lower div containing the paging and batch action controls
|
43
|
+
:paginator_div_class => 'paginator', # class of the div containing the paging controls
|
44
|
+
:batch_actions_div_class => 'batch-actions', # class of the div containing the batch action controls
|
45
|
+
:select_controls_div_class => 'check-controls', # class of the div containing the check controls
|
46
|
+
:submit_class => 'submit-table', # class of submit button
|
47
|
+
:pagesize_select_class => 'pagesize_select', # class of the pagesize select element
|
48
|
+
:select_all_class => 'select-btn', # class of the select all button
|
49
|
+
:select_none_class => 'select-btn', # class of the select none button
|
50
|
+
:select_visible_class => 'select-btn', # class of the select visible button
|
51
|
+
:unselect_visible_class => 'select-btn', # class of the unselect visible button
|
52
|
+
:select_filtered_class => 'select-btn', # class of the select filtered button
|
53
|
+
:unselect_filtered_class => 'select-btn', # class of the unselect filteredbutton
|
54
|
+
:info_text_class => 'info-text', # class of the info text div
|
55
|
+
|
56
|
+
:batch_actions_label => 'Batch :Action => ', # Text to show in front of the batch action select
|
57
|
+
:batch_actions_type => :select, # :select or :button depending on the kind of input you want
|
58
|
+
:batch_actions_class => 'batch-action-inputs', # class to apply on the batch action input elements
|
59
|
+
:submit_label => 'Apply', # Text on the submit button
|
60
|
+
:select_all_label => 'Select All', # Text on the select all button
|
61
|
+
:select_none_label => 'Select None', # Text on the select none button
|
62
|
+
:select_visible_label => 'Select visible', # Text on the select visible button
|
63
|
+
:unselect_visible_label => 'Unselect visible', # Text on the unselect visible button
|
64
|
+
:select_filtered_label => 'Select filtered', # Text on the select filtered button
|
65
|
+
:unselect_filtered_label => 'Unselect filtered',# Text on the unselect filtered button
|
66
|
+
:info_text => "Showing %1$d, total %2$d, selected %3$d, matching %4$d",
|
67
67
|
|
68
68
|
# which controls to be rendered above and below the tabel and in which order
|
69
|
-
before_table_controls
|
70
|
-
after_table_controls
|
69
|
+
:before_table_controls => [:submit, :paginator, :batch_actions, :select_controls, :info_text],
|
70
|
+
:after_table_controls => [],
|
71
71
|
|
72
72
|
# whih selecting controls to render in which order
|
73
|
-
select_controls
|
73
|
+
:select_controls => [:select_all, :select_none, :select_visible, :unselect_visible,
|
74
74
|
:select_filtered, :unselect_filtered],
|
75
75
|
|
76
76
|
|
77
|
-
image_path_prefix
|
78
|
-
pager_left_button
|
79
|
-
pager_left_button_inactive
|
80
|
-
pager_right_button
|
81
|
-
pager_right_button_inactive
|
82
|
-
sort_up_button
|
83
|
-
sort_up_button_inactive
|
84
|
-
sort_down_button
|
85
|
-
sort_down_button_inactive
|
86
|
-
|
87
|
-
make_form
|
88
|
-
table_html
|
89
|
-
row_html
|
90
|
-
header_html
|
91
|
-
filter_html
|
92
|
-
filter
|
93
|
-
paginate
|
94
|
-
sortable
|
95
|
-
selectable
|
96
|
-
action
|
97
|
-
batch_actions
|
98
|
-
translate
|
99
|
-
row_classes
|
77
|
+
:image_path_prefix => '/images/tabulatr/',
|
78
|
+
:pager_left_button => 'left.gif',
|
79
|
+
:pager_left_button_inactive => 'left_off.gif',
|
80
|
+
:pager_right_button => 'right.gif',
|
81
|
+
:pager_right_button_inactive => 'right_off.gif',
|
82
|
+
:sort_up_button => 'up.gif',
|
83
|
+
:sort_up_button_inactive => 'up_off.gif',
|
84
|
+
:sort_down_button => 'down.gif',
|
85
|
+
:sort_down_button_inactive => 'down_off.gif',
|
86
|
+
|
87
|
+
:make_form => true, # whether or not to wrap the whole table (incl. controls) in a form
|
88
|
+
:table_html => false, # a hash with html attributes for the table
|
89
|
+
:row_html => false, # a hash with html attributes for the normal trs
|
90
|
+
:header_html => false, # a hash with html attributes for the header trs
|
91
|
+
:filter_html => false, # a hash with html attributes for the filter trs
|
92
|
+
:filter => true, # false for no filter row at all
|
93
|
+
:paginate => true, # true to show paginator
|
94
|
+
:sortable => true, # true to allow sorting (can be specified for every sortable column)
|
95
|
+
:selectable => true, # true to render "select all", "select none" and the like
|
96
|
+
:action => nil, # target action of the wrapping form if applicable
|
97
|
+
:batch_actions => false, # :name => value hash of batch action stuff
|
98
|
+
:translate => false, # call t() for all 'labels' and stuff, possible values are true/:translate or :localize
|
99
|
+
:row_classes => ['odd', 'even'] # class for the trs
|
100
100
|
})
|
101
101
|
|
102
102
|
# these settings are considered constant for the whole application, can not be overridden
|
103
103
|
# on a per-table basis.
|
104
104
|
# That's necessary to allow find_for_table to work properly
|
105
105
|
TABLE_FORM_OPTIONS = WhinyHash.new({
|
106
|
-
batch_action_name
|
107
|
-
sort_by_key
|
108
|
-
pagination_postfix
|
109
|
-
filter_postfix
|
110
|
-
sort_postfix
|
111
|
-
checked_postfix
|
112
|
-
associations_filter
|
113
|
-
method
|
114
|
-
batch_postfix
|
115
|
-
checked_separator
|
106
|
+
:batch_action_name => 'batch_action', # name of the batch action param
|
107
|
+
:sort_by_key => 'sort_by_key', # name of key which to search, format is 'id asc'
|
108
|
+
:pagination_postfix => '_pagination', # name of the param w/ the pagination infos
|
109
|
+
:filter_postfix => '_filter', # postfix for name of the filter in the params :hash => xxx_filter
|
110
|
+
:sort_postfix => '_sort', # postfix for name of the filter in the params :hash => xxx_filter
|
111
|
+
:checked_postfix => '_checked', # postfix for name of the checked in the params :hash => xxx_filter
|
112
|
+
:associations_filter => '__association', # name of the associations in the filter hash
|
113
|
+
:method => 'post', # http method for that form if applicable
|
114
|
+
:batch_postfix => '_batch', # postfix for name of the batch action select
|
115
|
+
:checked_separator => ',' # symbol to separate the checked ids
|
116
116
|
})
|
117
117
|
|
118
118
|
# these settings are considered constant for the whole application, can not be overridden
|
119
119
|
# on a per-table basis.
|
120
120
|
# That's necessary to allow find_for_table to work properly
|
121
121
|
PAGINATE_OPTIONS = ActiveSupport::HashWithIndifferentAccess.new({
|
122
|
-
page
|
123
|
-
pagesize
|
124
|
-
pagesizes
|
122
|
+
:page => 1,
|
123
|
+
:pagesize => 10,
|
124
|
+
:pagesizes => [10, 20, 50]
|
125
125
|
})
|
126
126
|
|
127
127
|
# Hash keeping the defaults for the column options
|
128
128
|
COLUMN_OPTIONS = ActiveSupport::HashWithIndifferentAccess.new({
|
129
|
-
header
|
130
|
-
width
|
131
|
-
align
|
132
|
-
valign
|
133
|
-
wrap
|
134
|
-
type
|
135
|
-
td_html
|
136
|
-
th_html
|
137
|
-
filter_html
|
138
|
-
filter
|
129
|
+
:header => false, # a string to write into the header cell
|
130
|
+
:width => false, # the width of the cell
|
131
|
+
:align => false, # horizontal alignment
|
132
|
+
:valign => false, # vertical alignment
|
133
|
+
:wrap => true, # wraps
|
134
|
+
:type => :string, # :integer, :date
|
135
|
+
:td_html => false, # a hash with html attributes for the cells
|
136
|
+
:th_html => false, # a hash with html attributes for the header cell
|
137
|
+
:filter_html => false, # a hash with html attributes for the filter cell
|
138
|
+
:filter => true, # false for no filter field,
|
139
139
|
# container for options_for_select
|
140
140
|
# String from options_from_collection_for_select or the like
|
141
141
|
# :range for range spec
|
142
142
|
# :checkbox for a 0/1 valued checkbox
|
143
|
-
checkbox_value
|
144
|
-
checkbox_label
|
145
|
-
filter_width
|
146
|
-
range_filter_symbol
|
147
|
-
format
|
148
|
-
method
|
149
|
-
link
|
150
|
-
join_symbol
|
151
|
-
sortable
|
143
|
+
:checkbox_value => '1', # value if checkbox is checked
|
144
|
+
:checkbox_label => '', # text behind the checkbox
|
145
|
+
:filter_width => '97%', # width of the filter <input>
|
146
|
+
:range_filter_symbol => '–', # put between the <inputs> of the range filter
|
147
|
+
:format => false, # a sprintf-string or a proc to do special formatting
|
148
|
+
:method => false, # if you want to get the column by a different method than its name
|
149
|
+
:link => false, # proc or symbol to make the content a link
|
150
|
+
:join_symbol => ', ', # symbol used to join the elements of 'many' associations
|
151
|
+
:sortable => true # if set, sorting-stuff is added to the header cell
|
152
152
|
})
|
153
153
|
|
154
154
|
# these settings are considered constant for the whole application, can not be overridden
|
155
155
|
# on a per-table basis.
|
156
156
|
# That's necessary to allow find_for_table to work properly
|
157
157
|
FINDER_INJECT_OPTIONS = WhinyHash.new({
|
158
|
-
pagination
|
159
|
-
filters
|
160
|
-
classname
|
161
|
-
sorting
|
162
|
-
checked
|
163
|
-
store_data
|
158
|
+
:pagination => :__pagination,
|
159
|
+
:filters => :__filters,
|
160
|
+
:classname => :__classname,
|
161
|
+
:sorting => :__sorting,
|
162
|
+
:checked => :__checked,
|
163
|
+
:store_data => :__store_data
|
164
164
|
})
|
165
165
|
|
166
166
|
# defaults for the find_for_table
|
167
167
|
FINDER_OPTIONS = WhinyHash.new({
|
168
|
-
default_order
|
169
|
-
default_pagesize
|
170
|
-
precondition
|
171
|
-
store_data
|
168
|
+
:default_order => false,
|
169
|
+
:default_pagesize => false,
|
170
|
+
:precondition => false,
|
171
|
+
:store_data => false
|
172
172
|
})
|
173
173
|
|
174
174
|
# Stupid hack
|
175
175
|
SQL_OPTIONS = WhinyHash.new({
|
176
|
-
like
|
176
|
+
:like => 'LIKE'
|
177
177
|
})
|
178
178
|
|
179
179
|
def self.finder_inject_options(n=nil)
|
data/lib/tabulatr/version.rb
CHANGED
@@ -2,10 +2,10 @@ class ProductsController < ApplicationController
|
|
2
2
|
|
3
3
|
def index
|
4
4
|
@products = Product.find_for_table(params,
|
5
|
-
precondition
|
6
|
-
default_order
|
7
|
-
default_pagesize
|
8
|
-
store_data
|
5
|
+
:precondition => "products.id < 100",
|
6
|
+
:default_order => "products.id asc",
|
7
|
+
:default_pagesize => 10,
|
8
|
+
:store_data => {:ping => 'pong'}) do |batch_action|
|
9
9
|
batch_action.activate do |ids| activate_batch_action(ids, true) end
|
10
10
|
batch_action.deactivate do |ids| activate_batch_action(ids, false) end
|
11
11
|
batch_action.foo do |ids| render :text => "Action Foo: #{ids.to_s}"; return end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
Tabulatr.table_options :form_class => 'hooray',
|
2
|
-
image_path_prefix
|
3
|
-
pager_left_button
|
4
|
-
pager_left_button_inactive
|
5
|
-
pager_right_button
|
6
|
-
pager_right_button_inactive
|
7
|
-
sort_up_button
|
8
|
-
sort_up_button_inactive
|
9
|
-
sort_down_button
|
10
|
-
sort_down_button_inactive
|
2
|
+
:image_path_prefix => '/images/tabulatr/',
|
3
|
+
:pager_left_button => 'pager_arrow_left.gif',
|
4
|
+
:pager_left_button_inactive => 'pager_arrow_left_off.gif',
|
5
|
+
:pager_right_button => 'pager_arrow_right.gif',
|
6
|
+
:pager_right_button_inactive => 'pager_arrow_right_off.gif',
|
7
|
+
:sort_up_button => 'sort_arrow_up.gif',
|
8
|
+
:sort_up_button_inactive => 'sort_arrow_up_off.gif',
|
9
|
+
:sort_down_button => 'sort_arrow_down.gif',
|
10
|
+
:sort_down_button_inactive => 'sort_arrow_down_off.gif'
|
11
11
|
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tabulatr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 25
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Peter Horn
|
@@ -15,7 +16,7 @@ autorequire:
|
|
15
16
|
bindir: bin
|
16
17
|
cert_chain: []
|
17
18
|
|
18
|
-
date: 2011-03-
|
19
|
+
date: 2011-03-19 00:00:00 +01:00
|
19
20
|
default_executable:
|
20
21
|
dependencies:
|
21
22
|
- !ruby/object:Gem::Dependency
|
@@ -26,6 +27,7 @@ dependencies:
|
|
26
27
|
requirements:
|
27
28
|
- - ~>
|
28
29
|
- !ruby/object:Gem::Version
|
30
|
+
hash: 7
|
29
31
|
segments:
|
30
32
|
- 3
|
31
33
|
- 0
|
@@ -40,6 +42,7 @@ dependencies:
|
|
40
42
|
requirements:
|
41
43
|
- - ">="
|
42
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 27
|
43
46
|
segments:
|
44
47
|
- 0
|
45
48
|
- 0
|
@@ -55,6 +58,7 @@ dependencies:
|
|
55
58
|
requirements:
|
56
59
|
- - ">="
|
57
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 29
|
58
62
|
segments:
|
59
63
|
- 0
|
60
64
|
- 0
|
@@ -93,6 +97,7 @@ files:
|
|
93
97
|
- lib/generators/tabulatr/install_generator.rb
|
94
98
|
- lib/initializers/action_view.rb
|
95
99
|
- lib/initializers/active_record.rb
|
100
|
+
- lib/initializers/define_singleton_method.rb
|
96
101
|
- lib/initializers/mark_as_localizable.rb
|
97
102
|
- lib/initializers/mongoid.rb
|
98
103
|
- lib/tabulatr.rb
|
@@ -197,6 +202,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
197
202
|
requirements:
|
198
203
|
- - ">="
|
199
204
|
- !ruby/object:Gem::Version
|
205
|
+
hash: 3
|
200
206
|
segments:
|
201
207
|
- 0
|
202
208
|
version: "0"
|
@@ -205,13 +211,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
205
211
|
requirements:
|
206
212
|
- - ">="
|
207
213
|
- !ruby/object:Gem::Version
|
214
|
+
hash: 3
|
208
215
|
segments:
|
209
216
|
- 0
|
210
217
|
version: "0"
|
211
218
|
requirements: []
|
212
219
|
|
213
220
|
rubyforge_project: tabulatr
|
214
|
-
rubygems_version: 1.
|
221
|
+
rubygems_version: 1.4.2
|
215
222
|
signing_key:
|
216
223
|
specification_version: 3
|
217
224
|
summary: Tabulatr is a DSL to easily create tables for e.g. admin backends.
|