Sha256: ed8484f3f8e1b85a3d6eca22dc29b85de32d464a543f79b963f3197661dde05d

Contents?: true

Size: 1.18 KB

Versions: 9

Compression:

Stored size: 1.18 KB

Contents

module Inch
  module CodeObject
    # Provider modules "provide" a Codebase object with code objects.
    # They are the intermediary between the raw representation that tools
    # like YARD deliver and the "interface" that Inch expects.
    #
    # YARD Example:
    #
    # YARD's SourceParser returns ::YARD::CodeObject objects, which are
    # cast to Provider::YARD::Object::Base objects that can ensure naming
    # conventions et al. follow certain rules. These objects are then again
    # converted into CodeObject::Proxy::Base objects that form the codebase:
    #
    #                        ::YARD::CodeObject
    #                               ↓
    #           ::Inch::CodeObject::Provider::YARD::Object::Base
    #                               ↓
    #                             (Hash)
    #                               ↓
    #                   ::Inch::CodeObject::Proxy::Base
    #
    #
    module Provider
      def self.parse(dir, paths, excluded, type = :YARD)
        provider_for(type).parse(dir, paths, excluded)
      end

      # @return [Module]
      def self.provider_for(type)
        const_get(type)
      end
    end
  end
end

require_relative 'provider/yard'

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
inch-0.3.1 lib/inch/code_object/provider.rb
inch-0.3.1.rc6 lib/inch/code_object/provider.rb
inch-0.3.1.rc5 lib/inch/code_object/provider.rb
inch-0.3.1.rc4 lib/inch/code_object/provider.rb
inch-0.3.1.rc3 lib/inch/code_object/provider.rb
inch-0.3.1.rc2 lib/inch/code_object/provider.rb
inch-0.3.1.rc1 lib/inch/code_object/provider.rb
inch-0.3.0 lib/inch/code_object/provider.rb
inch-0.3.0.rc3 lib/inch/code_object/provider.rb