Module: Snm::Enum::Transition
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/snm/enum/transition.rb,
lib/snm/enum/transition/railtie.rb,
lib/snm/enum/transition/version.rb
Defined Under Namespace
Modules: ClassMethods
Classes: Railtie
Constant Summary
collapse
- VERSION =
"0.1.2"
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.included(base) ⇒ Object
9
10
11
12
13
14
15
|
# File 'lib/snm/enum/transition.rb', line 9
def self.included(base)
base.class_eval do
validate :ensure!
base.extend ClassMethods
@enum_transition_columns=[]
end
end
|
Instance Method Details
#ensure! ⇒ Object
30
31
32
33
34
35
36
37
38
|
# File 'lib/snm/enum/transition.rb', line 30
def ensure!
self.class.name.constantize.instance_variable_get('@enum_transition_columns').each do |column|
if !self.new_record? && self.send("#{column}_changed?")
unless self.respond_to? "snm_#{self.send("#{column}_was")}_to_#{self.send("#{column}")}"
self.errors.add(:base, "#{column.capitalize} can't be changed from #{self.send("#{column}_was")} to #{self.send("#{column}")}")
end
end
end
end
|