smarter_csv 1.1.5 → 1.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +5 -5
  2. data/.rspec +1 -2
  3. data/.rubocop.yml +154 -0
  4. data/CHANGELOG.md +364 -0
  5. data/CONTRIBUTORS.md +56 -0
  6. data/Gemfile +7 -2
  7. data/LICENSE.txt +21 -0
  8. data/README.md +44 -441
  9. data/Rakefile +39 -19
  10. data/TO_DO_v2.md +14 -0
  11. data/docs/_introduction.md +56 -0
  12. data/docs/basic_api.md +157 -0
  13. data/docs/batch_processing.md +68 -0
  14. data/docs/data_transformations.md +50 -0
  15. data/docs/examples.md +75 -0
  16. data/docs/header_transformations.md +113 -0
  17. data/docs/header_validations.md +36 -0
  18. data/docs/options.md +98 -0
  19. data/docs/row_col_sep.md +104 -0
  20. data/docs/value_converters.md +68 -0
  21. data/ext/smarter_csv/extconf.rb +14 -0
  22. data/ext/smarter_csv/smarter_csv.c +97 -0
  23. data/lib/smarter_csv/auto_detection.rb +78 -0
  24. data/lib/smarter_csv/errors.rb +16 -0
  25. data/lib/smarter_csv/file_io.rb +50 -0
  26. data/lib/smarter_csv/hash_transformations.rb +91 -0
  27. data/lib/smarter_csv/header_transformations.rb +63 -0
  28. data/lib/smarter_csv/header_validations.rb +34 -0
  29. data/lib/smarter_csv/headers.rb +68 -0
  30. data/lib/smarter_csv/options.rb +95 -0
  31. data/lib/smarter_csv/parser.rb +90 -0
  32. data/lib/smarter_csv/reader.rb +243 -0
  33. data/lib/smarter_csv/version.rb +3 -1
  34. data/lib/smarter_csv/writer.rb +116 -0
  35. data/lib/smarter_csv.rb +91 -3
  36. data/smarter_csv.gemspec +43 -20
  37. metadata +122 -137
  38. data/.gitignore +0 -8
  39. data/.travis.yml +0 -19
  40. data/lib/extensions/hash.rb +0 -7
  41. data/lib/smarter_csv/smarter_csv.rb +0 -281
  42. data/spec/fixtures/basic.csv +0 -8
  43. data/spec/fixtures/binary.csv +0 -1
  44. data/spec/fixtures/carriage_returns_n.csv +0 -18
  45. data/spec/fixtures/carriage_returns_quoted.csv +0 -3
  46. data/spec/fixtures/carriage_returns_r.csv +0 -1
  47. data/spec/fixtures/carriage_returns_rn.csv +0 -18
  48. data/spec/fixtures/chunk_cornercase.csv +0 -10
  49. data/spec/fixtures/empty.csv +0 -5
  50. data/spec/fixtures/line_endings_n.csv +0 -4
  51. data/spec/fixtures/line_endings_r.csv +0 -1
  52. data/spec/fixtures/line_endings_rn.csv +0 -4
  53. data/spec/fixtures/lots_of_columns.csv +0 -2
  54. data/spec/fixtures/malformed.csv +0 -3
  55. data/spec/fixtures/malformed_header.csv +0 -3
  56. data/spec/fixtures/money.csv +0 -3
  57. data/spec/fixtures/no_header.csv +0 -7
  58. data/spec/fixtures/numeric.csv +0 -5
  59. data/spec/fixtures/pets.csv +0 -5
  60. data/spec/fixtures/quoted.csv +0 -5
  61. data/spec/fixtures/separator.csv +0 -4
  62. data/spec/fixtures/skip_lines.csv +0 -8
  63. data/spec/fixtures/valid_unicode.csv +0 -5
  64. data/spec/fixtures/with_dashes.csv +0 -8
  65. data/spec/fixtures/with_dates.csv +0 -4
  66. data/spec/smarter_csv/binary_file2_spec.rb +0 -24
  67. data/spec/smarter_csv/binary_file_spec.rb +0 -22
  68. data/spec/smarter_csv/carriage_return_spec.rb +0 -170
  69. data/spec/smarter_csv/chunked_reading_spec.rb +0 -14
  70. data/spec/smarter_csv/close_file_spec.rb +0 -15
  71. data/spec/smarter_csv/column_separator_spec.rb +0 -11
  72. data/spec/smarter_csv/convert_values_to_numeric_spec.rb +0 -48
  73. data/spec/smarter_csv/extenstions_spec.rb +0 -17
  74. data/spec/smarter_csv/header_transformation_spec.rb +0 -21
  75. data/spec/smarter_csv/keep_headers_spec.rb +0 -24
  76. data/spec/smarter_csv/key_mapping_spec.rb +0 -25
  77. data/spec/smarter_csv/line_ending_spec.rb +0 -43
  78. data/spec/smarter_csv/load_basic_spec.rb +0 -20
  79. data/spec/smarter_csv/malformed_spec.rb +0 -21
  80. data/spec/smarter_csv/no_header_spec.rb +0 -24
  81. data/spec/smarter_csv/not_downcase_header_spec.rb +0 -24
  82. data/spec/smarter_csv/quoted_spec.rb +0 -23
  83. data/spec/smarter_csv/remove_empty_values_spec.rb +0 -13
  84. data/spec/smarter_csv/remove_keys_from_hashes_spec.rb +0 -25
  85. data/spec/smarter_csv/remove_not_mapped_keys_spec.rb +0 -35
  86. data/spec/smarter_csv/remove_values_matching_spec.rb +0 -26
  87. data/spec/smarter_csv/remove_zero_values_spec.rb +0 -25
  88. data/spec/smarter_csv/skip_lines_spec.rb +0 -29
  89. data/spec/smarter_csv/strings_as_keys_spec.rb +0 -24
  90. data/spec/smarter_csv/strip_chars_from_headers_spec.rb +0 -24
  91. data/spec/smarter_csv/valid_unicode_spec.rb +0 -94
  92. data/spec/smarter_csv/value_converters_spec.rb +0 -52
  93. data/spec/spec/spec_helper.rb +0 -17
  94. data/spec/spec.opts +0 -2
  95. data/spec/spec_helper.rb +0 -21
