Sha256: 3893eead48296922a034bd5926b552b6b2ca2209e107c94a08eeb3227c988411

Contents?: true

Size: 608 Bytes

Versions: 5

Compression:

Stored size: 608 Bytes

Contents

module Microscope
  class InstanceMethod
    class BooleanInstanceMethod < InstanceMethod
      def apply
        infinitive_verb = self.class.past_participle_to_infinitive(field.name)

        model.class_eval <<-RUBY, __FILE__, __LINE__ + 1
          define_method "#{infinitive_verb}!" do
            send("#{field.name}=", true)
            save!
          end

          define_method "not_#{infinitive_verb}!" do
            send("#{field.name}=", false)
            save!
          end
          alias_method 'un#{infinitive_verb}!', 'not_#{infinitive_verb}!'
        RUBY
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
microscope-0.6 lib/microscope/instance_method/boolean_instance_method.rb
microscope-0.5.10 lib/microscope/instance_method/boolean_instance_method.rb
microscope-0.5.9 lib/microscope/instance_method/boolean_instance_method.rb
microscope-0.5.8 lib/microscope/instance_method/boolean_instance_method.rb
microscope-0.5.7 lib/microscope/instance_method/boolean_instance_method.rb