Hi!

Sometimes a class provides object instantiation methods other than new.
See an example.

class Color
    def initialize r, g, b
        @r = r
        @g = g
        @b = b
    end

    def to_s
        "R: #{@r}, G: #{@g}, B: #{@b}"
    end

    class << self
        def red
            new 255, 0, 0
        end

        def blue
            new 0, 0, 255
        end

        def green
            new 0, 255, 0
        end
    end
end

puts Color.new(100, 120, 140)
puts Color.red
puts Color.blue


Is this one of design patterns, or just a simple idiom?
It's similar to a factory method pattern but it's not according to the
definition.
Is there any name for it?

TIA.

Sam