class Microscope::InstanceMethod::DatetimeInstanceMethod
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
Microscope::InstanceMethod::new
# File lib/microscope/instance_method/datetime_instance_method.rb, line 4 def initialize(*args) super @now = 'Time.now' @cropped_field_regex = /_at$/ end
Public Instance Methods
apply()
click to toggle source
# File lib/microscope/instance_method/datetime_instance_method.rb, line 11 def apply @cropped_field = field.name.gsub(@cropped_field_regex, '') model.class_eval(apply_methods) if @field.name =~ @cropped_field_regex end
Protected Instance Methods
apply_aliases()
click to toggle source
# File lib/microscope/instance_method/datetime_instance_method.rb, line 63 def apply_aliases <<-RUBY alias_method 'mark_as_un#{@cropped_field}!', 'mark_as_not_#{@cropped_field}!' alias_method 'mark_as_un#{@cropped_field}', 'mark_as_not_#{@cropped_field}' alias_method 'un#{@cropped_field}?', 'not_#{@cropped_field}?' RUBY end
apply_assignment_methods()
click to toggle source
# File lib/microscope/instance_method/datetime_instance_method.rb, line 23 def apply_assignment_methods <<-RUBY define_method '#{@cropped_field}=' do |value| if Microscope::Utils.value_to_boolean(value) self.#{field.name} ||= #{@now} else self.#{field.name} = nil end end define_method('mark_as_#{@cropped_field}') { self.#{@cropped_field}= true } define_method('mark_as_not_#{@cropped_field}') { self.#{@cropped_field}= false } RUBY end
apply_bang_methods()
click to toggle source
# File lib/microscope/instance_method/datetime_instance_method.rb, line 38 def apply_bang_methods <<-RUBY define_method 'mark_as_#{@cropped_field}!' do mark_as_#{@cropped_field} save! end define_method 'mark_as_not_#{@cropped_field}!' do mark_as_not_#{@cropped_field} save! end RUBY end
apply_methods()
click to toggle source
# File lib/microscope/instance_method/datetime_instance_method.rb, line 19 def apply_methods apply_assignment_methods + apply_bang_methods + apply_predicate_methods + apply_aliases end
apply_predicate_methods()
click to toggle source
# File lib/microscope/instance_method/datetime_instance_method.rb, line 52 def apply_predicate_methods <<-RUBY define_method '#{@cropped_field}?' do value = send('#{field.name}') !value.nil? && value <= #{@now} end define_method('not_#{@cropped_field}?') { !#{@cropped_field}? } RUBY end