Project

General

Profile

Actions

Feature #18047

open

TracePoint: Add event type for constant access

Added by suusan2go (Kenta Suzuki) 3 months ago. Updated 3 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:104689]

Description

Hi there
We've made a PR to add new :constant_access TracePoint event. https://github.com/ruby/ruby/pull/4683
Burke Libbey made some first steps on this idea a few years ago #13133 and we improved his patch based on the comment by ko1.

As mentioned in the issue above, this patch allows us to enable boundaries between packages/components.
Burke's proof-of-concept gem might help you understand more concrete usage of this patch.

The proof-of-concept gem works like the below and this will help us manage large codebases with lots of dependencies.

package 'product'
class Book < ApplicationRecord
  belongs_to :user
end

package 'user'
class User < ApplicationRecord
  has_many :books
end

user = User.first
user.books
# => VisibilityError (can't access Book from User)
Actions

Also available in: Atom PDF