Sha256: 65502227090f111de35dff46f9b425f560e6391d5b1dac8dd35c384d81e8720a

Contents?: true

Size: 637 Bytes

Versions: 3

Compression:

Stored size: 637 Bytes

Contents

module ChartMogul
  module Assertive
    def self.included(base)
      base.extend(Assertive)
    end

    private

    def assert!(predicate, message)
      return if predicate

      fail ArgumentError, message
    end

    def assert_fetch!(hash, key, message = nil)
      hash.fetch(key) do
        message = "#{key} must be defined" unless message
        fail ArgumentError, message
      end
    end

    def refute!(predicate, message)
      assert! !predicate, message
    end

    def refute_blank!(value, attribute_name)
      assert! (!value.nil? && value != ""), "#{attribute_name} cannot be nil or blank"
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
chart_mogul-0.1.1 lib/chart_mogul/assertive.rb
chart_mogul-0.1.0 lib/chart_mogul/assertive.rb
chart_mogul-0.0.1 lib/chart_mogul/assertive.rb