README.md in tableview-0.3.3 vs README.md in tableview-0.4.0
- old
+ new
@@ -8,17 +8,19 @@
============
In your Gemfile:
-
gem 'tableview'
then
$ bundle install
$ rails g tableview:install
+
+Usage
+=====
To apply to a resource use the built in generator:
$ rails g tableview resource_name
@@ -34,17 +36,44 @@
if format.xls?
= @registrations.some_scope, "Workbook title"
= @registration.other_scope, "Works as title in other formats as well"
end
+DSL
+===
+
+
The DSL is a simple superset of ruby with a few special characters (only work if first printable character on line, won't work with eval and friends).
Character | Meaning
----------|--------
`=>` | Use the passed collection for rendering and I18n
`*` | Pass a hash to this, is used to configure the formatters.
`+` | Defines a column. If passed a symbol, Tableview will use I18n to lookup the header and call the method on the model to get the value. Strings will be used literally. Optionally use a block to generate values.
`=` | Render a subtable for the passed collection. Not all formatters support subtables, use at own risk (notably the CSV formatter has no support for this). Is meant mainly to have nice full-featured excel files.
+
+What if I don't like the DSL?
+=============================
+
+You may simply create a `.rb` file instead, it will just have to include some boilerplate code (same result as above):
+
+ format = Tableview::Helper::Format.new(params)
+ tv = Tableview::ViewHandler.table do |table|
+ table.table_for @registrations
+
+ table.column :first_name
+ table.column :surname
+ table.column :address {|reg| reg.address + "\n" + reg.postcode }
+ table.column :friends if format.html?
+
+ if format.xls?
+ table.generate_subtable_for @registrations.some_scope, "Workbook title"
+ table.generate_subtable_for @registration.other_scope, "Works as title in other formats as well"
+ end
+ end
+ output = Tableview::output_class(params[:format]).new
+ output.process(tv)
+ output.to_s
It will also add a few lines of code to your controller:
- `self.responder = ApplicationResponder` this sets up the correct code path to use for dynamically rendering all the formats.
- `respond_to :html, :json, :csv, :xls, :ascii` a list of supported formats. You will want to use `respond_with` as well.
\ No newline at end of file