Skip to content

Commit

Permalink
Drop Ruby 2.6 support, update dependencies, apply standardrb --fix (#53)
Browse files Browse the repository at this point in the history
  • Loading branch information
martijn committed Dec 14, 2023
1 parent e173c4e commit 3ce77bd
Show file tree
Hide file tree
Showing 10 changed files with 26 additions and 25 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: ['2.6', '2.7', '3.0', '3.1', '3.2', 'jruby', 'truffleruby']
ruby-version: ['2.7', '3.0', '3.1', '3.2', 'jruby', 'truffleruby']

steps:
- uses: actions/checkout@v3
Expand Down
2 changes: 1 addition & 1 deletion .standard.yml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ruby_version: 2.6.9
ruby_version: 2.7.8
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## HEAD

- Minor performance improvements in the XML parser
- Update of development dependencies including minitest and standardrb

## 1.2.1 2023-05-09

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Or install it yourself as:

$ gem install xsv

Xsv targets ruby >= 2.6 and has a just single dependency, `rubyzip`. It has been
Xsv targets ruby >= 2.7 and has a just single dependency, `rubyzip`. It has been
tested successfully with MRI, JRuby, and TruffleRuby. It has no native extensions
and is designed to be thread-safe.

Expand Down
4 changes: 2 additions & 2 deletions benchmark.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ def bench_perf(sheet)
result = Benchmark::Perf.cpu(repeat: 5) do
sheet.each do |row|
row.each do |cell|
cell
end
end
end
Expand All @@ -27,13 +26,14 @@ def bench_mem(sheet)
bm.report do
sheet.each do |row|
row.each do |cell|
cell
end
end
end
end
end

puts RUBY_DESCRIPTION

file = File.read("test/files/10k-sheet.xlsx")

workbook = Xsv.open(file)
Expand Down
12 changes: 6 additions & 6 deletions lib/xsv.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ class AssertionFailed < StandardError; end
# @return [Xsv::Workbook] The workbook instance
def self.open(filename_or_string, trim_empty_rows: false, parse_headers: false)
zip = if filename_or_string.is_a?(IO) || filename_or_string.respond_to?(:read) # is it a buffer?
Zip::File.open_buffer(filename_or_string)
elsif filename_or_string.start_with?("PK\x03\x04") # is it a string containing a file?
Zip::File.open_buffer(filename_or_string)
else # must be a filename
Zip::File.open(filename_or_string)
end
Zip::File.open_buffer(filename_or_string)
elsif filename_or_string.start_with?("PK\x03\x04") # is it a string containing a file?
Zip::File.open_buffer(filename_or_string)
else # must be a filename
Zip::File.open(filename_or_string)
end

workbook = Xsv::Workbook.new(zip, trim_empty_rows: trim_empty_rows, parse_headers: parse_headers)

Expand Down
8 changes: 4 additions & 4 deletions test/excel_2016_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,14 @@ def test_access_row_by_index

def test_value_types
assert_equal [
"Foo", 2, 2.5, nil, Date.new(2020, 2, 20), "10:00", 4, 1.25,
"Foo", 2, 2.5, nil, Date.new(2020, 2, 20), "10:00", 4, 1.25
], @file.sheets[0][1]
end

def test_hash_value_types
@file.sheets[0].parse_headers!

expected = { "Some strings" => "Foo", "Some integer numbers" => 2, "Some decimal numbers" => 2.5, "Some empty values" => nil, "Some dates" => Date.new(2020, 2, 20), "Some times" => "10:00", "Some integer calculations" => 4, "Some decimal calculations" => 1.25 }
expected = {"Some strings" => "Foo", "Some integer numbers" => 2, "Some decimal numbers" => 2.5, "Some empty values" => nil, "Some dates" => Date.new(2020, 2, 20), "Some times" => "10:00", "Some integer calculations" => 4, "Some decimal calculations" => 1.25}

assert_equal expected, @file.sheets[0][0]
end
Expand Down Expand Up @@ -75,7 +75,7 @@ def test_hash_fetch_leading_null

row = @file.sheets[1][3]

expected = { "Header cell A" => nil, "Header cell B" => "Row with leading null", nil => nil, "Header cell D" => "Row with leading null" }
expected = {"Header cell A" => nil, "Header cell B" => "Row with leading null", nil => nil, "Header cell D" => "Row with leading null"}

assert_equal expected, row
end
Expand All @@ -91,7 +91,7 @@ def test_hash_fetch_trailing_null

row = @file.sheets[1][4]

expected = { "Header cell A" => "Row with trailing null", "Header cell B" => "Row with trailing null", nil => nil, "Header cell D" => nil }
expected = {"Header cell A" => "Row with trailing null", "Header cell B" => "Row with trailing null", nil => nil, "Header cell D" => nil}

assert_equal expected, row
end
Expand Down
2 changes: 1 addition & 1 deletion test/numbers6_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def test_numbers_types

sheet.parse_headers!

expected = { "Text" => "Hi there", "Number" => 1234, nil => nil, "Date" => Date.new(2020, 2, 20), "Time" => "13:00", "DateTime" => Time.new(2020, 2, 20, 13, 0o0) }
expected = {"Text" => "Hi there", "Number" => 1234, nil => nil, "Date" => Date.new(2020, 2, 20), "Time" => "13:00", "DateTime" => Time.new(2020, 2, 20, 13, 0o0)}

assert_equal expected, sheet[0]
end
Expand Down
10 changes: 5 additions & 5 deletions test/sheet_rows_handler_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def test_parser_array_mode
end

def test_parser_hash_mode
empty_row = { "Some strings" => nil, "Some integer numbers" => nil, "Some decimal numbers" => nil, "Some empty values" => nil, "Some dates" => nil, "Some times" => nil, "Some integer calculations" => nil, "Some decimal calculations" => nil }
empty_row = {"Some strings" => nil, "Some integer numbers" => nil, "Some decimal numbers" => nil, "Some empty values" => nil, "Some dates" => nil, "Some times" => nil, "Some integer calculations" => nil, "Some decimal calculations" => nil}

rows = []
handler = Xsv::SheetRowsHandler.new(:hash, empty_row, @workbook, 0, 99999) do |row|
Expand All @@ -51,7 +51,7 @@ def test_skip_empty_rows

first_columns = ["0", "1", nil, nil, "2"]

(0..5).each do |row_skip|
6.times do |row_skip|
rows = []
handler = Xsv::SheetRowsHandler.new(:array, ([nil] * 10), @workbook, row_skip, 6, &collector)
handler.parse(@sheet)
Expand Down Expand Up @@ -93,7 +93,7 @@ def test_special_types
end

def test_unknown_type
handler = Xsv::SheetRowsHandler.new(:array, [], @workbook, 0, 99999) { }
handler = Xsv::SheetRowsHandler.new(:array, [], @workbook, 0, 99999) {}

data = @sheet.read
data.gsub! "t=\"s\"", "t=\"xyz\""
Expand Down Expand Up @@ -128,9 +128,9 @@ def test_column_without_r_hash
rows << row
end

handler = Xsv::SheetRowsHandler.new(:hash, { "Some strings" => "", "Foo" => "" }, @workbook, 0, 6, &collector)
handler = Xsv::SheetRowsHandler.new(:hash, {"Some strings" => "", "Foo" => ""}, @workbook, 0, 6, &collector)
handler.parse(@sheet)

assert_equal({ "Some strings" => "Bar", "Foo" => "Baz" }, rows[0])
assert_equal({"Some strings" => "Bar", "Foo" => "Baz"}, rows[0])
end
end
8 changes: 4 additions & 4 deletions xsv.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ Gem::Specification.new do |spec|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]

spec.required_ruby_version = ">= 2.6"
spec.required_ruby_version = ">= 2.7"

spec.add_dependency "rubyzip", ">= 1.3", "< 3"

spec.add_development_dependency "bundler", "< 3"
spec.add_development_dependency "rake", "~> 13.0"
spec.add_development_dependency "minitest", "~> 5.14.2"
spec.add_development_dependency "standard", "~> 1.6.0"
spec.add_development_dependency "rake", "~> 13.1.0"
spec.add_development_dependency "minitest", "~> 5.20.0"
spec.add_development_dependency "standard", "~> 1.32.1"
end

0 comments on commit 3ce77bd

Please sign in to comment.