Class: Zip::ExtraField::Generic
- Inherits:
-
Object
- Object
- Zip::ExtraField::Generic
- Defined in:
- lib/zip/extra_field/generic.rb
Overview
:nodoc:
Class Method Summary collapse
Instance Method Summary collapse
-
#initial_parse(binstr) ⇒ Object
return field [size, content] or false.
-
#suppress? ⇒ Boolean
Default strategy is to suppress all extra fields if we're asked to.
- #to_c_dir_bin ⇒ Object
- #to_local_bin ⇒ Object
Class Method Details
.name ⇒ Object
11 12 13 |
# File 'lib/zip/extra_field/generic.rb', line 11 def self.name @name ||= to_s.split('::').last.downcase.to_sym end |
.register_map ⇒ Object
5 6 7 8 9 |
# File 'lib/zip/extra_field/generic.rb', line 5 def self.register_map return unless const_defined?(:HEADER_ID) ::Zip::ExtraField::ID_MAP[const_get(:HEADER_ID)] = self end |
Instance Method Details
#initial_parse(binstr) ⇒ Object
return field [size, content] or false
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/zip/extra_field/generic.rb', line 16 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..]] end |
#suppress? ⇒ Boolean
Default strategy is to suppress all extra fields if we're asked to. Specific extra field types can override this if they need to be kept.
29 30 31 |
# File 'lib/zip/extra_field/generic.rb', line 29 def suppress? true end |
#to_c_dir_bin ⇒ Object
38 39 40 41 |
# File 'lib/zip/extra_field/generic.rb', line 38 def to_c_dir_bin s = pack_for_c_dir (self.class.const_get(:HEADER_ID) + [s.bytesize].pack('v')) << s end |
#to_local_bin ⇒ Object
33 34 35 36 |
# File 'lib/zip/extra_field/generic.rb', line 33 def to_local_bin s = pack_for_local (self.class.const_get(:HEADER_ID) + [s.bytesize].pack('v')) << s end |