A static method in Ruby is called a class method. You can create a class method by defining the method on "self
" (which refers to the class
itself), for example, like so:
class Foo def self.bar "bar" end end puts Foo.bar #=> "bar"
You can also use the class name itself instead of self
(as the two are equivalent):
class Foo def Foo.bar "bar" end end puts Foo.bar #=> "bar"
You could also use the name of an already existing class to define a static/class method on it, for example, like so:
class Foo # ... end def Foo.bar "bar" end puts Foo.baz #=> "bar"
If you need to define multiple static/class methods, then you can define them inside a static block (i.e. within "class << self
"), for example, like so:
class Foo class << self def bar "bar" end def baz "baz" end end end puts Foo.bar #=> "bar" puts Foo.baz #=> "baz"
In this way, you don't have to prefix each static/class method with "self
".
This post was published by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.