module Lexically

Provides `lexically` method by including this module. Methods defined inside of `lexically`-block have similar visibility to private method, But it's not called fron derived classes.

@example Basic usage

class C
  include Lexically
  using lexically {
    def lexical_method
      :foo
    end
  }
  def public_api
    lexical_method
  end
end

class D < C
  def derived
    lexical_method
  end
end

C.new.public_api     #=> :foo
C.new.lexical_method #=> raises NameError
D.new.lexical_method #=> raises NameError because the D is derived class

Constants

VERSION

Public Class Methods

included(base) click to toggle source
# File lib/lexically.rb, line 31
def self.included(base)
  base.extend(ClassMethods)
end