csv_rails 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+
3
+ one:
4
+ name: Ruby
5
+
6
+ two:
7
+ name: Scala
@@ -0,0 +1,9 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+
3
+ one:
4
+ user: one
5
+ group: one
6
+
7
+ two:
8
+ user: two
9
+ group: two
@@ -2,10 +2,17 @@
2
2
 
3
3
  one:
4
4
  name: よしだあつし
5
- age: 4
6
- secret: <%= Time.now.to_f %>
5
+ age: 29
6
+ secret: "I like curry and rice."
7
7
 
8
8
  two:
9
- name: MyString
10
- age: 1
11
- secret: MyString
9
+ name: yalab
10
+ age: 8
11
+ secret: "I'm a neet."
12
+
13
+ <% 1000.times do |n| %>
14
+ <%= "#{n}:" %>
15
+ name: <%= n %>
16
+ age: <%= n %>
17
+ secret: <%= n %>
18
+ <% end %>
@@ -5,17 +5,19 @@ class UsersControllerTest < ActionController::TestCase
5
5
  setup do
6
6
  User.create(:name => 'yalab', :age => '4', :secret => 'secret')
7
7
  I18n.locale = :ja
8
- @csv = User.all.to_csv(:fields => [:id, :name, :age])
8
+ @fields = [:id, :name, :age, :"groups.first.name"]
9
9
  end
10
+
10
11
  test "should get index" do
11
12
  get :index, :format => 'csv'
12
- assert_equal @csv, response.body
13
+ assert_equal User.all.to_csv(fields: @fields, without_header: true), response.body
13
14
  end
14
15
 
15
16
  test "should get sjis" do
16
17
  get :sjis, :format => 'csv'
17
- assert_equal @csv.encode('SJIS'), response.body
18
+ assert_equal User.all.to_csv(fields: @fields).encode('SJIS'), response.body
18
19
  end
20
+
19
21
  teardown do
20
22
  I18n.locale = :en
21
23
  end
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class GroupTest < ActiveSupport::TestCase
4
+ # Replace this with your real tests.
5
+ test "the truth" do
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class MembershipTest < ActiveSupport::TestCase
4
+ # Replace this with your real tests.
5
+ test "the truth" do
6
+ assert true
7
+ end
8
+ end
@@ -1,71 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'test_helper'
3
- require 'csv'
4
3
  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 "#updated_at_as_csv" do
24
- assert_equal @user.updated_at.strftime("%F %H:%M"), @user.updated_at_as_csv
25
- end
26
-
27
- test ".to_csv without params" do
28
- csv = CSV.parse(User.to_csv)
29
- header = csv.first.map{|f| f.downcase.tr(' ', '_') }
30
- header.delete("updated_at")
31
- line = csv.last
32
- header.each.with_index do |field, index|
33
- assert_equal @user[field].to_s, line[index]
34
- end
35
- end
36
-
37
- test ".to_csv can use fields option" do
38
- fields = [:id, :name]
39
- row = CSV.parse(User.to_csv(:fields => fields)).last
40
- assert_equal fields.map{|f| @user[f].to_s }, row
41
- end
42
-
43
- test ".to_csv varnish header" do
44
- fields = [:id, :name]
45
- row = CSV.parse(User.to_csv(:fields => fields, :without_header => true)).first
46
- assert_not_equal fields.map{|f| User.human_attribute_name(f) }, row
47
- end
48
-
49
- test ".to_csv header use human_attribute_name" do
50
- fields = [:id, :name, :one]
51
- header = CSV.parse(User.to_csv(:fields => fields)).first
52
- assert_equal fields.map{|f| User.human_attribute_name(f) }, header
53
- end
54
-
55
- test ".to_csv with scoped" do
56
- User.create(:name => 'atsushi', :age => 45, :secret => 'none')
57
- assert_equal 1, CSV.parse(User.where("age > 39").to_csv(:without_header => true)).length
58
- end
59
-
60
- test ".to_csv accept encoding" do
61
- I18n.locale = :ja
62
- assert_equal "名前".encode('SJIS'), CSV.parse(User.to_csv(:fields => [:name], :encoding => 'SJIS')).first.first
63
- I18n.locale = :en
64
- end
65
-
66
- test "Array.to_csv accept encoding" do
67
- I18n.locale = :ja
68
- assert_equal "名前".encode('SJIS'), CSV.parse(User.all.to_csv(:fields => [:name], :encoding => 'SJIS')).first.first
69
- I18n.locale = :en
70
- end
71
4
  end
@@ -0,0 +1 @@
1
+ 6831
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csv_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-26 00:00:00.000000000 Z
12
+ date: 2012-03-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &82167080 !ruby/object:Gem::Requirement
16
+ requirement: &72139610 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *82167080
24
+ version_requirements: *72139610
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sqlite3
27
- requirement: &82166240 !ruby/object:Gem::Requirement
27
+ requirement: &69015590 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *82166240
35
+ version_requirements: *69015590
36
36
  description: The csv_rails gem provides a download csv file with rails.
37
37
  email:
38
38
  - rudeboyjet@gmail.com
@@ -42,9 +42,8 @@ extra_rdoc_files: []
42
42
  files:
43
43
  - lib/csv_rails/array.rb
44
44
  - lib/csv_rails/version.rb
45
+ - lib/csv_rails/active_record.rb
45
46
  - lib/csv_rails.rb
46
- - lib/tasks/csv_rails_tasks.rake
47
- - lib/active_record/acts/csv.rb
48
47
  - MIT-LICENSE
