Skip to content

Instantly share code, notes, and snippets.

@lmarburger
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save lmarburger/4a04de077b6c8a0805dd to your computer and use it in GitHub Desktop.
Save lmarburger/4a04de077b6c8a0805dd to your computer and use it in GitHub Desktop.
I always assumed `class Outer::Inner` was a synonym for `class Outer; class Inner`
class Outer
A = 'outer'
end
puts Outer::A #=> outer
class Outer
class Inner
puts A #=> outer
end
end
class Outer::Inner
puts A
# const_lookup.rb:13:in `<class:Inner>': uninitialized constant Outer::Inner::A (NameError)
# from const_lookup.rb:12:in `<main>'
end
@jwieringa
Copy link

Me too. This is interesting.

class Outer
  p Class.nesting
end
=> [Outer]

class Outer
  class Inner
    Class.nesting
  end
end
=> [Outer::Inner, Outer]

class Outer::Inner
  Class.nesting
end
=> [Outer::Inner]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment