Class: RPM::File::Lead

Inherits:
Object
  • Object
show all
Includes:
Cabin::Inspectable
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.



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

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

Instance Attribute Details

#archnumObject

short archnum;



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

def archnum
  @archnum
end

#lengthObject

}



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

def length
  @length
end

#magicObject

struct rpmlead {



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

def magic
  @magic
end

#majorObject

unsigned char major;



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

def major
  @major
end

#minorObject

unsigned char minor;



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

def minor
  @minor
end

#nameObject

char name;



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

def name
  @name
end

#osnumObject

short osnum;



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

def osnum
  @osnum
end

#reservedObject

char reserved;



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

def reserved
  @reserved
end

#signature_typeObject

short signature_type;



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

def signature_type
  @signature_type
end

#typeObject

short type;



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

def type
  @type
end

Instance Method Details

#readObject

def type



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

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



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

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