49
48
  - Rakefile
50
49
  - README.rdoc
@@ -70,11 +69,18 @@ files:
70
69
  - test/dummy/public/404.html
71
70
  - test/dummy/public/500.html
72
71
  - test/dummy/doc/README_FOR_APP
72
+ - test/dummy/tmp/pids/server.pid
73
+ - test/dummy/test/fixtures/groups.yml
74
+ - test/dummy/test/fixtures/memberships.yml
73
75
  - test/dummy/test/fixtures/users.yml
76
+ - test/dummy/test/unit/group_test.rb
77
+ - test/dummy/test/unit/membership_test.rb
74
78
  - test/dummy/test/unit/user_test.rb
75
79
  - test/dummy/test/unit/helpers/users_helper_test.rb
76
80
  - test/dummy/test/functional/users_controller_test.rb
77
81
  - test/dummy/db/migrate/20120323112247_create_users.rb
82
+ - test/dummy/db/migrate/20120328072253_create_groups.rb
83
+ - test/dummy/db/migrate/20120328072740_create_memberships.rb
78
84
  - test/dummy/db/schema.rb
79
85
  - test/dummy/db/development.sqlite3
80
86
  - test/dummy/db/test.sqlite3
@@ -91,10 +97,14 @@ files:
91
97
  - test/dummy/app/controllers/users_controller.rb
92
98
  - test/dummy/app/controllers/application_controller.rb
93
99
  - test/dummy/app/models/user.rb
100
+ - test/dummy/app/models/group.rb
101
+ - test/dummy/app/models/membership.rb
94
102
  - test/dummy/app/helpers/users_helper.rb
95
103
  - test/dummy/app/helpers/application_helper.rb
96
104
  - test/dummy/app/views/users/index.html.erb
97
105
  - test/dummy/app/views/layouts/application.html.erb
106
+ - test/csv_rails/array_test.rb
107
+ - test/csv_rails/active_record_test.rb
98
108
  - test/test_helper.rb
99
109
  - test/csv_rails_test.rb
100
110
  homepage: https://github.com/yalab/csv_rails
@@ -145,11 +155,18 @@ test_files:
145
155
  - test/dummy/public/404.html
146
156
  - test/dummy/public/500.html
147
157
  - test/dummy/doc/README_FOR_APP
158
+ - test/dummy/tmp/pids/server.pid
159
+ - test/dummy/test/fixtures/groups.yml
160
+ - test/dummy/test/fixtures/memberships.yml
148
161
  - test/dummy/test/fixtures/users.yml
162
+ - test/dummy/test/unit/group_test.rb
163
+ - test/dummy/test/unit/membership_test.rb
149
164
  - test/dummy/test/unit/user_test.rb
150
165
  - test/dummy/test/unit/helpers/users_helper_test.rb
151
166
  - test/dummy/test/functional/users_controller_test.rb
152
167
  - test/dummy/db/migrate/20120323112247_create_users.rb
168
+ - test/dummy/db/migrate/20120328072253_create_groups.rb
169
+ - test/dummy/db/migrate/20120328072740_create_memberships.rb
153
170
  - test/dummy/db/schema.rb
154
171
  - test/dummy/db/development.sqlite3
155
172
  - test/dummy/db/test.sqlite3
@@ -166,9 +183,13 @@ test_files:
166
183
  - test/dummy/app/controllers/users_controller.rb
167
184
  - test/dummy/app/controllers/application_controller.rb
168
185
  - test/dummy/app/models/user.rb
186
+ - test/dummy/app/models/group.rb
187
+ - test/dummy/app/models/membership.rb
169
188
  - test/dummy/app/helpers/users_helper.rb
170
189
  - test/dummy/app/helpers/application_helper.rb
171
190
  - test/dummy/app/views/users/index.html.erb
172
191
  - test/dummy/app/views/layouts/application.html.erb
192
+ - test/csv_rails/array_test.rb
193
+ - test/csv_rails/active_record_test.rb
173
194
  - test/test_helper.rb
174
195
  - test/csv_rails_test.rb
@@ -1,42 +0,0 @@
1
- require 'csv'
2
- module ActiveRecord
3
- module Acts
4
- module Csv
5
- def self.included(base)
6
- base.extend ClassMethods
7
- ::ActiveRecord::Relation.send(:include, ClassMethods)
8
- base.send(:include, InstanceMethods)
9
- end
10
-
11
- module ClassMethods
12
- def to_csv(opts={})
13
- fields = if opts[:fields]
14
- opts.delete(:fields)
15
- elsif respond_to?(:attribute_names)
16
- attribute_names
17
- elsif self.is_a?(ActiveRecord::Relation)
18
- @klass.new.attribute_names
19
- else
20
- new.attribute_names
21
- end
22
- csv = CSV.generate do |_csv|
23
- _csv << fields.map{|f| human_attribute_name(f) } unless opts[:without_header]
24
- all.each{|row| _csv << row.to_csv_ary(fields) }
25
- end
26
- opts[:encoding] ? csv.encode(opts[:encoding]) : csv
27
- end
28
- end
29
-
30
- module InstanceMethods
31
- def to_csv_ary(fields=nil, opts={})
32
- fields = attribute_names unless fields
33
- fields.map{|field|
34
- convert_method = "#{field}_as_csv"
35
- method = respond_to?(convert_method) ? convert_method : field
36
- send(method)
37
- }
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :csv_rails do
3
- # # Task goes here
4
- # end