csv_rails 0.3.0

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.
Files changed (59) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +45 -0
  3. data/Rakefile +38 -0
  4. data/lib/active_record/acts/csv.rb +37 -0
  5. data/lib/csv_rails/array.rb +29 -0
  6. data/lib/csv_rails/version.rb +3 -0
  7. data/lib/csv_rails.rb +10 -0
  8. data/lib/tasks/csv_rails_tasks.rake +4 -0
  9. data/test/csv_rails_test.rb +7 -0
  10. data/test/dummy/README.rdoc +261 -0
  11. data/test/dummy/Rakefile +7 -0
  12. data/test/dummy/app/assets/javascripts/application.js +15 -0
  13. data/test/dummy/app/assets/javascripts/users.js +2 -0
  14. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  15. data/test/dummy/app/assets/stylesheets/users.css +4 -0
  16. data/test/dummy/app/controllers/application_controller.rb +3 -0
  17. data/test/dummy/app/controllers/users_controller.rb +17 -0
  18. data/test/dummy/app/helpers/application_helper.rb +2 -0
  19. data/test/dummy/app/helpers/users_helper.rb +2 -0
  20. data/test/dummy/app/models/user.rb +9 -0
  21. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  22. data/test/dummy/app/views/users/index.html.erb +2 -0
  23. data/test/dummy/config/application.rb +56 -0
  24. data/test/dummy/config/boot.rb +10 -0
  25. data/test/dummy/config/database.yml +25 -0
  26. data/test/dummy/config/environment.rb +5 -0
  27. data/test/dummy/config/environments/development.rb +37 -0
  28. data/test/dummy/config/environments/production.rb +67 -0
  29. data/test/dummy/config/environments/test.rb +37 -0
  30. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  31. data/test/dummy/config/initializers/inflections.rb +15 -0
  32. data/test/dummy/config/initializers/mime_types.rb +5 -0
  33. data/test/dummy/config/initializers/secret_token.rb +7 -0
  34. data/test/dummy/config/initializers/session_store.rb +8 -0
  35. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  36. data/test/dummy/config/locales/en.yml +5 -0
  37. data/test/dummy/config/locales/ja.yml +7 -0
  38. data/test/dummy/config/routes.rb +62 -0
  39. data/test/dummy/config.ru +4 -0
  40. data/test/dummy/db/development.sqlite3 +0 -0
  41. data/test/dummy/db/migrate/20120323112247_create_users.rb +11 -0
  42. data/test/dummy/db/schema.rb +24 -0
  43. data/test/dummy/db/test.sqlite3 +0 -0
  44. data/test/dummy/doc/README_FOR_APP +2 -0
  45. data/test/dummy/log/development.log +81 -0
  46. data/test/dummy/log/production.log +0 -0
  47. data/test/dummy/log/server.log +0 -0
  48. data/test/dummy/log/test.log +1599 -0
  49. data/test/dummy/public/404.html +26 -0
  50. data/test/dummy/public/422.html +26 -0
  51. data/test/dummy/public/500.html +25 -0
  52. data/test/dummy/public/favicon.ico +0 -0
  53. data/test/dummy/script/rails +6 -0
  54. data/test/dummy/test/fixtures/users.yml +11 -0
  55. data/test/dummy/test/functional/users_controller_test.rb +22 -0
  56. data/test/dummy/test/unit/helpers/users_helper_test.rb +4 -0
  57. data/test/dummy/test/unit/user_test.rb +71 -0
  58. data/test/test_helper.rb +10 -0
  59. metadata +176 -0
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ </div>
24
+ </body>
25
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,11 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ name: MyString
5
+ age: 1
6
+ secret: MyString
7
+
8
+ two:
9
+ name: MyString
10
+ age: 1
11
+ secret: MyString
@@ -0,0 +1,22 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test_helper'
3
+
4
+ class UsersControllerTest < ActionController::TestCase
5
+ setup do
6
+ User.create(:name => 'yalab', :age => '4', :secret => 'secret')
7
+ I18n.locale = :ja
8
+ @csv = User.all.to_csv(:encoding => 'SJIS', :fields => [:id, :name, :age])
9
+ end
10
+ test "should get index" do
11
+ get :index, :format => 'csv'
12
+ assert_equal @csv, response.body
13
+ end
14
+
15
+ test "should get sjis" do
16
+ get :sjis, :format => 'csv'
17
+ assert_equal @csv, response.body
18
+ end
19
+ teardown do
20
+ I18n.locale = :en
21
+ end
22
+ end
@@ -0,0 +1,4 @@
1
+ require 'test_helper'
2
+
3
+ class UsersHelperTest < ActionView::TestCase
4
+ end
@@ -0,0 +1,71 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test_helper'
3
+ require 'csv'
4
+ class UserTest < ActiveSupport::TestCase
5
+ setup do
6
+ @user = User.create(:name => 'yalab', :age => '29', :secret => 'password')
7
+ end
8
+
9
+ test "#to_csv_ary without params" do
10
+ assert_equal @user.attributes.length, @user.to_csv_ary.length
11
+ assert_equal @user.attributes.values[0..-2], @user.to_csv_ary[0..-2]
12
+ end
13
+
14
+ test "#to_csv_ary with field params" do
15
+ fields = [:name, :age]
16
+ assert_equal fields.map{|f| @user[f] }, @user.to_csv_ary(fields)
17
+ end
18
+
19
+ test "#to_csv_ary use method not a database field" do
20
+ assert_equal [@user.one], @user.to_csv_ary([:one])
21
+ end
22
+
23
+ test "#to_csv_ary accept encoding" do
24
+ name = 'よしだ'
25
+ assert_equal name.encode('SJIS'), User.create(:name => name).to_csv_ary([:name], :encoding => 'SJIS').first
26
+ end
27
+
28
+ test "#updated_at_as_csv" do
29
+ assert_equal @user.updated_at.strftime("%F %H:%M"), @user.updated_at_as_csv
30
+ end
31
+
32
+ test ".to_csv without params" do
33
+ csv = CSV.parse(User.to_csv)
34
+ header = csv.first.map{|f| f.downcase.tr(' ', '_') }
35
+ header.delete("updated_at")
36
+ line = csv.last
37
+ header.each.with_index do |field, index|
38
+ assert_equal @user[field].to_s, line[index]
39
+ end
40
+ end
41
+
42
+ test ".to_csv can use fields option" do
43
+ fields = [:id, :name]
44
+ row = CSV.parse(User.to_csv(:fields => fields)).last
45
+ assert_equal fields.map{|f| @user[f].to_s }, row
46
+ end
47
+
48
+ test ".to_csv varnish header" do
49
+ fields = [:id, :name]
50
+ row = CSV.parse(User.to_csv(:fields => fields, :without_header => true)).first
51
+ assert_not_equal fields.map{|f| User.human_attribute_name(f) }, row
52
+ end
53
+
54
+ test ".to_csv header use human_attribute_name" do
55
+ fields = [:id, :name, :one]
56
+ header = CSV.parse(User.to_csv(:fields => fields)).first
57
+ assert_equal fields.map{|f| User.human_attribute_name(f) }, header
58
+ end
59
+
60
+ test ".to_csv with scoped" do
61
+ User.create(:name => 'atsushi', :age => 45, :secret => 'none')
62
+ assert_equal 1, CSV.parse(User.where("age > 39").to_csv(:without_header => true)).length
63
+ end
64
+
65
+ test ".to_csv accept encoding" do
66
+ I18n.locale = :ja
67
+ assert_equal "名前".encode('SJIS'), CSV.parse(User.to_csv(:fields => [:name], :encoding => 'SJIS')).first.first
68
+ I18n.locale = :en
69
+ end
70
+
71
+ end
@@ -0,0 +1,10 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
metadata ADDED
@@ -0,0 +1,176 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: csv_rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - yalab
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &75339440 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.2'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *75339440
25
+ - !ruby/object:Gem::Dependency
26
+ name: sqlite3
27
+ requirement: &75339230 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *75339230
36
+ description: The csv_rails gem provides a download csv file with rails.
37
+ email:
38
+ - rudeboyjet@gmail.com
39
+ executables: []
40
+ extensions: []
41
+ extra_rdoc_files: []
42
+ files:
43
+ - lib/csv_rails/array.rb
44
+ - lib/csv_rails/version.rb
45
+ - lib/csv_rails.rb
46
+ - lib/tasks/csv_rails_tasks.rake
47
+ - lib/active_record/acts/csv.rb
48
+ - MIT-LICENSE
49
+ - Rakefile
50
+ - README.rdoc
51
+ - test/dummy/config.ru
52
+ - test/dummy/config/application.rb
53
+ - test/dummy/config/routes.rb
54
+ - test/dummy/config/boot.rb
55
+ - test/dummy/config/locales/en.yml
56
+ - test/dummy/config/locales/ja.yml
57
+ - test/dummy/config/initializers/session_store.rb
58
+ - test/dummy/config/initializers/inflections.rb
59
+ - test/dummy/config/initializers/mime_types.rb
60
+ - test/dummy/config/initializers/wrap_parameters.rb
61
+ - test/dummy/config/initializers/secret_token.rb
62
+ - test/dummy/config/initializers/backtrace_silencers.rb
63
+ - test/dummy/config/environment.rb
64
+ - test/dummy/config/environments/test.rb
65
+ - test/dummy/config/environments/development.rb
66
+ - test/dummy/config/environments/production.rb
67
+ - test/dummy/config/database.yml
68
+ - test/dummy/script/rails
69
+ - test/dummy/public/favicon.ico
70
+ - test/dummy/public/422.html
71
+ - test/dummy/public/404.html
72
+ - test/dummy/public/500.html
73
+ - test/dummy/doc/README_FOR_APP
74
+ - test/dummy/test/fixtures/users.yml
75
+ - test/dummy/test/unit/user_test.rb
76
+ - test/dummy/test/unit/helpers/users_helper_test.rb
77
+ - test/dummy/test/functional/users_controller_test.rb
78
+ - test/dummy/db/migrate/20120323112247_create_users.rb
79
+ - test/dummy/db/schema.rb
80
+ - test/dummy/db/development.sqlite3
81
+ - test/dummy/db/test.sqlite3
82
+ - test/dummy/log/development.log
83
+ - test/dummy/log/server.log
84
+ - test/dummy/log/production.log
85
+ - test/dummy/log/test.log
86
+ - test/dummy/README.rdoc
87
+ - test/dummy/Rakefile
88
+ - test/dummy/app/assets/javascripts/users.js
89
+ - test/dummy/app/assets/javascripts/application.js
90
+ - test/dummy/app/assets/stylesheets/users.css
91
+ - test/dummy/app/assets/stylesheets/application.css
92
+ - test/dummy/app/controllers/users_controller.rb
93
+ - test/dummy/app/controllers/application_controller.rb
94
+ - test/dummy/app/models/user.rb
95
+ - test/dummy/app/helpers/users_helper.rb
96
+ - test/dummy/app/helpers/application_helper.rb
97
+ - test/dummy/app/views/users/index.html.erb
98
+ - test/dummy/app/views/layouts/application.html.erb
99
+ - test/test_helper.rb
100
+ - test/csv_rails_test.rb
101
+ homepage: https://github.com/yalab/csv_rails
102
+ licenses:
103
+ - MIT
104
+ post_install_message:
105
+ rdoc_options: []
106
+ require_paths:
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ! '>='
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ requirements: []
121
+ rubyforge_project:
122
+ rubygems_version: 1.8.16
123
+ signing_key:
124
+ specification_version: 3
125
+ summary: A rails plugin for download csv.
126
+ test_files:
127
+ - test/dummy/config.ru
128
+ - test/dummy/config/application.rb
129
+ - test/dummy/config/routes.rb
130
+ - test/dummy/config/boot.rb
131
+ - test/dummy/config/locales/en.yml
132
+ - test/dummy/config/locales/ja.yml
133
+ - test/dummy/config/initializers/session_store.rb
134
+ - test/dummy/config/initializers/inflections.rb
135
+ - test/dummy/config/initializers/mime_types.rb
136
+ - test/dummy/config/initializers/wrap_parameters.rb
137
+ - test/dummy/config/initializers/secret_token.rb
138
+ - test/dummy/config/initializers/backtrace_silencers.rb
139
+ - test/dummy/config/environment.rb
140
+ - test/dummy/config/environments/test.rb
141
+ - test/dummy/config/environments/development.rb
142
+ - test/dummy/config/environments/production.rb
143
+ - test/dummy/config/database.yml
144
+ - test/dummy/script/rails
145
+ - test/dummy/public/favicon.ico
146
+ - test/dummy/public/422.html
147
+ - test/dummy/public/404.html
148
+ - test/dummy/public/500.html
149
+ - test/dummy/doc/README_FOR_APP
150
+ - test/dummy/test/fixtures/users.yml
151
+ - test/dummy/test/unit/user_test.rb
152
+ - test/dummy/test/unit/helpers/users_helper_test.rb
153
+ - test/dummy/test/functional/users_controller_test.rb
154
+ - test/dummy/db/migrate/20120323112247_create_users.rb
155
+ - test/dummy/db/schema.rb
156
+ - test/dummy/db/development.sqlite3
157
+ - test/dummy/db/test.sqlite3
158
+ - test/dummy/log/development.log
159
+ - test/dummy/log/server.log
160
+ - test/dummy/log/production.log
161
+ - test/dummy/log/test.log
162
+ - test/dummy/README.rdoc
163
+ - test/dummy/Rakefile
164
+ - test/dummy/app/assets/javascripts/users.js
165
+ - test/dummy/app/assets/javascripts/application.js
166
+ - test/dummy/app/assets/stylesheets/users.css
167
+ - test/dummy/app/assets/stylesheets/application.css
168
+ - test/dummy/app/controllers/users_controller.rb
169
+ - test/dummy/app/controllers/application_controller.rb
170
+ - test/dummy/app/models/user.rb
171
+ - test/dummy/app/helpers/users_helper.rb
172
+ - test/dummy/app/helpers/application_helper.rb
173
+ - test/dummy/app/views/users/index.html.erb
174
+ - test/dummy/app/views/layouts/application.html.erb
175
+ - test/test_helper.rb
176
+ - test/csv_rails_test.rb