Skip to content

Files

Latest commit

 

History

History
79 lines (60 loc) · 1.18 KB

Style-ClassMethodsDefinitions.md

File metadata and controls

79 lines (60 loc) · 1.18 KB

Pattern: Malformed class method definition

Issue: -

Description

This rule enforces using def self.method_name or class << self to define class methods.

Examples

EnforcedStyle: def_self (default)

# bad
class SomeClass
  class << self
    attr_accessor :class_accessor

    def class_method
      # ...
    end
  end
end

# good
class SomeClass
  def self.class_method
    # ...
  end

  class << self
    attr_accessor :class_accessor
  end
end

# good - contains private method
class SomeClass
  class << self
    attr_accessor :class_accessor

    private

    def private_class_method
      # ...
    end
  end
end

EnforcedStyle: self_class

# bad
class SomeClass
  def self.class_method
    # ...
  end
end

# good
class SomeClass
  class << self
    def class_method
      # ...
    end
  end
end

Configurable attributes

Name Default value Configurable values
EnforcedStyle def_self def_self, self_class

Further Reading