Sha256: bebafc5467d937017c2fc9aee2197001dc049fad78c2322bba75dce6a71dbbd0

Contents?: true

Size: 1.63 KB

Versions: 1

Compression:

Stored size: 1.63 KB

Contents

# Copyright 2011 NoSoloSoftware

# This file is part of Runnable.
# 
# Runnable 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.
#
# Runnable 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 Runnable.  If not, see <http://www.gnu.org/licenses/>.

require 'runnable/command_parser'

# Parse the parameter hash using the GNU standard.
class Gnu < CommandParser

  # This method convert a hash in a string ready to
  # be passed to a command that uses GNU style to parse command line
  # parameters.
  # @return [String] Gnu-style parsed params in a raw character array.
  def parse
    result = ""

    @params.each do |param, value|      
      # We assume that an one character words is preceed by one
      # lead and two or more characters words are preceed by two 
      # leads
      result << ( param.length == 1 ? "-#{param} " : "--#{param} " )

      # In case the param have parameter we use the correct assignation
      #   -Param followed by value (without whitespace) to one character params
      #   -Param followed by '=' and value to more than one character params
      if( value != nil )
        result << ( param.length == 1 ? "#{value}" : "=#{value}" )
      end
    end

    return result.strip
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
runnable-0.2.1 lib/runnable/gnu.rb