I'm new to Ruby and Rails and was trying to create a simple patch plugin that includes another plugin's extra property as a column available when listing issues.
Based on what I've read so far I wrote a new file at lib/issue_query_patch.rb
containing:
require_dependency 'issue_query'
module IssueQueryPatch
def self.included(base) # :nodoc:
base.send(:include, InstanceMethods)
base.class_eval do
alias_method_chain :available_columns, :story_points
end
end
module InstanceMethods
# Adds the story points column to default the redmine issue query
def available_columns_with_story_points
columns = available_columns_without_story_points
columns << get_story_points_column
return columns
end
def get_story_points_column
return @story_points_column if @story_points_column
@story_points_column = QueryAssociationColumn.new(:agile_data, :story_points, :caption => :label_agile_story_points)
@story_points_column
end
end
end
IssueQuery.send(:include, IssueQueryPatch)
But when I try to list my issues I get:
NameError (uninitialized constant IssueQueryPatch::InstanceMethods::QueryAssociationColumn):
A similar approach using QueryColumn
does not raise a NameError.
Since both classes are declared at app/models/query.rb
I'm clueless to why this is happening.
How can I get rid of this error?