module AttrRequired

Public Class Methods

included(klass) click to toggle source
# File lib/attr_required.rb, line 5
def self.included(klass)
  klass.send :extend, ClassMethods
end

Public Instance Methods

attr_missing() click to toggle source
# File lib/attr_required.rb, line 63
def attr_missing
  required_attributes.select do |key|
    value = send(key)
    if value.respond_to?(:empty?)
      value.empty?
    else
      value.nil?
    end
  end
end
attr_missing!() click to toggle source
# File lib/attr_required.rb, line 57
def attr_missing!
  if attr_missing?
    raise AttrMissing.new("'#{attr_missing.join('\', \'')}' required.")
  end
end
attr_missing?() click to toggle source
# File lib/attr_required.rb, line 53
def attr_missing?
  !attr_missing.empty?
end
attr_required?(key) click to toggle source
# File lib/attr_required.rb, line 49
def attr_required?(key)
  self.class.attr_required? key
end
required_attributes() click to toggle source
# File lib/attr_required.rb, line 45
def required_attributes
  self.class.required_attributes
end