trouble accessing ruby constants globally

I'm trying to declare a constant in one file and access it in another. It doesn't seem to be working.

Here's my declaration (at the top of a file, remainder of file omitted for brevity):

NUM_SECTIONS_TO_PARSE = 7

class UserDataFile < File

  def self.parse_file(src_name, parse_progress)

        (other stuff follows)

Here's where i'm trying to access it:

parse_progress = Array.new(::NUM_SECTIONS_TO_PARSE, ::NOT_YET_PARSED)

it fails with the message: uninitialized constant NUM_SECTIONS_TO_PARSE

I've run into this problem several times before and always somehow hacked my way around it, but I want to get it right this time. Any help appreciated.

Yoram

Why don't you write File::NUM_SECTIONS_TO_PARSE

I'm trying to declare a constant in one file and access it in another. It doesn't seem to be working.

Here's my declaration (at the top of a file, remainder of file omitted for brevity):

NUM_SECTIONS_TO_PARSE = 7

class UserDataFile < File

    def self\.parse\_file\(src\_name, parse\_progress\)

    \(other stuff follows\)

Here's where i'm trying to access it:

parse_progress = Array.new(::NUM_SECTIONS_TO_PARSE, ::NOT_YET_PARSED)

it fails with the message: uninitialized constant NUM_SECTIONS_TO_PARSE

I've run into this problem several times before and always somehow hacked my way around it, but I want to get it right this time. Any help appreciated.

Has that file been loaded at the point you try to use that constant?

Fred

Thanks Fred. I guess I did not fully understand the sequence in which ruby loads files. I put a "require 'name_of_file_with_constant_declaration'" at the top of the file in which I am using the constant and that fixed it.

Yoram