On Wed, Jun 3, 2009 at 7:58 PM, Conrad Taylor <[email protected]> wrote:
> On Wed, Jun 3, 2009 at 7:39 PM, Clem Rock < > [email protected]> wrote: > >> >> Hello, >> I'm overriding the initialize method of a base class and I'm trying >> to set a Base class variable in the overridden method and have it >> register in the Base class (hope that makes sense). >> >> Here's my code: >> >> [code] >> >> in Rails::Generator::Base: >> >> >> class Base >> include Options >> class_inheritable_accessor :spec >> >> def initialize(runtime_args, runtime_options = {}) >> @args = runtime_args >> parse!(@args, runtime_options) >> >> # Derive source and destination paths. >> @source_root = options[:source] || File.join(spec.path, 'templates') >> end >> end >> >> class MediaModuleGenerator < Rails::Generator::Base >> def initialize(runtime_args, runtime_options = {}) >> self.spec.path = File.dirname(__FILE__) + >> '/generators/media_module' >> super >> end >> end >> > > If you're overriding the initialize method, then you should be > calling super before any other expression. This isn't necessary > in regards to subclasses who parent is Object. > You should have an expression like this in your subclass: super( runtime_args, runtime_options ) If you need further details, please consult the PixAxe book. -Conrad > > -Conrad > > >> >> [/code] >> >> I should mention that spec is a module w/in the Rails framework IE: >> Rails::Generator::Spec >> >> When I run my generator, I get this error: >> >> You have a nil object when you didn't expect it! (NoMethodError) The >> error occurred while evaluating nil.path >> >> So when I set the self.spec.path var to File.dirname(__FILE__) + >> '/generators/media_module', it's not registering in the base class. >> >> Any ideas? >> -- >> Posted via http://www.ruby-forum.com/. >> >> >> >> > --~--~---------~--~----~------------~-------~--~----~ 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 [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

