Sha256: e96d51bc9589fa4e31467412b9c7a1edda3ca2912036632e78a50e0990f73d9e

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

require 'command_kit/options'

module CommandKit
  module Options
    #
    # Defines a `-v`,`--verbose` option.
    #
    # ## Examples
    #
    #     include Options::Verbose
    #
    #     def main(*argv)
    #       # ...
    #       puts "verbose output" if verbose?
    #       # ...
    #     end
    #
    module Verbose
      include Options

      module ModuleMethods
        #
        # Defines a `-v, --verbose` option or extends {ModuleMethods}, depending
        # on whether {Options::Verbose} is being included into a class or a
        # module.
        #
        # @param [Class, Module] context
        #   The class or module including {Verbose}.
        #
        def included(context)
          super(context)

          if context.class == Module
            context.extend ModuleMethods
          else
            context.option :verbose, short: '-v', desc: 'Enables verbose output' do
              @verbose = true
            end
          end
        end
      end

      extend ModuleMethods

      #
      # Determines if verbose mode is enabled.
      #
      # @return [Boolean]
      #
      def verbose?
        @verbose
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
command_kit-0.1.0.rc1 lib/command_kit/options/verbose.rb
command_kit-0.1.0.pre2 lib/command_kit/options/verbose.rb
command_kit-0.1.0.pre1 lib/command_kit/options/verbose.rb