mdarray-jcsv 0.6.3-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +23 -0
  3. data/README.md +2 -0
  4. data/Rakefile +46 -0
  5. data/config.rb +104 -0
  6. data/lib/constraints.rb +205 -0
  7. data/lib/date_filters.rb +252 -0
  8. data/lib/dimensions.rb +276 -0
  9. data/lib/filters.rb +332 -0
  10. data/lib/jcsv.rb +107 -0
  11. data/lib/list_reader.rb +200 -0
  12. data/lib/locale.rb +192 -0
  13. data/lib/map_reader.rb +192 -0
  14. data/lib/mdarray-jcsv.rb +24 -0
  15. data/lib/mdarray_reader.rb +110 -0
  16. data/lib/numeric_filters.rb +225 -0
  17. data/lib/reader.rb +547 -0
  18. data/lib/supercsv_interface.rb +231 -0
  19. data/test/test_complete.rb +37 -0
  20. data/test/test_critbit.rb +442 -0
  21. data/test/test_customer_list.rb +436 -0
  22. data/test/test_customer_map.rb +209 -0
  23. data/test/test_customer_nhlist.rb +161 -0
  24. data/test/test_deep_map.rb +264 -0
  25. data/test/test_del.rb +73 -0
  26. data/test/test_dimensions.rb +231 -0
  27. data/test/test_example.rb +79 -0
  28. data/test/test_filters.rb +374 -0
  29. data/test/test_list_dimensions.rb +110 -0
  30. data/test/test_mdarray.rb +227 -0
  31. data/test/test_missing_data.rb +57 -0
  32. data/vendor/commons-beanutils-1.8.3.jar +0 -0
  33. data/vendor/commons-lang3-3.1.jar +0 -0
  34. data/vendor/dozer-5.4.0.jar +0 -0
  35. data/vendor/jcl-over-slf4j-1.6.6.jar +0 -0
  36. data/vendor/joda-time-2.7.jar +0 -0
  37. data/vendor/slf4j-api-1.7.5.jar +0 -0
  38. data/vendor/snakeyaml-1.14.jar +0 -0
  39. data/vendor/super-csv-2.4.0.jar +0 -0
  40. data/vendor/super-csv-dozer-2.4.0.jar +0 -0
  41. data/vendor/super-csv-java8-2.4.0.jar +0 -0
  42. data/vendor/super-csv-joda-2.4.0.jar +0 -0
  43. data/version.rb +2 -0
  44. metadata +196 -0
