Sha256: 4a793982fb1d211ce7e3963a3c37fcb376681b9a72586810daa43027eb81334b

Contents?: true

Size: 1.5 KB

Versions: 28

Compression:

Stored size: 1.5 KB

Contents

module Inch
  module CLI
    module YardoptsHelper
      # @return [Array<String>] list of Ruby source files to process
      attr_accessor :yard_files

      # @return [Array<String>] list of excluded paths (regexp matches)
      attr_accessor :excluded

      VALID_YARD_SWITCHES = %w(--private --no-private --protected --no-public
                               --plugin --load --safe --yardopts --no-yardopts
                               --document --no-document)

      # Parses the option and gracefully handles invalid switches
      #
      # @param [OptionParser] opts the option parser object
      # @param [Array<String>] args the arguments passed from input. This
      #   array will be modified.
      # @return [void]
      def parse_yardopts_options(_opts, args)
        wrapper = YardoptsWrapper.new

        dupped_args = args.dup
        dupped_args.delete('--help')
        dupped_args.delete_if do |arg|
          arg =~ /^\-/ && !VALID_YARD_SWITCHES.include?(arg)
        end

        if ui
          ui.debug "Sending args to YARD:\n" \
              "  args: #{dupped_args}"
        end

        wrapper.parse_arguments(*dupped_args)

        self.yard_files = wrapper.files
        self.excluded = wrapper.excluded
      end

      def yardopts_options(opts)
        wrapper = YardoptsWrapper.new
        wrapper.add_yardoc_options(opts)
      end

      class YardoptsWrapper < YARD::CLI::Yardoc
        def add_yardoc_options(opts)
          yardopts_options(opts)
        end
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
inch-0.9.0.rc1 lib/inch/cli/yardopts_helper.rb
inch-0.8.0 lib/inch/cli/yardopts_helper.rb
inch-0.8.0.rc2 lib/inch/cli/yardopts_helper.rb
inch-0.8.0.rc1 lib/inch/cli/yardopts_helper.rb
inch-0.7.1 lib/inch/cli/yardopts_helper.rb
inch-0.7.0 lib/inch/cli/yardopts_helper.rb
inch-0.6.4 lib/inch/cli/yardopts_helper.rb
inch-0.6.3 lib/inch/cli/yardopts_helper.rb
inch-0.6.2 lib/inch/cli/yardopts_helper.rb
inch-0.6.1 lib/inch/cli/yardopts_helper.rb
inch-0.6.0 lib/inch/cli/yardopts_helper.rb
inch-0.6.0.rc6 lib/inch/cli/yardopts_helper.rb
inch-0.6.0.rc5 lib/inch/cli/yardopts_helper.rb
inch-0.6.0.rc4 lib/inch/cli/yardopts_helper.rb
inch-0.6.0.rc3 lib/inch/cli/yardopts_helper.rb
inch-0.6.0.rc2 lib/inch/cli/yardopts_helper.rb
inch-0.6.0.rc1 lib/inch/cli/yardopts_helper.rb
inch-0.5.10 lib/inch/cli/yardopts_helper.rb
inch-0.5.9 lib/inch/cli/yardopts_helper.rb
inch-0.5.8 lib/inch/cli/yardopts_helper.rb