I'm having a little trouble with a mixin. Here is the long and short, I am using a technique I found here:
http://redcorundum.blogspot.com/2006/06/mixing-in-class-methods.html To be able to mixin class and instance methods in the same module (works great btw). I'm using it to make a quick exporter for my models, where I can just mixin the module for the models where I need it. Here's the brief version of the code: # Class methods are declared in the "define_class_methods" method > # the export function > require 'mixin_class_methods' > > module Exporter > > mixin_class_methods { |klass| > } > > define_class_methods { > def export(division, columns_to_exclude) > rows_to_export.to_csv > end > > def rows_to_export > # must export someting declared in the division > # ie division.courses division.students > division.send(export_object_name) > end > > def export_object_name > self.to_s.downcase.pluralize > end > > def export_column_names(columns_to_exclude=nil) > self.column_names > end > } > end class Course < ActiveRecord::Base > include Exporter > acts_as_csv_exportable :default, self.export_column_names > end When I have it setup like this, it runs as expected. However, I want to DRY things up and move all the export functionality into the module. If I comment out the "acts_as_csv_exportable :default, self.export_column_names" line and move it to the mixin I get an undefined method name for "export_column_names". Anyone have any ideas how to get around this? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---