mongoid_to_csv 0.1.1 → 0.2.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.
- data/.rvmrc +1 -1
- data/README.rdoc +4 -6
- data/lib/mongoid_to_csv.rb +21 -1
- data/lib/mongoid_to_csv/version.rb +1 -1
- data/mongoid_to_csv.gemspec +3 -0
- data/spec/mongoid_to_csv_spec.rb +4 -0
- metadata +50 -59
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use ruby-1.9.2-
|
1
|
+
rvm use ruby-1.9.2-p318@mongoid_to_csv
|
data/README.rdoc
CHANGED
@@ -23,11 +23,11 @@ to_csv() returns the entire contents including the header ready to be written to
|
|
23
23
|
title,director_id
|
24
24
|
The Kids Are All Right,4
|
25
25
|
|
26
|
-
|
26
|
+
For normal arrays, `to_csv` works the same way.
|
27
27
|
|
28
28
|
Movie.all.to_csv
|
29
|
-
|
30
|
-
|
29
|
+
# Same as
|
30
|
+
Movie.to_csv
|
31
31
|
|
32
32
|
=== Attribute#to_csv
|
33
33
|
|
@@ -48,9 +48,7 @@ Note that object.send(attribute_name) is used, so datetime fields will be return
|
|
48
48
|
|
49
49
|
== Compatibility
|
50
50
|
|
51
|
-
Tested with Mongoid v2.0.2
|
52
|
-
|
53
|
-
http://gem-testers.org/gems/mongoid_to_csv
|
51
|
+
Tested with Ruby 1.9.2-p290 and Mongoid v2.0.2
|
54
52
|
|
55
53
|
== Related gems
|
56
54
|
|
data/lib/mongoid_to_csv.rb
CHANGED
@@ -2,12 +2,20 @@ require 'mongoid'
|
|
2
2
|
require 'csv'
|
3
3
|
|
4
4
|
module MongoidToCSV
|
5
|
+
|
5
6
|
# Return full CSV content with headers as string.
|
6
7
|
# Defined as class method which will have chained scopes applied.
|
7
8
|
def to_csv
|
9
|
+
documents_to_csv(all, fields)
|
10
|
+
end
|
11
|
+
|
12
|
+
module_function
|
13
|
+
|
14
|
+
def documents_to_csv(documents, fields = documents.first.class.fields)
|
15
|
+
doc_class = documents.first.class
|
8
16
|
csv_columns = fields.keys - %w{_id created_at updated_at _type}
|
9
17
|
header_row = csv_columns.to_csv
|
10
|
-
records_rows =
|
18
|
+
records_rows = documents.map do |record|
|
11
19
|
csv_columns.map do |column|
|
12
20
|
value = record.send(column)
|
13
21
|
value = value.to_csv if value.respond_to?(:to_csv)
|
@@ -16,6 +24,7 @@ module MongoidToCSV
|
|
16
24
|
end.join
|
17
25
|
header_row + records_rows
|
18
26
|
end
|
27
|
+
|
19
28
|
end
|
20
29
|
|
21
30
|
module Mongoid::Document
|
@@ -33,3 +42,14 @@ class Mongoid::Relation
|
|
33
42
|
end
|
34
43
|
end
|
35
44
|
end
|
45
|
+
|
46
|
+
module ArrayToCSV
|
47
|
+
def to_csv
|
48
|
+
if first.is_a?(Mongoid::Document)
|
49
|
+
MongoidToCSV.documents_to_csv(self)
|
50
|
+
else
|
51
|
+
super
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
Array.send :include, ArrayToCSV
|
data/mongoid_to_csv.gemspec
CHANGED
@@ -19,6 +19,9 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
|
+
if ENV['RUBY_VERSION'] < 'ruby-1.9.2-p318'
|
23
|
+
s.add_dependency 'fastercsv'
|
24
|
+
end
|
22
25
|
s.add_dependency 'mongoid', '>= 2.0.0.rc.7'
|
23
26
|
|
24
27
|
s.add_development_dependency 'rspec', '2.6.0'
|
data/spec/mongoid_to_csv_spec.rb
CHANGED
metadata
CHANGED
@@ -1,72 +1,67 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid_to_csv
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.1.1
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Jared Ning
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-05-11 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: mongoid
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70342848827680 !ruby/object:Gem::Requirement
|
20
17
|
none: false
|
21
|
-
requirements:
|
22
|
-
- -
|
23
|
-
- !ruby/object:Gem::Version
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
24
21
|
version: 2.0.0.rc.7
|
25
22
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rspec
|
29
23
|
prerelease: false
|
30
|
-
|
24
|
+
version_requirements: *70342848827680
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &70342848827180 !ruby/object:Gem::Requirement
|
31
28
|
none: false
|
32
|
-
requirements:
|
33
|
-
- -
|
34
|
-
- !ruby/object:Gem::Version
|
29
|
+
requirements:
|
30
|
+
- - =
|
31
|
+
- !ruby/object:Gem::Version
|
35
32
|
version: 2.6.0
|
36
33
|
type: :development
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: mongo
|
40
34
|
prerelease: false
|
41
|
-
|
35
|
+
version_requirements: *70342848827180
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: mongo
|
38
|
+
requirement: &70342848826720 !ruby/object:Gem::Requirement
|
42
39
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
46
43
|
version: 1.3.1
|
47
44
|
type: :development
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: bson_ext
|
51
45
|
prerelease: false
|
52
|
-
|
46
|
+
version_requirements: *70342848826720
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: bson_ext
|
49
|
+
requirement: &70342848826340 !ruby/object:Gem::Requirement
|
53
50
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version:
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
58
55
|
type: :development
|
59
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70342848826340
|
60
58
|
description: Simple Mongoid Model to_csv() class method that preserves scopes
|
61
|
-
email:
|
59
|
+
email:
|
62
60
|
- jared@redningja.com
|
63
61
|
executables: []
|
64
|
-
|
65
62
|
extensions: []
|
66
|
-
|
67
63
|
extra_rdoc_files: []
|
68
|
-
|
69
|
-
files:
|
64
|
+
files:
|
70
65
|
- .gitignore
|
71
66
|
- .rvmrc
|
72
67
|
- Gemfile
|
@@ -83,35 +78,31 @@ files:
|
|
83
78
|
- spec/support/macros.rb
|
84
79
|
- spec/support/models/date.rb
|
85
80
|
- spec/support/models/movie.rb
|
86
|
-
has_rdoc: true
|
87
81
|
homepage: https://github.com/ordinaryzelig/mongoid_to_csv
|
88
82
|
licenses: []
|
89
|
-
|
90
83
|
post_install_message:
|
91
84
|
rdoc_options: []
|
92
|
-
|
93
|
-
require_paths:
|
85
|
+
require_paths:
|
94
86
|
- lib
|
95
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
96
88
|
none: false
|
97
|
-
requirements:
|
98
|
-
- -
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
version:
|
101
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ! '>='
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
94
|
none: false
|
103
|
-
requirements:
|
104
|
-
- -
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version:
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
107
99
|
requirements: []
|
108
|
-
|
109
100
|
rubyforge_project: mongoid_to_csv
|
110
|
-
rubygems_version: 1.
|
101
|
+
rubygems_version: 1.8.15
|
111
102
|
signing_key:
|
112
103
|
specification_version: 3
|
113
104
|
summary: Simple Mongoid Model to_csv() class method that preserves scopes
|
114
|
-
test_files:
|
105
|
+
test_files:
|
115
106
|
- spec/database.rb
|
116
107
|
- spec/mongoid_to_csv_spec.rb
|
117
108
|
- spec/spec_helper.rb
|