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