@@ -0,0 +1,110 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##########################################################################################
4
+ # Copyright © 2015 Rodrigo Botafogo. All Rights Reserved. Permission to use, copy, modify,
5
+ # and distribute this software and its documentation for educational, research, and
6
+ # not-for-profit purposes, without fee and without a signed licensing agreement, is hereby
7
+ # granted, provided that the above copyright notice, this paragraph and the following two
8
+ # paragraphs appear in all copies, modifications, and distributions. Contact Rodrigo
9
+ # Botafogo - rodrigo.a.botafogo@gmail.com for commercial licensing opportunities.
10
+ #
11
+ # IN NO EVENT SHALL RODRIGO BOTAFOGO BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
12
+ # INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF
13
+ # THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF RODRIGO BOTAFOGO HAS BEEN ADVISED OF THE
14
+ # POSSIBILITY OF SUCH DAMAGE.
15
+ #
16
+ # RODRIGO BOTAFOGO SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
17
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
18
+ # SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS IS".
19
+ # RODRIGO BOTAFOGO HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
20
+ # OR MODIFICATIONS.
21
+ ##########################################################################################
22
+
23
+ require 'test/unit'
24
+ require 'shoulda'
25
+
26
+ require_relative '../config'
27
+
28
+ require 'jcsv'
29
+
30
+ class CSVTest < Test::Unit::TestCase
31
+
32
+ context "CSV test" do
33
+
34
+ setup do
35
+
36
+ end
37
+
38
+ #-------------------------------------------------------------------------------------
39
+ # Read data into a list.
40
+ #-------------------------------------------------------------------------------------
41
+
42
+ should "read panel data into a list" do
43
+
44
+ reader = Jcsv.reader("../data/epilepsy.csv",
45
+ dimensions: [:treatment, :subject, :period],
46
+ default_filter: Jcsv.int)
47
+
48
+ # remove the :patient field from the data, as this field is already given by the
49
+ # :subject field.
50
+ reader.mapping = {:patient => false}
51
+
52
+ # read all the data into a flat map (hash) with keys the dimensions values
53
+ # concatenated with '.'.
54
+ treatment = reader.read
55
+ # p treatment
56
+
57
+ assert_equal(["placebo", "1", "1"], treatment[0][0])
58
+ assert_equal([1, 11, 31, 5], treatment[0][1..-1])
59
+ assert_equal(["placebo", "2", "2"], treatment[5][0])
60
+
61
+ end
62
+
63
+ #-------------------------------------------------------------------------------------
64
+ # Read data into a list with chunk_size
65
+ #-------------------------------------------------------------------------------------
66
+
67
+ should "read panel data into a list with chunk size" do
68
+
69
+ # deep_map is ignored if reading into a list
70
+ reader = Jcsv.reader("../data/epilepsy.csv", chunk_size: 20, deep_map: true,
71
+ dimensions: [:treatment, :subject, :period],
72
+ default_filter: Jcsv.int)
73
+
74
+ # remove the :patient field from the data, as this field is already given by the
75
+ # :subject field.
76
+ reader.mapping = {:patient => false}
77
+
78
+ # read all the data into a flat map (hash) with keys the dimensions values
79
+ # concatenated with '.'.
80
+ treatment = reader.read
81
+ # p treatment[0]
82
+ # p treatment[10]
83
+
84
+ assert_equal(["placebo", "1", "1"], treatment[0][0][0])
85
+ assert_equal(["placebo", "2", "2"], treatment[0][5][0])
86
+ assert_equal(["placebo", "16", "1"], treatment[3][0][0])
87
+ assert_equal(["Progabide", "52", "4"], treatment[10][7][0])
88
+
89
+ end
90
+
91
+ #-------------------------------------------------------------------------------------
92
+ # Read data into a list.
93
+ #-------------------------------------------------------------------------------------
94
+
95
+ should "read more panel data" do
96
+
97
+ reader = Jcsv.reader("../data/GoodOrder.csv", col_sep: ";",
98
+ dimensions: [:dim_1, :dim_2, :dim_3])
99
+ reader.filters = {
100
+ :data => Jcsv.int,
101
+ }
102
+
103
+ table = reader.read
104
+ # p table
105
+
106
+ end
107
+
108
+ end
109
+
110
+ end
@@ -0,0 +1,227 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##########################################################################################
4
+ # Copyright © 2015 Rodrigo Botafogo. All Rights Reserved. Permission to use, copy, modify,
5
+ # and distribute this software and its documentation for educational, research, and
6
+ # not-for-profit purposes, without fee and without a signed licensing agreement, is hereby
7
+ # granted, provided that the above copyright notice, this paragraph and the following two
8
+ # paragraphs appear in all copies, modifications, and distributions. Contact Rodrigo
9
+ # Botafogo - rodrigo.a.botafogo@gmail.com for commercial licensing opportunities.
10
+ #
11
+ # IN NO EVENT SHALL RODRIGO BOTAFOGO BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
12
+ # INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF
13
+ # THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF RODRIGO BOTAFOGO HAS BEEN ADVISED OF THE
14
+ # POSSIBILITY OF SUCH DAMAGE.
15
+ #
16
+ # RODRIGO BOTAFOGO SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
17
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
18
+ # SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS IS".
19
+ # RODRIGO BOTAFOGO HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
20
+ # OR MODIFICATIONS.
21
+ ##########################################################################################
22
+
23
+ require 'rubygems'
24
+ require 'test/unit'
25
+ require 'shoulda'
26
+ require 'matrix'
27
+ require 'mdarray'
28
+
29
+ require_relative '../config'
30
+
31
+ require 'mdarray-jcsv'
32
+
33
+ class CSVTest < Test::Unit::TestCase
34
+
35
+ context "CSV test" do
36
+
37
+ setup do
38
+
39
+ end
40
+
41
+ #-------------------------------------------------------------------------------------
42
+ #
43
+ #-------------------------------------------------------------------------------------
44
+
45
+ should "read data without dimensions" do
46
+
47
+ vale = Jcsv.reader("../data/VALE_2014.csv", format: :mdarray, dtype: :double)
48
+ # need to drop date, as this is not a double and we did not make it a
49
+ # dimension
50
+ vale.mapping = {:date => false}
51
+ data = vale.read
52
+ assert_equal(8.24, data[0, 0])
53
+ assert_equal(7.79, data[15, 2])
54
+ assert_equal(13.512299, data[251, 5])
55
+
56
+ end
57
+
58
+ #-------------------------------------------------------------------------------------
59
+ #
60
+ #-------------------------------------------------------------------------------------
61
+
62
+ should "read data with one dimension" do
63
+
64
+ vale = Jcsv.reader("../data/VALE_2014.csv", format: :mdarray, dtype: :double,
65
+ dimensions: [:date])
66
+ data = vale.read
67
+ assert_equal(8.24, data[0, 0])
68
+ assert_equal(7.79, data[15, 2])
69
+ assert_equal(13.512299, data[251, 5])
70
+
71
+ end
72
+
73
+
74
+ #-------------------------------------------------------------------------------------
75
+ #
76
+ #-------------------------------------------------------------------------------------
77
+
78
+ should "read balanced panel data" do
79
+
80
+ # person,year,income,age,sex
81
+ # 1,2001,1300,27,1
82
+ # 1,2002,1600,28,1
83
+ # 1,2003,2000,29,1
84
+ # 2,2001,2000,38,2
85
+ # 2,2002,2300,39,2
86
+ # 2,2003,2400,40,2
87
+
88
+ reader = Jcsv.reader("../data/balanced_panel.csv", format: :mdarray, dtype: :double,
89
+ dimensions: [:person, :year])
90
+ balanced_panel = reader.read
91
+
92
+ # method [] of reader returns the labels of the given dimension. Headers can be
93
+ # obtained by doing reader[:_data_], _data_ is the header dimension
94
+ assert_equal(["1", "2"], reader[:person])
95
+ assert_equal(["2001", "2002", "2003"], reader[:year])
96
+ assert_equal([:income, :age, :sex], reader[:_data_])
97
+
98
+ # Take a section of the MDArray. Get all data values from person 1
99
+ balanced_panel.section([0, 0, 0],
100
+ [1, reader[:year].size, reader[:_data_].size]).print
101
+
102
+ # Get the income for both persons for year 2001 and calculate their mean
103
+ puts balanced_panel.section([0, 0, 0],
104
+ [reader[:person].size, 1, 1], true).
105
+ reset_statistics.mean
106
+
107
+ end
108
+
109
+ #-------------------------------------------------------------------------------------
110
+ #
111
+ #-------------------------------------------------------------------------------------
112
+
113
+ should "read unbalanced panel data" do
114
+
115
+ # Note that in this case the data is unbalanced, i.e., there are two entries for
116
+ # person 1, 3 entries for person 2 and one entry for person 3. jCSV will
117
+ # automatically fill the missing data with NaN.
118
+
119
+ # person,year,income,age,sex
120
+ # 1,2001,1600,23,1
121
+ # 1,2002,1500,24,1
122
+ # 2,2001,1900,41,2
123
+ # 2,2002,2000,42,2
124
+ # 2,2003,2100,43,2
125
+ # 3,2002,3300,34,1
126
+
127
+ reader = Jcsv.reader("../data/unbalanced_panel.csv", format: :mdarray,
128
+ dtype: :double, dimensions: [:person, :year])
129
+ ub_panel = reader.read
130
+
131
+ assert_equal(["1", "2", "3"], reader[:person])
132
+ assert_equal(["2001", "2002", "2003"], reader[:year])
133
+ assert_equal([:income, :age, :sex], reader[:_data_])
134
+
135
+ # The following data is expected after reading the unbalanced data
136
+
137
+ # person,year,income,age,sex
138
+ # 1,2001,1600,23,1
139
+ # 1,2002,1500,24,1
140
+ # 1,2003,NaN,NaN,NaN
141
+ # 2,2001,1900,41,2
142
+ # 2,2002,2000,42,2
143
+ # 2,2003,2100,43,2
144
+ # 3,2001,NaN,NaN,NaN
145
+ # 3,2002,3300,34,1
146
+ # 3,2003,NaN,NaN,NaN
147
+
148
+ assert_equal(1600, ub_panel[0, 0, 0])
149
+ assert_equal(true, ub_panel[0, 2, 0].nan?)
150
+ assert_equal(34, ub_panel[2, 1, 1])
151
+ assert_equal(true, ub_panel[2, 2, 2].nan?)
152
+
153
+ end
154
+
155
+
156
+ #-------------------------------------------------------------------------------------
157
+ #
158
+ #-------------------------------------------------------------------------------------
159
+
160
+ should "convert to MDArray" do
161
+
162
+ # Data which show the effect of two soporific drugs (increase in hours of sleep
163
+ # compared to control) on 10 patients.
164
+
165
+ reader = Jcsv.reader("../data/sleep.csv", format: :mdarray, col_sep: ";",
166
+ comment_starts: "#", dtype: :float,
167
+ dimensions: [:group, :id])
168
+ reader.mapping = {:row => false}
169
+ ssleep = reader.read
170
+ # ssleep.print
171
+
172
+ group1 = ssleep.slice(0, 0)
173
+ group2 = ssleep.slice(0, 1)
174
+
175
+ # Print many statistics about group1. Need to call reset_statistics on group1 to
176
+ # prepare it for calculations and clear all the caches. Calculations are
177
+ # cached, for example, when the mean is calculated it will be cached. When the
178
+ # standard deviation is calculated, there is no need to calculate the mean again,
179
+ # since it has already been calculated. Thre problem with this approach is that
180
+ # if the array is changed in any way, then reset_statistics needs to be called
181
+ # again or all cached values will be returned again.
182
+ group1.reset_statistics
183
+
184
+ puts "correlation group1 vs group2: " + group1.correlation(group2).to_s
185
+ puts "auto correlation: " + group1.auto_correlation(1).to_s
186
+ puts "durbin watson: " + group1.durbin_watson.to_s
187
+ puts "geometric mean: " + group1.geometric_mean.to_s
188
+ puts "harmonic mean: " + group1.harmonic_mean.to_s
189
+ puts "kurtosis: " + group1.kurtosis.to_s
190
+ puts "lag1: " + group1.lag1.to_s
191
+ puts "max: " + group1.max.to_s
192
+ puts "mean: " + group1.mean.to_s
193
+ puts "mean deviation: " + group1.mean_deviation.to_s
194
+ puts "median: " + group1.median.to_s
195
+ puts "min: " + group1.min.to_s
196
+ puts "moment3: " + group1.moment3.to_s
197
+ puts "moment4: " + group1.moment4.to_s
198
+ puts "product: " + group1.product.to_s
199
+ puts "quantile(0.2): " + group1.quantile(0.2).to_s
200
+ puts "quantile inverse(35.0): " + group1.quantile_inverse(35.0).to_s
201
+ puts "rank interpolated(33.0): " + group1.rank_interpolated(33.0).to_s
202
+ puts "rms: " + group1.rms.to_s
203
+ puts "sample kurtosis: " + group1.sample_kurtosis.to_s
204
+ puts "sample kurtosis standard error: " + group1.sample_kurtosis_standard_error.to_s
205
+ puts "sample skew: " + group1.sample_skew.to_s
206
+ puts "sample skew standard error: " + group1.sample_skew_standard_error.to_s
207
+ puts "sample standard deviation: " + group1.sample_standard_deviation.to_s
208
+ puts "sample variance: " + group1.sample_variance.to_s
209
+ puts "skew: " + group1.skew.to_s
210
+ puts "standard deviation: " + group1.standard_deviation.to_s
211
+ puts "standard error: " + group1.standard_error.to_s
212
+ puts "sum: " + group1.sum.to_s
213
+ puts "sum of inversions: " + group1.sum_of_inversions.to_s
214
+ puts "sum of logarithms: " + group1.sum_of_logarithms.to_s
215
+ puts "sum of power deviations: " + group1.sum_of_power_deviations(2, group1.mean).to_s
216
+ puts "sum of powers(3): " + group1.sum_of_powers(3).to_s
217
+ puts "sum of squares: " + group1.sum_of_squares.to_s
218
+ puts "sum of squared deviations: " + group1.sum_of_squared_deviations.to_s
219
+ puts "trimmed_mean(2, 2): " + group1.trimmed_mean(2, 2).to_s
220
+ puts "variance: " + group1.variance.to_s
221
+ puts "winsorized mean: " + group1.winsorized_mean(1, 1).to_s
222
+
223
+ end
224
+
225
+ end
226
+
227
+ end
@@ -0,0 +1,57 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##########################################################################################
4
+ # Copyright © 2015 Rodrigo Botafogo. All Rights Reserved. Permission to use, copy, modify,
5
+ # and distribute this software and its documentation for educational, research, and
6
+ # not-for-profit purposes, without fee and without a signed licensing agreement, is hereby
7
+ # granted, provided that the above copyright notice, this paragraph and the following two
8
+ # paragraphs appear in all copies, modifications, and distributions. Contact Rodrigo
9
+ # Botafogo - rodrigo.a.botafogo@gmail.com for commercial licensing opportunities.
10
+ #
11
+ # IN NO EVENT SHALL RODRIGO BOTAFOGO BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
12
+ # INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF
13
+ # THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF RODRIGO BOTAFOGO HAS BEEN ADVISED OF THE
14
+ # POSSIBILITY OF SUCH DAMAGE.
15
+ #
16
+ # RODRIGO BOTAFOGO SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
17
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
18
+ # SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS IS".
19
+ # RODRIGO BOTAFOGO HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
20
+ # OR MODIFICATIONS.
21
+ ##########################################################################################
22
+
23
+ require 'rubygems'
24
+ require 'test/unit'
25
+ require 'shoulda'
26
+ require 'matrix'
27
+
28
+ require_relative '../config'
29
+
30
+ require 'jcsv'
31
+
32
+ class CSVTest < Test::Unit::TestCase
33
+
34
+ context "CSV test" do
35
+
36
+ setup do
37
+
38
+ end
39
+
40
+ #-------------------------------------------------------------------------------------
41
+ #
42
+ #-------------------------------------------------------------------------------------
43
+
44
+ should "identify missing data" do
45
+
46
+ reader = Jcsv.reader("VALE_PETRA.csv", format: :map, chunk_size: :all, col_sep: ';',
47
+ comment_starts: '#', default_filter: Jcsv.double,
48
+ dimensions: [:symbol, :date], deep: true)
49
+
50
+ ticks = reader.read[0]
51
+ # p ticks
52
+
53
+ end
54
+
55
+ end
56
+
57
+ end
Binary file
Binary file
Binary file
@@ -0,0 +1,2 @@
1
+ $gem_name = "mdarray-jcsv"
2
+ $version="0.6.3"
metadata ADDED
@@ -0,0 +1,196 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mdarray-jcsv
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.3
5
+ platform: java
6
+ authors:
7
+ - Rodrigo Botafogo
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-06-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '0.5'
19
+ name: mdarray
20
+ prerelease: false
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.5'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.5'
33
+ name: critbit
34
+ prerelease: false
35
+ type: :runtime
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.5'
41
+ - !ruby/object:Gem::Dependency
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.1'
47
+ name: CodeWriter
48
+ prerelease: false
49
+ type: :development
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.1'
55
+ - !ruby/object:Gem::Dependency
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.5'
61
+ name: shoulda
62
+ prerelease: false
63
+ type: :development
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.5'
69
+ - !ruby/object:Gem::Dependency
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0.11'
75
+ name: simplecov
76
+ prerelease: false
77
+ type: :development
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.11'
83
+ - !ruby/object:Gem::Dependency
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.8'
89
+ name: yard
90
+ prerelease: false
91
+ type: :development
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.8'
97
+ - !ruby/object:Gem::Dependency
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.0'
103
+ name: kramdown
104
+ prerelease: false
105
+ type: :development
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ description: "\n"
112
+ email: rodrigo.a.botafogo@gmail.com
113
+ executables: []
114
+ extensions: []
115
+ extra_rdoc_files: []
116
+ files:
117
+ - LICENSE.txt
118
+ - README.md
119
+ - Rakefile
120
+ - config.rb
121
+ - lib/constraints.rb
122
+ - lib/date_filters.rb
123
+ - lib/dimensions.rb
124
+ - lib/filters.rb
125
+ - lib/jcsv.rb
126
+ - lib/list_reader.rb
127
+ - lib/locale.rb
128
+ - lib/map_reader.rb
129
+ - lib/mdarray-jcsv.rb
130
+ - lib/mdarray_reader.rb
131
+ - lib/numeric_filters.rb
132
+ - lib/reader.rb
133
+ - lib/supercsv_interface.rb
134
+ - test/test_complete.rb
135
+ - test/test_critbit.rb
136
+ - test/test_customer_list.rb
137
+ - test/test_customer_map.rb
138
+ - test/test_customer_nhlist.rb
139
+ - test/test_deep_map.rb
140
+ - test/test_del.rb
141
+ - test/test_dimensions.rb
142
+ - test/test_example.rb
143
+ - test/test_filters.rb
144
+ - test/test_list_dimensions.rb
145
+ - test/test_mdarray.rb
146
+ - test/test_missing_data.rb
147
+ - vendor/commons-beanutils-1.8.3.jar
148
+ - vendor/commons-lang3-3.1.jar
149
+ - vendor/dozer-5.4.0.jar
150
+ - vendor/jcl-over-slf4j-1.6.6.jar
151
+ - vendor/joda-time-2.7.jar
152
+ - vendor/slf4j-api-1.7.5.jar
153
+ - vendor/snakeyaml-1.14.jar
154
+ - vendor/super-csv-2.4.0.jar
155
+ - vendor/super-csv-dozer-2.4.0.jar
156
+ - vendor/super-csv-java8-2.4.0.jar
157
+ - vendor/super-csv-joda-2.4.0.jar
158
+ - version.rb
159
+ homepage: http://github.com/rbotafogo/jCSV/wiki
160
+ licenses:
161
+ - BSD-2-Clause
162
+ metadata: {}
163
+ post_install_message:
164
+ rdoc_options: []
165
+ require_paths:
166
+ - lib
167
+ required_ruby_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ required_rubygems_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ requirements: []
178
+ rubyforge_project:
179
+ rubygems_version: 2.6.6
180
+ signing_key:
181
+ specification_version: 4
182
+ summary: MDArray-jCSV (jCSV for short) is the first and only (as far as I know) multidimensional CSV reader. Multidimensional? Yes... jCSV can read multidimensional data, also known sometimes as 'panel data'. jCSV is based on Super CSV (http://super-csv.github.io/super-csv/index.html), a java CSV library. According to Super CSV web page its motivation is 'for Super CSV is to be the foremost, fastest, and most programmer-friendly, free CSV package for Java'. jCSV motivation is to bring this view to the Ruby world, and since we are in Ruby, make it even easier and more programmer-friendly.
183
+ test_files:
184
+ - test/test_complete.rb
185
+ - test/test_critbit.rb
186
+ - test/test_customer_list.rb
187
+ - test/test_customer_map.rb
188
+ - test/test_customer_nhlist.rb
189
+ - test/test_deep_map.rb
190
+ - test/test_del.rb
191
+ - test/test_dimensions.rb
192
+ - test/test_example.rb
193
+ - test/test_filters.rb
194
+ - test/test_list_dimensions.rb
195
+ - test/test_mdarray.rb
196
+ - test/test_missing_data.rb