to_csv_rails 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
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: []