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