mdarray-jcsv 0.6.3-java

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 (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