Sha256: bd2a1e634451bd81c7b7fd8569a335f70f8c29bd23d4cd107713b940ebbae82d

Contents?: true

Size: 826 Bytes

Versions: 4

Compression:

Stored size: 826 Bytes

Contents

module Microscope
  class InstanceMethod
    class BooleanInstanceMethod < InstanceMethod
      def apply
        model.class_eval <<-RUBY, __FILE__, __LINE__ + 1
          define_method 'mark_as_#{field.name}!' do
            mark_as_#{field.name}
            save!
          end

          define_method 'mark_as_not_#{field.name}!' do
            mark_as_not_#{field.name}
            save!
          end
          alias_method 'mark_as_un#{field.name}!', 'mark_as_not_#{field.name}!'

          define_method 'mark_as_#{field.name}' do
            send("#{field.name}=", true)
          end

          define_method 'mark_as_not_#{field.name}' do
            send("#{field.name}=", false)
          end
          alias_method 'mark_as_un#{field.name}', 'mark_as_not_#{field.name}'
        RUBY
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
microscope-1.1.1 lib/microscope/instance_method/boolean_instance_method.rb
microscope-1.1.0 lib/microscope/instance_method/boolean_instance_method.rb
microscope-1.0.1 lib/microscope/instance_method/boolean_instance_method.rb
microscope-1.0.0 lib/microscope/instance_method/boolean_instance_method.rb