data/smarter_csv.gemspec CHANGED
@@ -1,21 +1,44 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/smarter_csv/version', __FILE__)
3
-
4
- Gem::Specification.new do |gem|
5
- gem.authors = ["Tilo Sloboda\n"]
6
- gem.email = ["tilo.sloboda@gmail.com\n"]
7
- gem.description = %q{Ruby Gem for smarter importing of CSV Files as Array(s) of Hashes, with optional features for processing large files in parallel, embedded comments, unusual field- and record-separators, flexible mapping of CSV-headers to Hash-keys}
8
- gem.summary = %q{Ruby Gem for smarter importing of CSV Files (and CSV-like files), with lots of optional features, e.g. chunked processing for huge CSV files}
9
- gem.homepage = "https://github.com/tilo/smarter_csv"
10
-
11
- gem.files = `git ls-files`.split($\)
12
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
- gem.name = "smarter_csv"
15
- gem.require_paths = ["lib"]
16
- gem.requirements = ['csv'] # for CSV.parse() only needed in case we have quoted fields
17
- gem.version = SmarterCSV::VERSION
18
- gem.licenses = ['MIT','GPL-2']
19
- gem.add_development_dependency "rspec"
20
- # gem.add_development_dependency "guard-rspec"
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require File.expand_path('lib/smarter_csv/version', __dir__)
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "smarter_csv"
8
+ spec.version = SmarterCSV::VERSION
9
+ spec.authors = ["Tilo Sloboda"]
10
+ spec.email = ["tilo.sloboda@gmail.com"]
11
+
12
+ spec.summary = "Convenient CSV Reading and Writing"
13
+ spec.description = "Ruby Gem for convenient reading and writing of CSV files. It has intelligent defaults, and auto-discovery of column and row separators. It imports CSV Files as Array(s) of Hashes, suitable for direct processing with ActiveRecord, kicking-off batch jobs with Sidekiq, parallel processing, or oploading data to S3. Similarly, writing CSV files takes Hashes, or Arrays of Hashes to create a CSV file."
14
+ spec.homepage = "https://github.com/tilo/smarter_csv"
15
+ spec.license = 'MIT'
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = spec.homepage
19
+ spec.metadata["changelog_uri"] = "https://github.com/tilo/smarter_csv/blob/main/CHANGELOG.md"
20
+
21
+ spec.required_ruby_version = ">= 2.5.0"
22
+
23
+ # Specify which files should be added to the gem when it is released.
24
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
+ spec.files = Dir.chdir(__dir__) do
26
+ `git ls-files -z`.split("\x0").reject do |f|
27
+ (f == __FILE__) ||
28
+ f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)}) || f.match(/\.h\z/)
29
+ end
30
+ end
31
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
32
+
33
+ spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
34
+ spec.require_paths = %w[lib ext]
35
+ spec.extensions = ["ext/smarter_csv/extconf.rb"]
36
+ spec.files += Dir.glob("ext/smarter_csv/**/*")
37
+
38
+ spec.add_development_dependency "awesome_print"
39
+ spec.add_development_dependency "codecov"
40
+ spec.add_development_dependency "pry"
41
+ spec.add_development_dependency "rspec"
42
+ spec.add_development_dependency "rubocop"
43
+ spec.add_development_dependency "simplecov"
21
44
  end
