Module: Enum::Transition
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/enum/transition.rb,
lib/enum/transition/version.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- VERSION =
'0.1.0'
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
5 6 7 8 9 10 |
# File 'lib/enum/transition.rb', line 5 def self.included(base) base.class_eval do after_validation :ensure! base.extend ClassMethods end end |
Instance Method Details
#ensure! ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/enum/transition.rb', line 26 def ensure! self.class.name.constantize.instance_variable_get('@enum_columns_array').each do |column| if !self.new_record? && self.send("#{column}_changed?") unless self.respond_to? "#{self.send("#{column}_was")}_to_#{self.send("#{column}")}" self.errors.add(:base, "Status can't be changed from #{self.send("#{column}_was")} to #{self.send("#{column}")}") end end end end |