Sha256: 81d5143442857e9f4a314eab322cabc0753938dca4587f42268a2691f2ce3f6c
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
module Rats class Data ERROR = "not allowed" attr_accessor :value, :raise_errors, :error def initialize(value=nil, raise_errors=false) self.value = value self.raise_errors = raise_errors end def nil!; @value = nil; end def raise_errors!; @raise_errors = true; end def raise_errors?; @raise_errors == true; end # # READ & WRITE # def value=(value) return unless value @value = self.class.transform(value) raise ArgumentError if self.raise_errors? && !self.valid? end alias v= value= alias v value # optional: override this in a sub-class # def self.transform(value); value; end # # DISPLAY # def to_s return nil unless @value self.value.to_s end # it is expected that a specfic data sub-class will re-define this # def self.padding_width; 1; end def self.padding_value; " "; end def to_p return nil unless @value self.value.to_s.rjust(self.class.padding_width,self.class.padding_value) end # # VALIDATION # # - it is expected that a specfic data sub-class will re-define this # def valid? set_error! unless valid = validate! valid end private def set_error! self.error = ERROR end def validate! true end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rats-0.5.0 | lib/rats/data/base.rb |