metadata CHANGED
@@ -1,17 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smarter_csv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.12.1
5
5
  platform: ruby
6
6
  authors:
7
- - 'Tilo Sloboda
8
-
9
- '
10
- autorequire:
7
+ - Tilo Sloboda
8
+ autorequire:
11
9
  bindir: bin
12
10
  cert_chain: []
13
- date: 2017-11-06 00:00:00.000000000 Z
11
+ date: 2024-07-10 00:00:00.000000000 Z
14
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: awesome_print
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: codecov
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
15
55
  - !ruby/object:Gem::Dependency
16
56
  name: rspec
17
57
  requirement: !ruby/object:Gem::Requirement
@@ -26,162 +66,107 @@ dependencies:
26
66
  - - ">="
27
67
  - !ruby/object:Gem::Version
28
68
  version: '0'
29
- description: Ruby Gem for smarter importing of CSV Files as Array(s) of Hashes, with
30
- optional features for processing large files in parallel, embedded comments, unusual
31
- field- and record-separators, flexible mapping of CSV-headers to Hash-keys
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Ruby Gem for convenient reading and writing of CSV files. It has intelligent
98
+ defaults, and auto-discovery of column and row separators. It imports CSV Files
99
+ as Array(s) of Hashes, suitable for direct processing with ActiveRecord, kicking-off
100
+ batch jobs with Sidekiq, parallel processing, or oploading data to S3. Similarly,
101
+ writing CSV files takes Hashes, or Arrays of Hashes to create a CSV file.
32
102
  email:
33
- - 'tilo.sloboda@gmail.com
34
-
35
- '
103
+ - tilo.sloboda@gmail.com
36
104
  executables: []
37
- extensions: []
105
+ extensions:
106
+ - ext/smarter_csv/extconf.rb
38
107
  extra_rdoc_files: []
39
108
  files:
40
- - ".gitignore"
41
109
  - ".rspec"
110
+ - ".rubocop.yml"
42
111
  - ".rvmrc"
43
- - ".travis.yml"
112
+ - CHANGELOG.md
113
+ - CONTRIBUTORS.md
44
114
  - Gemfile
115
+ - LICENSE.txt
45
116
  - README.md
46
117
  - Rakefile
47
- - lib/extensions/hash.rb
118
+ - TO_DO_v2.md
119
+ - docs/_introduction.md
120
+ - docs/basic_api.md
121
+ - docs/batch_processing.md
122
+ - docs/data_transformations.md
123
+ - docs/examples.md
124
+ - docs/header_transformations.md
125
+ - docs/header_validations.md
126
+ - docs/options.md
127
+ - docs/row_col_sep.md
128
+ - docs/value_converters.md
129
+ - ext/smarter_csv/extconf.rb
130
+ - ext/smarter_csv/smarter_csv.c
48
131
  - lib/smarter_csv.rb
49
- - lib/smarter_csv/smarter_csv.rb
132
+ - lib/smarter_csv/auto_detection.rb
133
+ - lib/smarter_csv/errors.rb
134
+ - lib/smarter_csv/file_io.rb
135
+ - lib/smarter_csv/hash_transformations.rb
136
+ - lib/smarter_csv/header_transformations.rb
137
+ - lib/smarter_csv/header_validations.rb
138
+ - lib/smarter_csv/headers.rb
139
+ - lib/smarter_csv/options.rb
140
+ - lib/smarter_csv/parser.rb
141
+ - lib/smarter_csv/reader.rb
50
142
  - lib/smarter_csv/version.rb
143
+ - lib/smarter_csv/writer.rb
51
144
  - smarter_csv.gemspec
