51 lines
1.0 KiB
Ruby
51 lines
1.0 KiB
Ruby
require_dependency 'issue'
|
|
|
|
module IssuePatch
|
|
def self.included(base)
|
|
base.extend(ClassMethods)
|
|
|
|
base.send(:include, InstanceMethods)
|
|
|
|
# Same as typing in the class
|
|
base.class_eval do
|
|
unloadable # Send unloadable so it will not be unloaded in development
|
|
belongs_to :deliverable
|
|
|
|
end
|
|
|
|
end
|
|
|
|
module ClassMethods
|
|
|
|
# Muck with the find arguements to append an include for deliverables
|
|
def find(*args)
|
|
# Options defined
|
|
if args[1].is_a?(Hash)
|
|
# include used?
|
|
if args[1].has_key?(:include) && !args[1][:include].nil?
|
|
# Add our include
|
|
args[1][:include] << :deliverable
|
|
else
|
|
# Add an include
|
|
args[1][:include] = [:deliverable]
|
|
end
|
|
end
|
|
super
|
|
end
|
|
|
|
end
|
|
|
|
module InstanceMethods
|
|
def deliverable_subject
|
|
unless self.deliverable.nil?
|
|
return self.deliverable.subject
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
# Add module to Issue
|
|
Issue.send(:include, IssuePatch)
|
|
|
|
|