Sha256: 7289d4d9b3c771b8958042b1c1e44f1cd21f4c8c1168187ed479f61c883d5c77

Contents?: true

Size: 818 Bytes

Versions: 8

Compression:

Stored size: 818 Bytes

Contents

# frozen_string_literal: true
class YARD::Handlers::C::ClassHandler < YARD::Handlers::C::Base
  MATCH1 = /([\w\.]+)\s* = \s*(?:rb_define_class|boot_defclass)\s*
            \(
               \s*"([\w:]+)",
               \s*(\w+|0)\s*
            \)/mx

  MATCH2 = /([\w\.]+)\s* = \s*rb_define_class_under\s*
            \(
               \s*(\w+),
               \s*"(\w+)"(?:,
               \s*([\w\*\s\(\)\.\->]+)\s*)?  # for SWIG
            \s*\)/mx
  handles MATCH1
  handles MATCH2
  statement_class BodyStatement

  process do
    statement.source.scan(MATCH1) do |var_name, class_name, parent|
      handle_class(var_name, class_name, parent)
    end
    statement.source.scan(MATCH2) do |var_name, in_module, class_name, parent|
      handle_class(var_name, class_name, parent, in_module)
    end
  end
end

Version data entries

8 entries across 7 versions & 4 rubygems

Version Path
yard-0.9.9 lib/yard/handlers/c/class_handler.rb
etude_for_ruby-0.1.4 vendor/bundle/ruby/2.4.0/gems/yard-0.9.8/lib/yard/handlers/c/class_handler.rb
etude_for_ruby-0.1.4 vendor/bundle/ruby/2.2.0/gems/yard-0.9.8/lib/yard/handlers/c/class_handler.rb
mdg-1.0.1 vendor/bundle/ruby/2.3.0/gems/yard-0.9.8/lib/yard/handlers/c/class_handler.rb
yard-0.9.8 lib/yard/handlers/c/class_handler.rb
abaci-0.3.0 vendor/bundle/gems/yard-0.9.7/lib/yard/handlers/c/class_handler.rb
yard-0.9.7 lib/yard/handlers/c/class_handler.rb
yard-0.9.6 lib/yard/handlers/c/class_handler.rb