Sha256: 2f504c84753c82fce68ce1b0e906a735ee97f267da9fd2db90dc94b76345d036
Contents?: true
Size: 750 Bytes
Versions: 12
Compression:
Stored size: 750 Bytes
Contents
module Mongomatic module Validatable module Requireable #:nodoc: module ClassMethods #:nodoc: def requires(*args) required_options.concat args end def required_options @required_options ||= [] end end def self.included(klass) klass.extend ClassMethods end def requires(options) required_options = self.class.required_options.inject([]) do |errors, attribute| errors << attribute.to_s unless options.has_key?(attribute) errors end raise ArgumentError.new("#{self.class} requires options: #{required_options.join(', ')}") if required_options.any? true end end end end
Version data entries
12 entries across 12 versions & 1 rubygems