Sha256: 7c2af81e0aef504198c26722ecc84dadf3b62f406cbd92732b2f331d59e1aab3

Contents?: true

Size: 1.84 KB

Versions: 2

Compression:

Stored size: 1.84 KB

Contents

# = TITLE:
#
#   Options DSL
#
# = COPYING:
#
#   Copyright (c) 2007 Psi T Corp.
#
#   This file is part of the ProUtils' Ratch program.
#
#   Ratch is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   Ratch is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with Ratch.  If not, see <http://www.gnu.org/licenses/>.

module Ratch
module Dsl

  # Options. There are derived from ARGV.

  module Options

    # Duplicate of ARGV.

    def argv
      @argv ||= ARGV.dup
    end

    # Convert command line argv to args.
    #
    # TODO Is this implmented as expected?

    def command_parameters
      argv.to_params
    end

    # Debug mode.

    def debug?
      @debug ||= %w{--debug}.any?{|a| argv.delete(a)}
    end

    #

    def verbose?
      @verbose ||= %w{--verbose}.any?{|a| argv.delete(a)}
    end

    #

    def verbose!
      @verbose = true
    end

    #

    def trace?
      @trace ||= %w{--trace}.any?{|a| argv.delete(a)}
    end

    #

    def trace!
      @trace = true
    end

    #

    def noharm?
      @noharm ||= %w{--dryrun --dry-run --noharm}.any?{|a| argv.delete(a)}
    end
    alias_method :dryrun?, :noharm? ; module_function :dryrun?

    def noharm!
      @noharm = true
    end
    alias_method :dryrun!, :noharm! ; module_function :dryrun!

    # Force mode.

    def force?
      @force ||= %w{--force}.any?{|a| argv.delete(a)}
    end

    def force! ; @force = true ; end

  end

end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ratch-0.4.0 lib/ratch/dsl/options.rb
ratch-0.4.1 lib/ratch/dsl/options.rb