Sha256: 2b3117dddb12a30c5959c832800702070b652aad27819933ffe3cc3160e8658d
Contents?: true
Size: 1.38 KB
Versions: 2
Compression:
Stored size: 1.38 KB
Contents
require 'pathname' module Airake #:nodoc: module Commands #:nodoc: # Base command class Base # Process command options array def process(command) command.compact.join(" ") end # Escape any spacing def escape(command) if windows? if command =~ /\S+\s+\S+/ then command = "\"#{command}\"" end else command = command.to_s.gsub(" ", "\\ ") end command end # Get relative path def relative_path(path, from) Pathname.new(path).relative_path_from(Pathname.new(from)) end def windows? RUBY_PLATFORM =~ /win32/ end def with_options(options, defaults = {}) options.each do |key, value| raise "Invalid option: '#{key}' for command: #{self.class}" unless respond_to?(key.to_sym) instance_variable_set("@#{key}", value) end defaults.each do |key, value| existing = instance_variable_get("@#{key}") instance_variable_set("@#{key}", value) unless existing end end def assert_required(vars) vars.each do |var| raise ArgumentError, "Must specify option: #{var}" if instance_variable_get("@#{var}").nil? end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
airake-0.2.11 | lib/airake/commands/base.rb |
airake-0.2.12 | lib/airake/commands/base.rb |