tapsoob 0.3.16-java → 0.3.17-java
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/lib/tapsoob/data_stream.rb +10 -0
- data/lib/tapsoob/utils.rb +12 -6
- data/lib/tapsoob/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: dc5fc59bb301fada27f8d881680940916d55a17d98645a3761c5aa42cd1a4b44
         | 
| 4 | 
            +
              data.tar.gz: 8aa7c7cdaa584109f932908f488b54b78dcd6de147386f1c60e4c09615be64ab
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 375467934ae7a5f53d9312aae0d675bd5095ec04af63672b875972ea4c0fcea29bc23d5e19d802664fbcdb0ed7393884bdb701d269ffb5f030b1d729ea4176fa
         | 
| 7 | 
            +
              data.tar.gz: 6f628a7ff1a132d39b4377eb3dac4c1078a2bf1171cb436d2b72add56524d4c29d6ef32638095d6962084b9339effefd67ede9af34a4676e37cb51f5da3d8987
         | 
    
        data/lib/tapsoob/data_stream.rb
    CHANGED
    
    | @@ -218,6 +218,16 @@ module Tapsoob | |
| 218 218 | 
             
                end
         | 
| 219 219 |  | 
| 220 220 | 
             
                def import_rows(rows)
         | 
| 221 | 
            +
                  # Decode blobs
         | 
| 222 | 
            +
                  if rows.has_key?(:types) && rows[:types].include?("blob")
         | 
| 223 | 
            +
                    blob_indices = rows[:types].each_index.select { |idx| rows[:types][idx] == "blob" }
         | 
| 224 | 
            +
                    rows[:data].each_index do |idx|
         | 
| 225 | 
            +
                      blob_indices.each do |bi|
         | 
| 226 | 
            +
                        rows[:data][idx][bi] = Sequel::SQL::Blob.new(Tapsoob::Utils.base64decode(rows[:data][idx][bi])) unless rows[:data][idx][bi].nil?
         | 
| 227 | 
            +
                      end
         | 
| 228 | 
            +
                    end
         | 
| 229 | 
            +
                  end
         | 
| 230 | 
            +
                  
         | 
| 221 231 | 
             
                  table.import(rows[:header], rows[:data], :commit_every => 100)
         | 
| 222 232 | 
             
                  state[:offset] += rows[:data].size
         | 
| 223 233 | 
             
                rescue Exception => ex
         | 
    
        data/lib/tapsoob/utils.rb
    CHANGED
    
    | @@ -51,7 +51,7 @@ module Tapsoob | |
| 51 51 |  | 
| 52 52 | 
             
                  header = data[0].keys
         | 
| 53 53 | 
             
                  only_data = data.collect do |row|
         | 
| 54 | 
            -
                    row =  | 
| 54 | 
            +
                    row = encode_blobs(row, string_columns)
         | 
| 55 55 | 
             
                    row.each do |column, data|
         | 
| 56 56 | 
             
                      if data.to_s.length > (max_lengths[column] || data.to_s.length)
         | 
| 57 57 | 
             
                        raise Tapsoob::InvalidData.new(<<-ERROR)
         | 
| @@ -70,27 +70,33 @@ Data : #{data} | |
| 70 70 | 
             
                    end
         | 
| 71 71 | 
             
                    header.collect { |h| row[h] }
         | 
| 72 72 | 
             
                  end
         | 
| 73 | 
            -
             | 
| 73 | 
            +
             | 
| 74 | 
            +
                  res = { table_name: table, header: header, data: only_data }
         | 
| 75 | 
            +
             | 
| 76 | 
            +
                  # Add types if schema isn't empty
         | 
| 77 | 
            +
                  res[:types] = schema.map { |c| c.last[:type] } unless schema.empty?
         | 
| 78 | 
            +
             | 
| 79 | 
            +
                  res
         | 
| 74 80 | 
             
                end
         | 
| 75 81 |  | 
| 76 82 | 
             
                # mysql text and blobs fields are handled the same way internally
         | 
| 77 83 | 
             
                # this is not true for other databases so we must check if the field is
         | 
| 78 84 | 
             
                # actually text and manually convert it back to a string
         | 
| 79 85 | 
             
                def incorrect_blobs(db, table)
         | 
| 80 | 
            -
                  return [] if (db.url =~ /mysql:\/\//).nil?
         | 
| 86 | 
            +
                  return [] if (db.url =~ /(mysql|mysql2):\/\//).nil?
         | 
| 81 87 |  | 
| 82 88 | 
             
                  columns = []
         | 
| 83 89 | 
             
                  db.schema(table).each do |data|
         | 
| 84 90 | 
             
                    column, cdata = data
         | 
| 85 | 
            -
                    columns << column if cdata[: | 
| 91 | 
            +
                    columns << column if cdata[:type] == :blob
         | 
| 86 92 | 
             
                  end
         | 
| 87 93 | 
             
                  columns
         | 
| 88 94 | 
             
                end
         | 
| 89 95 |  | 
| 90 | 
            -
                def  | 
| 96 | 
            +
                def encode_blobs(row, columns)
         | 
| 91 97 | 
             
                  return row if columns.size == 0
         | 
| 92 98 | 
             
                  columns.each do |c|
         | 
| 93 | 
            -
                    row[c] = row[c] | 
| 99 | 
            +
                    row[c] = base64encode(row[c]) unless row[c].nil?
         | 
| 94 100 | 
             
                  end
         | 
| 95 101 | 
             
                  row
         | 
| 96 102 | 
             
                end
         | 
    
        data/lib/tapsoob/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: tapsoob
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.3. | 
| 4 | 
            +
              version: 0.3.17
         | 
| 5 5 | 
             
            platform: java
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Félix Bellanger
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire:
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2020- | 
| 12 | 
            +
            date: 2020-07-08 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         |