class Rake::Funnel::Support::BinaryVersionReader
Constants
- KNOWN_ATTRIBUTES
- SEPARATOR
- TERMINATOR
Public Class Methods
read_from(assembly)
click to toggle source
# File lib/rake/funnel/support/binary_version_reader.rb, line 18 def read_from(assembly) binary = File.binread(assembly) attributes = KNOWN_ATTRIBUTES.map do |attr| read_attribute(binary, attr) end hash = attributes.inject({}) do |memo, attr| memo.merge(attr) end VersionInfo.new(hash) end
Private Class Methods
read_attribute(binary, attr)
click to toggle source
# File lib/rake/funnel/support/binary_version_reader.rb, line 34 def read_attribute(binary, attr) binary_attr = attr.pascalize.gsub(/(.)/) { |match| match + SEPARATOR } data = binary.match(/#{binary_attr}#{SEPARATOR}+(.*?)#{TERMINATOR}/) return {} if data.nil? { attr.to_s => data[1].gsub(/#{SEPARATOR}/, '') } end