Class: AwesomeSpawn::CommandLineBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/awesome_spawn/command_line_builder.rb

Instance Method Summary collapse

Instance Method Details

#build(command, params = nil) ⇒ String

Build the full command line.

Parameters:

  • command (String)

    The command to run

  • params (Hash, Array) (defaults to: nil)

    Optional command line parameters. They can be passed as a Hash or associative Array. The values are sanitized to prevent command line injection. Keys as Symbols are prefixed with --, and _ is replaced with -.

    • {:k => "value"} generates -k value
    • [[:k, "value"]] generates -k value
    • {:k => "value"} generates -k=value
    • [[:k=, "value"]] generates -k=value

    • {:key => "value"} generates --key value

    • [[:key, "value"]] generates --key value

    • {:key= => "value"} generates --key=value

    • [[:key=, "value"]] generates --key=value

    • {"--key" => "value"} generates --key value

    • [["--key", "value"]] generates --key value

    • {"--key=" => "value"} generates --key=value

    • [["--key=", "value"]] generates --key=value

    • {:key_name => "value"} generates --key-name value

    • [[:key_name, "value"]] generates --key-name value

    • {:key_name= => "value"} generates --key-name=value

    • [[:key_name=, "value"]] generates --key-name=value

    • {"-f" => ["file1", "file2"]} generates -f file1 file2

    • [["-f", "file1", "file2"]] generates -f file1 file2

    • {:key => nil} generates --key

    • [[:key, nil]] generates --key

    • [[:key]] generates --key

    • {nil => ["file1", "file2"]} generates file1 file2

    • [[nil, ["file1", "file2"]]] generates file1 file2

    • [[nil, "file1", "file2"]] generates file1 file2

    • [["file1", "file2"]] generates file1 file2

Returns:

  • (String)

    The full command line



46
47
48
49
# File 'lib/awesome_spawn/command_line_builder.rb', line 46

def build(command, params = nil)
  params = assemble_params(sanitize(params))
  params.empty? ? command.to_s : "#{command} #{params}"
end