52
- - spec/fixtures/basic.csv
53
- - spec/fixtures/binary.csv
54
- - spec/fixtures/carriage_returns_n.csv
55
- - spec/fixtures/carriage_returns_quoted.csv
56
- - spec/fixtures/carriage_returns_r.csv
57
- - spec/fixtures/carriage_returns_rn.csv
58
- - spec/fixtures/chunk_cornercase.csv
59
- - spec/fixtures/empty.csv
60
- - spec/fixtures/line_endings_n.csv
61
- - spec/fixtures/line_endings_r.csv
62
- - spec/fixtures/line_endings_rn.csv
63
- - spec/fixtures/lots_of_columns.csv
64
- - spec/fixtures/malformed.csv
65
- - spec/fixtures/malformed_header.csv
66
- - spec/fixtures/money.csv
67
- - spec/fixtures/no_header.csv
68
- - spec/fixtures/numeric.csv
69
- - spec/fixtures/pets.csv
70
- - spec/fixtures/quoted.csv
71
- - spec/fixtures/separator.csv
72
- - spec/fixtures/skip_lines.csv
73
- - spec/fixtures/valid_unicode.csv
74
- - spec/fixtures/with_dashes.csv
75
- - spec/fixtures/with_dates.csv
76
- - spec/smarter_csv/binary_file2_spec.rb
77
- - spec/smarter_csv/binary_file_spec.rb
78
- - spec/smarter_csv/carriage_return_spec.rb
79
- - spec/smarter_csv/chunked_reading_spec.rb
80
- - spec/smarter_csv/close_file_spec.rb
81
- - spec/smarter_csv/column_separator_spec.rb
82
- - spec/smarter_csv/convert_values_to_numeric_spec.rb
83
- - spec/smarter_csv/extenstions_spec.rb
84
- - spec/smarter_csv/header_transformation_spec.rb
85
- - spec/smarter_csv/keep_headers_spec.rb
86
- - spec/smarter_csv/key_mapping_spec.rb
87
- - spec/smarter_csv/line_ending_spec.rb
88
- - spec/smarter_csv/load_basic_spec.rb
89
- - spec/smarter_csv/malformed_spec.rb
90
- - spec/smarter_csv/no_header_spec.rb
91
- - spec/smarter_csv/not_downcase_header_spec.rb
92
- - spec/smarter_csv/quoted_spec.rb
93
- - spec/smarter_csv/remove_empty_values_spec.rb
94
- - spec/smarter_csv/remove_keys_from_hashes_spec.rb
95
- - spec/smarter_csv/remove_not_mapped_keys_spec.rb
96
- - spec/smarter_csv/remove_values_matching_spec.rb
97
- - spec/smarter_csv/remove_zero_values_spec.rb
98
- - spec/smarter_csv/skip_lines_spec.rb
99
- - spec/smarter_csv/strings_as_keys_spec.rb
100
- - spec/smarter_csv/strip_chars_from_headers_spec.rb
101
- - spec/smarter_csv/valid_unicode_spec.rb
102
- - spec/smarter_csv/value_converters_spec.rb
103
- - spec/spec.opts
104
- - spec/spec/spec_helper.rb
105
- - spec/spec_helper.rb
106
145
  homepage: https://github.com/tilo/smarter_csv
107
146
  licenses:
108
147
  - MIT
109
- - GPL-2
110
- metadata: {}
111
- post_install_message:
148
+ metadata:
149
+ homepage_uri: https://github.com/tilo/smarter_csv
150
+ source_code_uri: https://github.com/tilo/smarter_csv
151
+ changelog_uri: https://github.com/tilo/smarter_csv/blob/main/CHANGELOG.md
152
+ post_install_message:
112
153
  rdoc_options: []
113
154
  require_paths:
114
155
  - lib
156
+ - ext
115
157
  required_ruby_version: !ruby/object:Gem::Requirement
116
158
  requirements:
117
159
  - - ">="
118
160
  - !ruby/object:Gem::Version
119
- version: '0'
161
+ version: 2.5.0
120
162
  required_rubygems_version: !ruby/object:Gem::Requirement
121
163
  requirements:
122
164
  - - ">="
123
165
  - !ruby/object:Gem::Version
124
166
  version: '0'
125
- requirements:
126
- - csv
127
- rubyforge_project:
128
- rubygems_version: 2.6.13
129
- signing_key:
167
+ requirements: []
168
+ rubygems_version: 3.2.3
169
+ signing_key:
130
170
  specification_version: 4
