module RailsBestPractices::Core::Check::Accessable

Helper to parse the access control.

Public Class Methods

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

    # remember the current access control for methods.
    add_callback :start_var_ref do |node|
      if %w[public protected private].include? node.to_s
        @access_control = node.to_s
      end
    end

    # remember the current access control for methods.
    add_callback :start_vcall do |node|
      if %w[public protected private].include? node.to_s
        @access_control = node.to_s
      end
    end

    # set access control to "public" by default.
    add_callback :start_class do |_node|
      @access_control = 'public'
    end

    # set access control to "public" by default.
    add_callback :start_module do |_node|
      @access_control = 'public'
    end
  end

  # get the current acces control.
  def current_access_control
    @access_control
  end
end

Public Instance Methods

current_access_control() click to toggle source

get the current acces control.

# File lib/rails_best_practices/core/check.rb, line 426
def current_access_control
  @access_control
end