1

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?

ylima
  • 410
  • 5
  • 17

0 Answers0