Sha256: e382f75205a0c6d8e0d1a7a319765015c0ba3cd9643a2271d41fa3e84a29d87c

Contents?: true

Size: 814 Bytes

Versions: 3

Compression:

Stored size: 814 Bytes

Contents

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

3 entries across 3 versions & 1 rubygems

Version Path
deg-yard-0.8.7.4 lib/yard/handlers/c/class_handler.rb
deg-yard-0.8.7.3 lib/yard/handlers/c/class_handler.rb
deg-yard-0.8.7.1 lib/yard/handlers/c/class_handler.rb