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
-~----------~----~----~----~------~----~------~--~---

Reply via email to