Sha256: c01cc7fc832fad707b02ca578900fcecd594f91821797e24776c37b73fddef04
Contents?: true
Size: 1.56 KB
Versions: 3
Compression:
Stored size: 1.56 KB
Contents
module SimpleModel module Errors def errors @errors ||= ErrorsHash.new @errors end def valid? self.errors.clear if errors validate self.errors.blank? || self.errors.empty? end def errors? !self.errors.nil? && !errors.empty? end def errors_on(attr) self.valid? [self.errors.on(attr.to_s)].flatten.compact end alias :error_on :errors_on def errors_to_s error_string = "" self.errors.full_messages.each do |m| error_string << "#{m} " end error_string end def validate # Override to implement validation end def errors_for_flash error_string = "" errors.full_messages.each do |m| error_string << "<div>#{m}</div>" end error_string end class ErrorsHash attr_accessor :errors def initialize errors end def errors @errors ||= {} @errors end def clear self.errors = {} end def add(attr, message) errors[attr.to_s] ||= [] errors[attr.to_s] << message end def count errors.length end def empty? errors.empty? end def full_messages full_messages = [] errors.each do |error| error[1].each do |message| full_messages << "#{error[0].titleize} #{message}" end end full_messages end def on(attr) errors[attr.to_s] if errors[attr.to_s] end alias :[] :on end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
simple_model-0.1.1 | lib/simple_model/errors.rb |
simple_model-0.1.0 | lib/simple_model/errors.rb |
simple_model-0.0.1 | lib/simple_model/errors.rb |