Sha256: 82ecc4ec255f6542ba32acc12a82d3dd7156481c1bc4f60ad46d435157c987cf

Contents?: true

Size: 1.5 KB

Versions: 6

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

6 entries across 6 versions & 1 rubygems

Version Path
inch-0.5.0.rc11 lib/inch/cli/yardopts_helper.rb
inch-0.5.0.rc10 lib/inch/cli/yardopts_helper.rb
inch-0.5.0.rc9 lib/inch/cli/yardopts_helper.rb
inch-0.5.0.rc8 lib/inch/cli/yardopts_helper.rb
inch-0.5.0.rc7 lib/inch/cli/yardopts_helper.rb
inch-0.5.0.rc6 lib/inch/cli/yardopts_helper.rb