I know the ::
in Ruby is a scope resolution operator to access methods within modules and classes, but is it proper to name classes using ::
?
Example
class Foo::Bar::Bee < Foo::Bar::Insect
def a_method
[...]
end
end
If by “proper” you mean syntactically correct — yes.
There's nothing inherently wrong with doing it, and if you're defining a subclass in a separate file (example below) then it's a relatively common practice.
# lib/foo.rb
module Foo
end
# lib/foo/bar.rb
class Foo::Bar
end
I would avoid defining classes this way if you cannot be sure that the parent module or class already exists, though, as you'll get a NameError
due to the parent (e.g. Foo
) not existing. For this reason, you won't see much open source software that follows the more terse pattern.
class Foo::Bar
end
module Foo
class Bar
end
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With