Sha256: f794ab862b79f3cc5edb01b1d24d369d6cddd35c89a6e6ccda68852812f2f2c2

Contents?: true

Size: 682 Bytes

Versions: 62

Compression:

Stored size: 682 Bytes

Contents

require 'mspec/guards/guard'

# Despite that these are inverses, the two classes are
# used to simplify MSpec guard reporting modes

class EndianGuard < SpecGuard
  def pattern
    @pattern ||= [1].pack('L')
  end
  private :pattern
end

class BigEndianGuard < EndianGuard
  def match?
    pattern[-1] == ?\001
  end
end

class LittleEndianGuard < EndianGuard
  def match?
    pattern[-1] == ?\000
  end
end

class Object
  def big_endian
    g = BigEndianGuard.new
    g.name = :big_endian
    yield if g.yield?
  ensure
    g.unregister
  end

  def little_endian
    g = LittleEndianGuard.new
    g.name = :little_endian
    yield if g.yield?
  ensure
    g.unregister
  end
end

Version data entries

62 entries across 62 versions & 3 rubygems

Version Path
rhodes-5.5.18 lib/extensions/mspec/mspec/guards/endian.rb
rhodes-5.5.17 lib/extensions/mspec/mspec/guards/endian.rb
rhodes-5.5.15 lib/extensions/mspec/mspec/guards/endian.rb
rhodes-5.5.0.22 lib/extensions/mspec/mspec/guards/endian.rb
rhodes-5.5.2 lib/extensions/mspec/mspec/guards/endian.rb
rhodes-5.5.0.7 lib/extensions/mspec/mspec/guards/endian.rb
rhodes-5.5.0.3 lib/extensions/mspec/mspec/guards/endian.rb
rhodes-5.5.0 lib/extensions/mspec/mspec/guards/endian.rb
tauplatform-1.0.3 lib/extensions/mspec/mspec/guards/endian.rb
mspec-1.9.1 lib/mspec/guards/endian.rb
mspec-1.9.0 lib/mspec/guards/endian.rb
tauplatform-1.0.2 lib/extensions/mspec/mspec/guards/endian.rb
tauplatform-1.0.1 lib/extensions/mspec/mspec/guards/endian.rb
mspec-1.8.0 lib/mspec/guards/endian.rb
mspec-1.7.0 lib/mspec/guards/endian.rb
mspec-1.6.0 lib/mspec/guards/endian.rb
mspec-1.5.21 lib/mspec/guards/endian.rb
mspec-1.5.20 lib/mspec/guards/endian.rb
mspec-1.5.19 lib/mspec/guards/endian.rb
mspec-1.5.18 lib/mspec/guards/endian.rb