Superclass mismatch

Hi,

I'm getting a "superclass mismatch for class TooManyAnswersError" with the
following code. Other topics I've found talk about code being reloaded, which
I'm sure isn't happening here.

···

===========
class QuestionnaireAnswerError < ArgumentError
  attr_accessor :question_id
  
  def initialize(*args)
    self.question_id = args.shift
    super(args)
  end
end

class BadAnswerCountError < QuestionnaireAnswerError
end

class TooManyAnswersError < BadAnswerCountError
end

Changing the penultimate line to "class TooManyAnswersError <
QuestionnaireAnswerError" works (although doesn't do what I want)

Hope someone can help work out what I'm doing wrong,
Gareth

Since that code appears to be fine on its own, you might need to tell
us a little more about the surrounding code and the environment in
which it's running. For example, there are some pretty intractable
complications with Rails's automatic loading/reloading.

Paul.

···

On 05/09/06, Gareth Adams <gareth.adams@gmail.com> wrote:

I'm getting a "superclass mismatch for class TooManyAnswersError" with the
following code. Other topics I've found talk about code being reloaded, which
I'm sure isn't happening here.

Gareth Adams wrote:

Hope someone can help work out what I'm doing wrong,
Gareth

Changing your example slightly shows what could be the problem:

class QuestionnaireAnswerError < ArgumentError
  attr_accessor :question_id

  def initialize(*args)
    self.question_id = args.shift
    super(args)
  end
end

class BadAnswerCountError < QuestionnaireAnswerError
end

class TooManyAnswersError < BadAnswerCountError
end

class TooManyAnswersError < QuestionnaireAnswerError
end

It looks like you've tried to define the class twice with different
super classes.

HTH

···

--
Posted via http://www.ruby-forum.com/.