module FuzzyTyrion::Awesome::ClassMethods

Public Instance Methods

danger_danger(attribute, msg, &block) click to toggle source
# File lib/fuzzy_tyrion.rb, line 10
def danger_danger(attribute, msg, &block)
  define_method("#{attribute}_with_danger_danger=") do |new_value|
    if block.call(new_value)
      send("#{attribute}_without_danger_danger=", new_value)
    else
      fail msg
    end
  end

  alias_method "#{attribute}_without_danger_danger=", "#{attribute}="
  alias_method "#{attribute}=", "#{attribute}_with_danger_danger="
end