tabulatr 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|