sentry-ruby icon indicating copy to clipboard operation
sentry-ruby copied to clipboard

Make transaction required in Span constructor

Open sl0thentr0py opened this issue 2 years ago • 0 comments

Not directly related to this change, but I think conceptually a Span should always have a transaction? Because a Transaction always has itself as the transaction, and it'll pass down to all Span that are created by it and their descendants.

If that's the case, do you think we should mark transaction as a required constructor param? Like

class Span
  def initialize(transaction:, ...)
   end
end

class Transaction < Span
  def initialize(transaction: nil, ...)
    @transaction = self # ignore the passed argument
  end
end

And then we can change attr_accessor :transaction to attr_reader + being sure the transaction will never be nil in such occasions.

Originally posted by @st0012 in https://github.com/getsentry/sentry-ruby/pull/1869#discussion_r970521483

sl0thentr0py avatar Sep 14 '22 09:09 sl0thentr0py