Sha256: bc5ffddb5f713ac7d039085b94ac2ae0afc68d9614a593980280df5645dc2cb8

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

module YARD
  module DM
    module Legacy
      class HasHandler < YARD::Handlers::Ruby::Legacy::Base

        handles /\Ahas\s+([1-9]\d*|n|(0|1)\.\.n),\s/

          def process
            nobj = namespace
            mscope = scope
            name = statement.tokens[2..-1].to_s[/:[^,]+/][1..-1]

            register MethodObject.new(nobj, name, :class) do |o|
              o.visibility = :public
              o.source = statement.source
              o.signature = "def self.#{name}"
              o.parameters = [['repository', 'nil']]
            end

            register MethodObject.new(nobj, name, mscope) do |o|
              o.visibility = :public
              o.source = statement.source
              o.signature = "def #{name}"
            end

            register MethodObject.new(nobj, "#{name}=", mscope) do |o|
              o.visibility = :public
              o.source = statement.source
              o.signature = "def #{name}="
              o.parameters = [["new_#{name}", nil]]
            end
          end

      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
yard-dm-0.1.1 lib/yard-dm/legacy/has_handler.rb
yard-dm-0.1.0 lib/yard-dm/legacy/has_handler.rb