Class: MachO::LoadCommands::DylibCommand
- Inherits:
-
LoadCommand
- Object
- MachOStructure
- LoadCommand
- MachO::LoadCommands::DylibCommand
- Defined in:
- lib/macho/load_commands.rb
Overview
A load command representing some aspect of shared libraries, depending on filetype. Corresponds to LC_ID_DYLIB, LC_LOAD_DYLIB, LC_LOAD_WEAK_DYLIB, and LC_REEXPORT_DYLIB.
Direct Known Subclasses
Instance Method Summary collapse
-
#compatibility_version ⇒ Integer
The library's compatibility version number.
-
#current_version ⇒ Integer
The library's current version number.
-
#flag?(flag) ⇒ Boolean
True if
flagapplies to this dylib command. -
#name ⇒ LCStr
The library's path name as an LCStr.
-
#serialize(context) ⇒ String
private
The serialized fields of the load command.
-
#timestamp ⇒ Integer
The library's build time stamp.
-
#to_h ⇒ Hash
A hash representation of this DylibCommand.
Methods inherited from LoadCommand
#cmd, #cmdsize, create, new_from_bin, #offset, #serializable?, #to_s, #type, #view
Methods inherited from MachOStructure
bytesize, format, #initialize, new_from_bin
Constructor Details
This class inherits a constructor from MachO::MachOStructure
Instance Method Details
#compatibility_version ⇒ Integer
Returns the library's compatibility version number.
561 |
# File 'lib/macho/load_commands.rb', line 561 field :compatibility_version, :uint32 |
#current_version ⇒ Integer
Returns the library's current version number.
558 |
# File 'lib/macho/load_commands.rb', line 558 field :current_version, :uint32 |
#flag?(flag) ⇒ Boolean
Returns true if flag applies to this dylib command.
567 568 569 570 571 572 573 574 575 576 577 578 |
# File 'lib/macho/load_commands.rb', line 567 def flag?(flag) case cmd when LOAD_COMMAND_CONSTANTS[:LC_LOAD_WEAK_DYLIB] flag == :DYLIB_USE_WEAK_LINK when LOAD_COMMAND_CONSTANTS[:LC_REEXPORT_DYLIB] flag == :DYLIB_USE_REEXPORT when LOAD_COMMAND_CONSTANTS[:LC_LOAD_UPWARD_DYLIB] flag == :DYLIB_USE_UPWARD else false end end |
#name ⇒ LCStr
Returns the library's path name as an LCStr.
552 |
# File 'lib/macho/load_commands.rb', line 552 field :name, :lcstr, :to_s => true |
#serialize(context) ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns the serialized fields of the load command.
584 585 586 587 588 589 590 591 592 |
# File 'lib/macho/load_commands.rb', line 584 def serialize(context) format = Utils.specialize_format(self.class.format, context.endianness) string_payload, string_offsets = Utils.pack_strings(self.class.bytesize, context.alignment, :name => name.to_s) cmdsize = self.class.bytesize + string_payload.bytesize [cmd, cmdsize, string_offsets[:name], , current_version, compatibility_version].pack(format) + string_payload end |
#timestamp ⇒ Integer
Returns the library's build time stamp.
555 |
# File 'lib/macho/load_commands.rb', line 555 field :timestamp, :uint32 |
#to_h ⇒ Hash
Returns a hash representation of this MachO::LoadCommands::DylibCommand.
595 596 597 598 599 600 601 602 |
# File 'lib/macho/load_commands.rb', line 595 def to_h { "name" => name.to_h, "timestamp" => , "current_version" => current_version, "compatibility_version" => compatibility_version, }.merge super end |