Sha256: 18e4ef9b3a01eb33980cdb3eb13278848fa12bc7335f23c77325b286a26b0ff8

Contents?: true

Size: 987 Bytes

Versions: 45

Compression:

Stored size: 987 Bytes

Contents

module Zip
  class ExtraField::Generic
    def self.register_map
      return unless const_defined?(:HEADER_ID)

      ::Zip::ExtraField::ID_MAP[const_get(:HEADER_ID)] = self
    end

    def self.name
      @name ||= to_s.split('::')[-1]
    end

    # return field [size, content] or false
    def initial_parse(binstr)
      return false unless binstr

      if binstr[0, 2] != self.class.const_get(:HEADER_ID)
        warn 'WARNING: weird extra field header ID. Skip parsing it.'
        return false
      end

      [binstr[2, 2].unpack1('v'), binstr[4..-1]]
    end

    def ==(other)
      return false if self.class != other.class

      each do |k, v|
        return false if v != other[k]
      end
      true
    end

    def to_local_bin
      s = pack_for_local
      self.class.const_get(:HEADER_ID) + [s.bytesize].pack('v') << s
    end

    def to_c_dir_bin
      s = pack_for_c_dir
      self.class.const_get(:HEADER_ID) + [s.bytesize].pack('v') << s
    end
  end
end

Version data entries

45 entries across 35 versions & 8 rubygems

Version Path
rubyzip-2.4.1 lib/zip/extra_field/generic.rb
rubyzip-2.4 lib/zip/extra_field/generic.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
rubyzip-2.4.rc1 lib/zip/extra_field/generic.rb
tdiary-5.2.4 vendor/bundle/ruby/3.1.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
lg_pod_plugin-1.0.8 lib/zip/extra_field/generic.rb
lg_pod_plugin-1.0.7 lib/zip/extra_field/generic.rb
lg_pod_plugin-1.0.6 lib/zip/extra_field/generic.rb
tdiary-5.2.3 vendor/bundle/ruby/3.1.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
tdiary-5.2.2 vendor/bundle/ruby/3.1.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
tdiary-5.2.1 vendor/bundle/ruby/3.1.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
vagrant-unbundled-2.2.19.0 vendor/bundle/ruby/3.0.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
tdiary-5.2.0 vendor/bundle/ruby/3.0.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
tdiary-5.2.0 vendor/bundle/ruby/2.7.0/gems/rubyzip-2.3.0/lib/zip/extra_field/generic.rb
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb
vagrant-unbundled-2.2.18.0 vendor/bundle/ruby/3.0.0/gems/rubyzip-2.3.2/lib/zip/extra_field/generic.rb