kaggle 0.0.5 → 0.0.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '009830e3354d63a31d7f75ca303651389d53d99eb190d89dbd6f3a81765842ed'
4
- data.tar.gz: 4de17ec0780676292396440832dbfd6c474ba2687b52d36e6c4e150fd9a6c989
3
+ metadata.gz: 640ca155d40fb2d432970da644f848076a82b7fd126d4ea012fcd82841c4d431
4
+ data.tar.gz: d88642252139e6a05c676d3b47101d8663d42021459512c0b5bc5ee2a27c1362
5
5
  SHA512:
6
- metadata.gz: 85b83dd390d80fe152b1214b729b757c6a118d06c89016f259927e998b65d7e9cd31bf8464fc986729c3fc48b2a5f90469e8c78324ded6e753222892f781a7d1
7
- data.tar.gz: 7cdf4a9655d9b98d93a7081ddaad14ff19979646101e4f9bb45af4aa34bd955f2ea6dafe5fb4cc5b1d68e622c5e0e41851eac33b87a18560a296b2d53ff9e521
6
+ metadata.gz: ce478820b5d6615e5d26a7ee5bfb64623def396f265e870cbf1265215e2bb57a9eb72f06571886c6085705d51daf8eec92cddf052751ad572ade3db9a7a5f797
7
+ data.tar.gz: 6583c0adc6944edc37838e790dc9b07e4028c7168366e2aa2988376d84a91eabc4762e7110248be4876960541a88e0a0870b35ae347399b57870eb3daa45ab7f
data/kaggle.gemspec CHANGED
@@ -31,8 +31,8 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency 'csv', '>= 3.3'
32
32
  spec.add_dependency 'fileutils', '>= 1.7'
33
33
  spec.add_dependency 'httparty', '>= 0.23'
34
- spec.add_dependency 'oj', '3.16.11'
35
- spec.add_dependency 'rubyzip', '>= 2.0'
34
+ spec.add_dependency 'oj', '>= 3.16.11', '< 4.0'
35
+ spec.add_dependency 'rubyzip', '>= 3.4.0', '< 4.0'
36
36
 
37
37
  spec.add_development_dependency 'minitest', '~> 5.25.5'
38
38
  spec.add_development_dependency 'minitest-focus', '~> 1.4.0'
data/lib/kaggle/client.rb CHANGED
@@ -173,10 +173,16 @@ module Kaggle
173
173
 
174
174
  def extract_zip_file(zip_file_path, extract_to_dir)
175
175
  FileUtils.mkdir_p(extract_to_dir)
176
+ base_dir = File.expand_path(extract_to_dir)
176
177
 
177
178
  Zip::File.open(zip_file_path) do |zip_file|
178
179
  zip_file.each do |entry|
179
- extract_path = File.join(extract_to_dir, entry.name)
180
+ extract_path = File.expand_path(File.join(base_dir, entry.name))
181
+
182
+ # Reject entries that would be written outside the extraction directory (zip-slip)
183
+ unless extract_path.start_with?("#{base_dir}#{File::SEPARATOR}")
184
+ raise DownloadError, "Unsafe path in zip file: #{entry.name}"
185
+ end
180
186
 
181
187
  if entry.directory?
182
188
  # Create directory
@@ -1,3 +1,3 @@
1
1
  module Kaggle
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kaggle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Your Name
@@ -55,30 +55,42 @@ dependencies:
55
55
  name: oj
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - '='
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: 3.16.11
61
+ - - "<"
62
+ - !ruby/object:Gem::Version
63
+ version: '4.0'
61
64
  type: :runtime
62
65
  prerelease: false
63
66
  version_requirements: !ruby/object:Gem::Requirement
64
67
  requirements:
65
- - - '='
68
+ - - ">="
66
69
  - !ruby/object:Gem::Version
67
70
  version: 3.16.11
71
+ - - "<"
72
+ - !ruby/object:Gem::Version
73
+ version: '4.0'
68
74
  - !ruby/object:Gem::Dependency
69
75
  name: rubyzip
70
76
  requirement: !ruby/object:Gem::Requirement
71
77
  requirements:
72
78
  - - ">="
73
79
  - !ruby/object:Gem::Version
74
- version: '2.0'
80
+ version: 3.4.0
81
+ - - "<"
82
+ - !ruby/object:Gem::Version
83
+ version: '4.0'
75
84
  type: :runtime
76
85
  prerelease: false
77
86
  version_requirements: !ruby/object:Gem::Requirement
78
87
  requirements:
79
88
  - - ">="
80
89
  - !ruby/object:Gem::Version
81
- version: '2.0'
90
+ version: 3.4.0
91
+ - - "<"
92
+ - !ruby/object:Gem::Version
93
+ version: '4.0'
82
94
  - !ruby/object:Gem::Dependency
83
95
  name: minitest
84
96
  requirement: !ruby/object:Gem::Requirement