berkeley_library-holdings 1.0.1 → 1.0.3
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 +4 -4
- data/CHANGES.md +19 -0
- data/lib/berkeley_library/holdings/module_info.rb +1 -1
- data/lib/berkeley_library/util/xlsx/rubyxl_cell_extensions.rb +31 -0
- data/lib/berkeley_library/util/xlsx/rubyxl_worksheet_extensions.rb +24 -0
- data/lib/berkeley_library/util/xlsx/spreadsheet.rb +3 -1
- metadata +5 -3
- data/CHANGELOG.md +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e63c750942749c07b981b702ef360b3c554f3e63107d47821dd0872ed6676c28
|
4
|
+
data.tar.gz: e9a80f67dff1895124ff50813bd594a109ab8e84a7e8d0825248917dcf1b3501
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db655747b51ef598e41b6bc4411452e912558af91d81a1c7067c1204f5a0eb3113dfeb8cec8d1f31454251914280c58ec08cfe9c1ebe3c9f5ec0a8d4ee9c906b
|
7
|
+
data.tar.gz: 9f573016a2ef9bd89411513c6007dd14ab4dbf701ce7a81cf14bbad4a8cd3db5fba0494575c8980bcc53a498c10c3364c9b2c385472968246f78fdc3cba2f0b8
|
data/CHANGES.md
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# 1.0.3 (2023-04-27)
|
2
|
+
|
3
|
+
- Fix issue requiring RubyXL extensions to be explicitly required
|
4
|
+
|
5
|
+
# 1.0.2 (2023-04-27)
|
6
|
+
|
7
|
+
- Overwrite existing blank columns when writing results to spreadsheet
|
8
|
+
|
9
|
+
# 1.0.1 (2023-04-26)
|
10
|
+
|
11
|
+
- First working RubyGems release
|
12
|
+
|
13
|
+
# 1.0.0 (2023-04-25)
|
14
|
+
|
15
|
+
- Initial (broken) RubyGems release
|
16
|
+
|
17
|
+
# 0.1.0 (2023-02-24)
|
18
|
+
|
19
|
+
- Initial release
|
@@ -7,7 +7,7 @@ module BerkeleyLibrary
|
|
7
7
|
SUMMARY = 'Holdings-related utilities for the UC Berkeley Library'.freeze
|
8
8
|
DESCRIPTION = 'A collection of holdings-related utilities for the UC Berkeley Library'.freeze
|
9
9
|
LICENSE = 'MIT'.freeze
|
10
|
-
VERSION = '1.0.
|
10
|
+
VERSION = '1.0.3'.freeze
|
11
11
|
HOMEPAGE = 'https://github.com/BerkeleyLibrary/holdings'.freeze
|
12
12
|
end
|
13
13
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'rubyXL'
|
2
|
+
|
3
|
+
module BerkeleyLibrary
|
4
|
+
module Util
|
5
|
+
module XLSX
|
6
|
+
module RubyXLCellExtensions
|
7
|
+
# Workaround for https://github.com/weshatheleopard/rubyXL/issues/441
|
8
|
+
def initialize(params = nil)
|
9
|
+
super
|
10
|
+
|
11
|
+
return unless params.respond_to?(:[])
|
12
|
+
|
13
|
+
@worksheet ||= params[:worksheet]
|
14
|
+
self.row ||= params[:row] # NOTE: not an instance variable
|
15
|
+
end
|
16
|
+
|
17
|
+
def blank?
|
18
|
+
return true if value.nil?
|
19
|
+
|
20
|
+
value.respond_to?(:strip) && value.strip.empty?
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
module RubyXL
|
28
|
+
class Cell
|
29
|
+
prepend BerkeleyLibrary::Util::XLSX::RubyXLCellExtensions
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'rubyXL'
|
2
|
+
require 'berkeley_library/util/xlsx/rubyxl_cell_extensions'
|
3
|
+
|
4
|
+
module BerkeleyLibrary
|
5
|
+
module Util
|
6
|
+
module XLSX
|
7
|
+
module RubyXLWorksheetExtensions
|
8
|
+
def first_blank_column_index
|
9
|
+
sheet_data.rows.inject(0) do |first_blank_c_index, row|
|
10
|
+
trailing_blank_cells = row.cells.reverse.take_while(&:blank?)
|
11
|
+
row_first_blank_c_index = row.size - trailing_blank_cells.size
|
12
|
+
[first_blank_c_index, row_first_blank_c_index].max
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module RubyXL
|
21
|
+
class Worksheet
|
22
|
+
prepend BerkeleyLibrary::Util::XLSX::RubyXLWorksheetExtensions
|
23
|
+
end
|
24
|
+
end
|
@@ -3,6 +3,7 @@ require 'rubyXL'
|
|
3
3
|
require 'rubyXL/convenience_methods/cell'
|
4
4
|
require 'rubyXL/convenience_methods/worksheet'
|
5
5
|
require 'zip'
|
6
|
+
require 'berkeley_library/util/xlsx'
|
6
7
|
|
7
8
|
module BerkeleyLibrary
|
8
9
|
module Util
|
@@ -113,7 +114,8 @@ module BerkeleyLibrary
|
|
113
114
|
c_index_existing = find_column_index_by_header(header)
|
114
115
|
return c_index_existing if c_index_existing
|
115
116
|
|
116
|
-
|
117
|
+
c_index_next = worksheet.first_blank_column_index
|
118
|
+
c_index_next.tap { |cc| worksheet.add_cell(0, cc, header) }
|
117
119
|
end
|
118
120
|
|
119
121
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: berkeley_library-holdings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Moles
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-04-
|
11
|
+
date: 2023-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: berkeley_library-logging
|
@@ -260,7 +260,7 @@ executables: []
|
|
260
260
|
extensions: []
|
261
261
|
extra_rdoc_files: []
|
262
262
|
files:
|
263
|
-
-
|
263
|
+
- CHANGES.md
|
264
264
|
- LICENSE.md
|
265
265
|
- README.md
|
266
266
|
- lib/berkeley_library/holdings.rb
|
@@ -280,6 +280,8 @@ files:
|
|
280
280
|
- lib/berkeley_library/holdings/xlsx_reader.rb
|
281
281
|
- lib/berkeley_library/holdings/xlsx_writer.rb
|
282
282
|
- lib/berkeley_library/util/xlsx.rb
|
283
|
+
- lib/berkeley_library/util/xlsx/rubyxl_cell_extensions.rb
|
284
|
+
- lib/berkeley_library/util/xlsx/rubyxl_worksheet_extensions.rb
|
283
285
|
- lib/berkeley_library/util/xlsx/spreadsheet.rb
|
284
286
|
homepage: https://github.com/BerkeleyLibrary/holdings
|
285
287
|
licenses:
|