Class: RPM::File::Lead

Inherits:
Object
  • Object
show all
Defined in:
lib/arr-pm/file/lead.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file) ⇒ Lead

Returns a new instance of Lead.



19
20
21
22
# File 'lib/arr-pm/file/lead.rb', line 19

def initialize(file)
  @file = file
  @inspectables = [:@major, :@minor, :@length, :@type, :@archnum, :@signature_type, :@reserved, :@osnum]
end

Instance Attribute Details

#archnumObject

short archnum;



10
11
12
# File 'lib/arr-pm/file/lead.rb', line 10

def archnum
  @archnum
end

#lengthObject

}



17
18
19
# File 'lib/arr-pm/file/lead.rb', line 17

def length
  @length
end

#magicObject

struct rpmlead {



6
7
8
# File 'lib/arr-pm/file/lead.rb', line 6

def magic
  @magic
end

#majorObject

unsigned char major;



7
8
9
# File 'lib/arr-pm/file/lead.rb', line 7

def major
  @major
end

#minorObject

unsigned char minor;



8
9
10
# File 'lib/arr-pm/file/lead.rb', line 8

def minor
  @minor
end

#nameObject

char name;



11
12
13
# File 'lib/arr-pm/file/lead.rb', line 11

def name
  @name
end

#osnumObject

short osnum;



12
13
14
# File 'lib/arr-pm/file/lead.rb', line 12

def osnum
  @osnum
end

#reservedObject

char reserved;



14
15
16
# File 'lib/arr-pm/file/lead.rb', line 14

def reserved
  @reserved
end

#signature_typeObject

short signature_type;



13
14
15
# File 'lib/arr-pm/file/lead.rb', line 13

def signature_type
  @signature_type
end

#typeObject

short type;



9
10
11
# File 'lib/arr-pm/file/lead.rb', line 9

def type
  @type
end

Instance Method Details

#readObject

def type



35
36
37
38
39
40
41
42
43
# File 'lib/arr-pm/file/lead.rb', line 35

def read
  # Use 'A' here instead of 'a' to trim nulls.
  @length = 96
  data = @file.read(@length).unpack("A4CCnnA66nnA16")
  @magic, @major, @minor, @type, @archnum, @name, \
    @osnum, @signature_type, @reserved = data

  return nil
end

#write(file) ⇒ Object

def read



45
46
47
48
49
# File 'lib/arr-pm/file/lead.rb', line 45

def write(file)
  data = [ @magic, @major, @minor, @type, @archnum, @name, \
           @osnum, @signature_type, @reserved ].pack("a4CCnna66nna16")
  file.write(data)
end