csv_rails 0.4.1 → 0.5.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.
@@ -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