131
- summary: Ruby Gem for smarter importing of CSV Files (and CSV-like files), with lots
132
- of optional features, e.g. chunked processing for huge CSV files
133
- test_files:
134
- - spec/fixtures/basic.csv
135
- - spec/fixtures/binary.csv
136
- - spec/fixtures/carriage_returns_n.csv
137
- - spec/fixtures/carriage_returns_quoted.csv
138
- - spec/fixtures/carriage_returns_r.csv
139
- - spec/fixtures/carriage_returns_rn.csv
140
- - spec/fixtures/chunk_cornercase.csv
141
- - spec/fixtures/empty.csv
142
- - spec/fixtures/line_endings_n.csv
143
- - spec/fixtures/line_endings_r.csv
144
- - spec/fixtures/line_endings_rn.csv
145
- - spec/fixtures/lots_of_columns.csv
146
- - spec/fixtures/malformed.csv
147
- - spec/fixtures/malformed_header.csv
148
- - spec/fixtures/money.csv
149
- - spec/fixtures/no_header.csv
150
- - spec/fixtures/numeric.csv
151
- - spec/fixtures/pets.csv
152
- - spec/fixtures/quoted.csv
153
- - spec/fixtures/separator.csv
154
- - spec/fixtures/skip_lines.csv
155
- - spec/fixtures/valid_unicode.csv
156
- - spec/fixtures/with_dashes.csv
157
- - spec/fixtures/with_dates.csv
158
- - spec/smarter_csv/binary_file2_spec.rb
159
- - spec/smarter_csv/binary_file_spec.rb
160
- - spec/smarter_csv/carriage_return_spec.rb
161
- - spec/smarter_csv/chunked_reading_spec.rb
162
- - spec/smarter_csv/close_file_spec.rb
163
- - spec/smarter_csv/column_separator_spec.rb
164
- - spec/smarter_csv/convert_values_to_numeric_spec.rb
165
- - spec/smarter_csv/extenstions_spec.rb
166
- - spec/smarter_csv/header_transformation_spec.rb
167
- - spec/smarter_csv/keep_headers_spec.rb
168
- - spec/smarter_csv/key_mapping_spec.rb
169
- - spec/smarter_csv/line_ending_spec.rb
170
- - spec/smarter_csv/load_basic_spec.rb
171
- - spec/smarter_csv/malformed_spec.rb
172
- - spec/smarter_csv/no_header_spec.rb
173
- - spec/smarter_csv/not_downcase_header_spec.rb
174
- - spec/smarter_csv/quoted_spec.rb
175
- - spec/smarter_csv/remove_empty_values_spec.rb
176
- - spec/smarter_csv/remove_keys_from_hashes_spec.rb
177
- - spec/smarter_csv/remove_not_mapped_keys_spec.rb
178
- - spec/smarter_csv/remove_values_matching_spec.rb
179
- - spec/smarter_csv/remove_zero_values_spec.rb
180
- - spec/smarter_csv/skip_lines_spec.rb
181
- - spec/smarter_csv/strings_as_keys_spec.rb
182
- - spec/smarter_csv/strip_chars_from_headers_spec.rb
183
- - spec/smarter_csv/valid_unicode_spec.rb
184
- - spec/smarter_csv/value_converters_spec.rb
185
- - spec/spec.opts
186
- - spec/spec/spec_helper.rb
187
- - spec/spec_helper.rb
171
+ summary: Convenient CSV Reading and Writing
172
+ test_files: []
data/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- *~
2
- #*#
3
- *old
4
- *.bak
5
- *.gem
6
- .bundle
7
- Gemfile.lock
8
- pkg/*
data/.travis.yml DELETED
@@ -1,19 +0,0 @@
1
- language: ruby
2
- bundler_args: --without development
3
- before_install:
4
- - gem install bundler
5
- - gem update --system
6
-
7
- matrix:
8
- include:
9
- - rvm: 2.2.8
10
- - rvm: 2.3.5
11
- - rvm: 2.4.2
12
- - rvm: jruby-9.1.13.0
13
- env:
14
- - JRUBY_OPTS="--server -Xcompile.invokedynamic=false -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -J-Xms512m -J-Xmx1024m"
15
- - rvm: ruby-head
16
-
17
- branches:
18
- only:
19
- - master
@@ -1,7 +0,0 @@
1
- # the following extension for class Hash is needed (from Facets of Ruby library):
2
-
3
- class Hash
4
- def self.zip(keys,values) # from Facets of Ruby library
5
- (keys.zip(values)).to_h
6
- end
7
- end