Sha256: 6d90292f025a9d6aa8c6078d7d02a7ba6e2914ac9968b6aa7a769ea06390205f
Contents?: true
Size: 1.11 KB
Versions: 3
Compression:
Stored size: 1.11 KB
Contents
RSpec::Matchers.define :have_version do |version| match do |file| get_version(file) == version end failure_message do |file| "Expected file '#{file.name}' to have version '#{version}' but it had version '#{get_version}' instead" end failure_message_when_negated do |file| "Expected file '#{file.name}' to not have version '#{version}' but it did" end private def get_version(file) version_dll = Fiddle.dlopen('version.dll') s='' vsize = Fiddle::Function.new(version_dll['GetFileVersionInfoSize'], [Fiddle::TYPE_VOIDP, Fiddle::TYPE_VOIDP], Fiddle::TYPE_LONG).call(file.name, s) raise 'Unable to determine the version number' unless vsize > 0 result = ' '*vsize Fiddle::Function.new(version_dll['GetFileVersionInfo'], [Fiddle::TYPE_VOIDP, Fiddle::TYPE_LONG, Fiddle::TYPE_LONG, Fiddle::TYPE_VOIDP], Fiddle::TYPE_VOIDP).call(file.name, 0, vsize, result) rstring = result.unpack('v*').map{|s| s.chr if s<256}*'' r = /FileVersion..(.*?)\000/.match(rstring) r[1] end end
Version data entries
3 entries across 3 versions & 1 rubygems