module Godel
Constants
- VERSION
Attributes
warnings[RW]
Public Class Methods
included(klass)
click to toggle source
# File lib/godel.rb, line 6 def self.included(klass) klass.extend ClassMethods klass.cattr_accessor :_incomplete_methods, :_incomplete_attrs klass.after_save :clear_godel_cache klass.after_create :clear_godel_cache klass._incomplete_methods ||= [] klass._incomplete_attrs ||= [] end
Public Instance Methods
complete?()
click to toggle source
# File lib/godel.rb, line 15 def complete? !incomplete? end
incomplete?()
click to toggle source
# File lib/godel.rb, line 19 def incomplete? @_incomplete ||= begin return false if _incomplete_attrs.empty? && _incomplete_methods.empty? warnings.any? end end
Private Instance Methods
_filter_incomplete_attributes()
click to toggle source
# File lib/godel.rb, line 42 def _filter_incomplete_attributes _incomplete_attrs.each do |attr| value = self.send(attr) warnings.add(attr, "#{self.class} is incomplete without #{attr}") unless value.present? end end
_filter_incomplete_methods()
click to toggle source
# File lib/godel.rb, line 49 def _filter_incomplete_methods _incomplete_methods.each do |method| self.send(method) end end
clear_godel_cache()
click to toggle source
# File lib/godel.rb, line 35 def clear_godel_cache @_incomplete = nil warnings.clear! _filter_incomplete_attributes _filter_incomplete_methods end