Sha256: 0b5bf05bfc59965b6d461f1d4029e4a458d04b67856c39435be203e1d59dc4ec

Contents?: true

Size: 1.58 KB

Versions: 4

Compression:

Stored size: 1.58 KB

Contents

module Inch
  module CodeObject
    module Provider
      # Parses the source tree (using YARD)
      module YARD
        # Returns +true+ if the docstring was generated by YARD
        #
        # @param docstring [Docstring,String]
        # @param method [MethodObject]
        def self.implicit_docstring?(docstring, method)
          name = method.name
          if method.getter?
            docstring.to_s == "Returns the value of attribute #{name}"
          elsif method.setter?
            basename = name.to_s.gsub(/(\=)$/, "")
            docstring.to_s == "Sets the attribute #{basename}"
          else
            false
          end
        end

        # Returns +true+ if the tag was generated by YARD
        #
        # @param tag [::YARD::Tag]
        # @param method [MethodObject]
        def self.implicit_tag?(tag, method)
          name = method.name
          if method.getter?
            tag.tag_name == "return" &&
              tag.text == "the current value of #{name}"
          elsif method.setter?
            tag.tag_name == "return" &&
              tag.text == "the newly set value"
          else
            false
          end
        end

        def self.parse(dir, config = Inch::Config.codebase)
          Parser.parse(dir, config)
        end
      end
    end
  end
end

require "logger"
require "yard"

log.level = ::Logger::UNKNOWN # basically disable YARD's logging

require "inch/code_object/provider/yard/parser"
require "inch/code_object/provider/yard/docstring"
require "inch/code_object/provider/yard/nodoc_helper"
require "inch/code_object/provider/yard/object"

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
inch-0.4.10 lib/inch/code_object/provider/yard.rb
inch-0.4.9 lib/inch/code_object/provider/yard.rb
inch-0.4.8 lib/inch/code_object/provider/yard.rb
inch-0.4.7 lib/inch/code_object/provider/yard.rb