module RailsBestPractices::Core::Check::Classable

Helper to parse the class name.

Public Class Methods

included(base) click to toggle source
# File lib/rails_best_practices/core/check.rb, line 117
def self.included(base)
  base.class_eval do
    interesting_nodes :module, :class

    # remember module name
    add_callback :start_module do |node|
      classable_modules << node.module_name.to_s
    end

    # end of the module.
    add_callback :end_module do |_node|
      classable_modules.pop
    end

    # remember the class name
    add_callback :start_class do |node|
      base_class_name = node.base_class.is_a?(CodeAnalyzer::Nil) ? nil : node.base_class.to_s
      @klass = Core::Klass.new(node.class_name.to_s, base_class_name, classable_modules)
      klasses << @klass
    end

    # end of the class
    add_callback :end_class do |_node|
      klasses.pop
      @klass = nil
    end
  end
end

Public Instance Methods

classable_modules() click to toggle source

modules.

# File lib/rails_best_practices/core/check.rb, line 157
def classable_modules
  @class_modules ||= []
end
current_class_name() click to toggle source

get the current class name.

# File lib/rails_best_practices/core/check.rb, line 147
def current_class_name
  @klass.to_s
end
current_extend_class_name() click to toggle source

get the current extend class name.

# File lib/rails_best_practices/core/check.rb, line 152
def current_extend_class_name
  @klass.extend_class_name
end
klasses() click to toggle source
# File lib/rails_best_practices/core/check.rb, line 161
def klasses
  @klasses ||= []
end