Sha256: a76b932d1a7941970b89902fdd1f67b47a40b018b77029192d530e2e5c5bf280

Contents?: true

Size: 503 Bytes

Versions: 3

Compression:

Stored size: 503 Bytes

Contents

module Microscope
  class InstanceMethod
    class DatetimeInstanceMethod < InstanceMethod
      def apply
        cropped_field = field.name.gsub(/_at$/, '')

        model.class_eval <<-RUBY, __FILE__, __LINE__ + 1
          define_method "#{cropped_field}?" do
            value = send("#{field.name}")
            !value.nil? && value <= Time.now
          end

          define_method "not_#{cropped_field}?" do
            !#{cropped_field}?
          end
        RUBY
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
microscope-0.5 lib/microscope/instance_method/datetime_instance_method.rb
microscope-0.4.2 lib/microscope/instance_method/datetime_instance_method.rb
microscope-0.4.1 lib/microscope/instance_method/datetime_instance_method.rb