Module: Datadog::CI::Utils::SourceCode
- Defined in:
- lib/datadog/ci/utils/source_code.rb,
ext/datadog_ci_native/datadog_source_code.c
Class Method Summary collapse
Class Method Details
._native_last_line_from_iseq(iseqw) ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'ext/datadog_ci_native/datadog_source_code.c', line 11 static VALUE last_line_from_iseq(VALUE self, VALUE iseqw) { const rb_iseq_t *iseq = rb_iseqw_to_iseq(iseqw); int line; rb_iseq_code_location(iseq, NULL, NULL, &line, NULL); return INT2NUM(line); } |
.last_line(target) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/datadog/ci/utils/source_code.rb', line 15 def self.last_line(target) return nil if target.nil? return nil unless LAST_LINE_AVAILABLE # Ruby has outdated RBS for RubyVM::InstructionSequence where method `of` is not defined # steep:ignore:start iseq = RubyVM::InstructionSequence.of(target) return nil unless iseq.is_a?(RubyVM::InstructionSequence) # steep:ignore:end # this function is implemented in ext/datadog_ci_native/datadog_source_code.c _native_last_line_from_iseq(iseq) end |