Class: Rake::Funnel::Support::BinaryVersionReader

Inherits:
Object
  • Object
show all
Defined in:
lib/rake/funnel/support/binary_version_reader.rb

Constant Summary collapse

KNOWN_ATTRIBUTES =
[:company_name, :file_description, :file_version, :legal_copyright, :product_name, :product_version, :assembly_version]
SEPARATOR =
"\0"
TERMINATOR =
"\0" * 3

Class Method Summary collapse

Class Method Details

.read_from(assembly) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/rake/funnel/support/binary_version_reader.rb', line 10

def read_from(assembly)
  binary = File.binread(assembly)

  attributes = KNOWN_ATTRIBUTES.map { |attr|
    read_attribute(binary, attr)
  }

  hash = attributes.inject({}) { |memo, attr|
    memo.merge(attr)
  }

  VersionInfo.new(hash)
end