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.
Constant Summary collapse
- FORMAT =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
"L=6".freeze
- SIZEOF =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
24
Instance Attribute Summary collapse
-
#compatibility_version ⇒ Fixnum
readonly
The library's compatibility version number.
-
#current_version ⇒ Fixnum
readonly
The library's current version number.
-
#name ⇒ MachO::LoadCommands::LoadCommand::LCStr
readonly
The library's path name as an LCStr.
-
#timestamp ⇒ Fixnum
readonly
The library's build time stamp.
Attributes inherited from LoadCommand
Instance Method Summary collapse
-
#initialize(view, cmd, cmdsize, name, timestamp, current_version, compatibility_version) ⇒ DylibCommand
constructor
private
A new instance of DylibCommand.
-
#serialize(context) ⇒ String
private
The serialized fields of the load command.
Methods inherited from LoadCommand
create, new_from_bin, #offset, #serializable?, #to_s, #type
Methods inherited from MachOStructure
Constructor Details
#initialize(view, cmd, cmdsize, name, timestamp, current_version, compatibility_version) ⇒ DylibCommand
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 a new instance of DylibCommand.
470 471 472 473 474 475 476 |
# File 'lib/macho/load_commands.rb', line 470 def initialize(view, cmd, cmdsize, name, , current_version, compatibility_version) super(view, cmd, cmdsize) @name = LCStr.new(self, name) = @current_version = current_version @compatibility_version = compatibility_version end |
Instance Attribute Details
#compatibility_version ⇒ Fixnum (readonly)
Returns the library's compatibility version number.
459 460 461 |
# File 'lib/macho/load_commands.rb', line 459 def compatibility_version @compatibility_version end |
#current_version ⇒ Fixnum (readonly)
Returns the library's current version number.
456 457 458 |
# File 'lib/macho/load_commands.rb', line 456 def current_version @current_version end |
#name ⇒ MachO::LoadCommands::LoadCommand::LCStr (readonly)
Returns the library's path name as an LCStr.
450 451 452 |
# File 'lib/macho/load_commands.rb', line 450 def name @name end |
#timestamp ⇒ Fixnum (readonly)
Returns the library's build time stamp.
453 454 455 |
# File 'lib/macho/load_commands.rb', line 453 def end |
Instance Method Details
#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.
481 482 483 484 485 486 487 |
# File 'lib/macho/load_commands.rb', line 481 def serialize(context) format = Utils.specialize_format(FORMAT, context.endianness) string_payload, string_offsets = Utils.pack_strings(SIZEOF, context.alignment, :name => name.to_s) cmdsize = SIZEOF + string_payload.bytesize [cmd, cmdsize, string_offsets[:name], , current_version, compatibility_version].pack(format) + string_payload end |