to_csv_rails 0.1 → 0.2

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/README.md ADDED
@@ -0,0 +1,61 @@
1
+ to\_csv\_rails
2
+ ============
3
+
4
+ to\_csv\_rails implements a to_csv method on your Arrays. It makes exporting records to csv a simple task, even when using responders.
5
+
6
+ ## Installation
7
+
8
+ Simply add this to your Gemfile:
9
+
10
+ gem 'to_csv_rails'
11
+
12
+ Them run:
13
+
14
+ bundle install
15
+
16
+ ## Usage
17
+
18
+ Considering that you have a model called User. Here are some examples.
19
+
20
+ ### Exporting all fields
21
+
22
+ User.all.to_csv
23
+
24
+ ### Exporting only id and name
25
+
26
+ User.all.to_csv(:only => [:id, :name])
27
+
28
+ ### Exporting everything except id
29
+
30
+ User.all.to_csv(:except => [:id])
31
+
32
+ ### Adding headers
33
+
34
+ User.all.to_csv(:headers => [:id, :name])
35
+
36
+ ## Usage with responders
37
+
38
+ On a Rails application it's very common to use responders when you want to display the same data but with a different format.
39
+
40
+ Considering again that your model is User and that you have a controller called UsersController generated by scaffold. Change:
41
+
42
+ def index
43
+ @users = User.all
44
+
45
+ respond_to do |format|
46
+ format.html # index.html.erb
47
+ format.json { render json: @users }
48
+ end
49
+ end
50
+
51
+ To:
52
+
53
+ def index
54
+ @users = User.all
55
+
56
+ respond_to do |format|
57
+ format.html # index.html.erb
58
+ format.json { render json: @users }
59
+ format.csv { render csv: @users }
60
+ end
61
+ end
data/lib/to_csv_rails.rb CHANGED
@@ -14,4 +14,11 @@ else
14
14
  end
15
15
 
16
16
  require "to_csv_rails/version"
17
- require "to_csv_rails/array.rb"
17
+ require "to_csv_rails/array.rb"
18
+
19
+ if defined?(ActionController::Renderers) && ActionController::Renderers.respond_to?(:add)
20
+ ActionController::Renderers.add :csv do |csv, options|
21
+ self.content_type ||= Mime::CSV
22
+ self.response_body = csv.respond_to?(:to_csv) ? csv.to_csv : csv
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module ToCsvRails
2
- VERSION = "0.1"
2
+ VERSION = "0.2"
3
3
  end
data/test/test_csv.rb CHANGED
@@ -11,14 +11,14 @@ class CsvTest < Test::Unit::TestCase
11
11
 
12
12
  data = User.all
13
13
 
14
- assert_equal data.to_csv_rails,
14
+ assert_equal data.to_csv,
15
15
  "#{user1.id},User 1,user1@email.com\n#{user2.id},User 2,user2@email.com\n"
16
16
  end
17
17
 
18
18
  def test_export_with_empty_data
19
19
  data = User.all
20
20
 
21
- assert_equal data.to_csv_rails,
21
+ assert_equal data.to_csv,
22
22
  ""
23
23
  end
24
24
 
@@ -28,7 +28,7 @@ class CsvTest < Test::Unit::TestCase
28
28
 
29
29
  data = User.all
30
30
 
31
- assert_equal data.to_csv_rails(:only => [:name]),
31
+ assert_equal data.to_csv(:only => [:name]),
32
32
  "User 1\nUser 2\n"
33
33
  end
34
34
 
@@ -38,7 +38,7 @@ class CsvTest < Test::Unit::TestCase
38
38
 
39
39
  data = User.all
40
40
 
41
- assert_equal data.to_csv_rails(:except => [:id, :name]),
41
+ assert_equal data.to_csv(:except => [:id, :name]),
42
42
  "user1@email.com\nuser2@email.com\n"
43
43
  end
44
44
 
@@ -48,7 +48,7 @@ class CsvTest < Test::Unit::TestCase
48
48
 
49
49
  data = User.all
50
50
 
51
- assert_equal data.to_csv_rails(:headers => [:id, :name, :email]),
51
+ assert_equal data.to_csv(:headers => [:id, :name, :email]),
52
52
  "id,name,email\n#{user1.id},User 1,user1@email.com\n#{user2.id},User 2,user2@email.com\n"
53
53
  end
54
54
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: to_csv_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: '0.2'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-29 00:00:00.000000000 Z
12
+ date: 2012-12-30 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: An to_csv implementation focused on making it easier for Rails developers
15
15
  to export data to CSV format.
@@ -23,9 +23,9 @@ files:
23
23
  - lib/to_csv_rails/version.rb
24
24
  - lib/to_csv_rails.rb
25
25
  - Rakefile
26
+ - README.md
26
27
  - test/test_csv.rb
27
28
  - test/test_helper.rb
28
- - to_csv_rails-0.1.gem
29
29
  - to_csv_rails.gemspec
30
30
  homepage: http://fernandomarcelo.com/
31
31
  licenses: []