module PackRb::SubCommands::Build

Public Instance Methods

build(opts) click to toggle source
# File lib/pack_rb/sub_commands/build.rb, line 5
def build(opts)
  base_cmd = opts[:base_cmd]
  args     = opts[:args]
  tpl      = opts[:tpl]

  cmd_arr = [ base_cmd, 'build' ]
  cmd_arr << parse_options(args) if args

  execute(cmd: cmd_arr.join(' '), tpl: tpl)
end
parse_options(opts) click to toggle source
# File lib/pack_rb/sub_commands/build.rb, line 16
def parse_options(opts)
  transformed_opts = opts.inject([]) do |arr, kv|
    key = kv.first
    val = kv.last

    raise Error::UnsupportedOption unless supported?(key)

    arr << transform(key).call(key.to_s, val)
  end

  transformed_opts.join(' ')
end

Private Instance Methods

array_type() click to toggle source
# File lib/pack_rb/sub_commands/build.rb, line 48
def array_type
  Proc.new { |opt, val| "-#{opt}=#{val.join(',')}" }
end
boolean_type() click to toggle source
# File lib/pack_rb/sub_commands/build.rb, line 52
def boolean_type
  Proc.new { |opt, val| "-#{opt}=#{val}" }
end
flag_type() click to toggle source
# File lib/pack_rb/sub_commands/build.rb, line 56
def flag_type
  Proc.new { |opt, val| val ? "-#{opt}" : '' }
end
supported?(opt) click to toggle source
# File lib/pack_rb/sub_commands/build.rb, line 44
def supported?(opt)
  transformation_strategy.keys.include?(opt)
end
transform(opt) click to toggle source
# File lib/pack_rb/sub_commands/build.rb, line 40
def transform(opt)
  transformation_strategy[opt]
end
transformation_strategy() click to toggle source
# File lib/pack_rb/sub_commands/build.rb, line 30
def transformation_strategy
  {
    except: array_type,
    only: array_type,
    color: boolean_type,
    force: flag_type,
    debug: flag_type
  }
end