Sha256: f366db108943cb91cf8270d164a59d4a51e99c9324dc8e4daa4a1763e4ed5384

Contents?: true

Size: 702 Bytes

Versions: 27

Compression:

Stored size: 702 Bytes

Contents

module BTC

  # Several functions intended to detect bad data in runtime and throw exceptions.
  # These are for programmer's errors, not for bad user input.
  # Bad user input should never raise exceptions.
  module Safety
    def AssertType(value, type)
      if !value.is_a?(type)
        raise ArgumentError, "Value #{value.inspect} must be of type #{type}!"
      end
    end
    def AssertTypeOrNil(value, type)
      return if value == nil
      AssertType(value, type)
    end

    # Checks invariant and raises an exception.
    def Invariant(condition, message)
      if !condition
        raise RuntimeError, "BTC Invariant Failure: #{message}"
      end
    end
  end

  include Safety
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
btcruby-1.8 lib/btcruby/safety.rb
btcruby-1.7 lib/btcruby/safety.rb
btcruby-1.6 lib/btcruby/safety.rb
btcruby-1.5.1 lib/btcruby/safety.rb
btcruby-1.5 lib/btcruby/safety.rb
btcruby-1.4 lib/btcruby/safety.rb
btcruby-1.3 lib/btcruby/safety.rb
btcruby-1.2.2 lib/btcruby/safety.rb
btcruby-1.2.1 lib/btcruby/safety.rb
btcruby-1.2 lib/btcruby/safety.rb
btcruby-1.1.6 lib/btcruby/safety.rb
btcruby-1.1.5 lib/btcruby/safety.rb
btcruby-1.1.4 lib/btcruby/safety.rb
btcruby-1.1.3 lib/btcruby/safety.rb
btcruby-1.1.2 lib/btcruby/safety.rb
btcruby-1.1.1 lib/btcruby/safety.rb
btcruby-1.1 lib/btcruby/safety.rb
btcruby-1.0.9 lib/btcruby/safety.rb
btcruby-1.0.8 lib/btcruby/safety.rb
btcruby-1.0.7 lib/btcruby/safety.rb