module Multicolor::Util

Public Class Methods

build_colors(params) click to toggle source
# File lib/multicolor/util.rb, line 17
def build_colors(params)
  payload_builder(flatten_colors(params))
end
filepaths(filename) click to toggle source
# File lib/multicolor/util.rb, line 10
def filepaths(filename)
  Array.wrap(filename).inject({}) do |data, item|
    data["filepaths[#{data.keys.count}]"] = item
    data
  end
end
flatten_colors(params) click to toggle source
# File lib/multicolor/util.rb, line 21
def flatten_colors(params)
  params.is_a?(Hash) ? params.values : params
end
modify_options_for_keys(options, keys) click to toggle source
# File lib/multicolor/util.rb, line 38
def modify_options_for_keys(options, keys)
  options.symbolize_keys!
  subset = options.slice(*keys)
  subset.each do |key, value|
    data = {}
    Array.wrap(value).each do |val|
      data["#{key.to_s.pluralize}[#{data.keys.length}]"] = val
    end
    options.merge!(data)
  end

  keys.each{ |key| options.delete(key) }
  options
end
param_builder(params) click to toggle source
# File lib/multicolor/util.rb, line 4
def param_builder(params)
  new_params = {}
  new_params.merge!(filepaths(params[:filepaths]))
  new_params
end
payload_builder(payload) click to toggle source
# File lib/multicolor/util.rb, line 25
def payload_builder(payload)
  processed = 0
  data = {}
  (payload || {}).each do |entry|
    entry.keys.each do |key|
      value = entry[key]
      data["#{key.to_s.pluralize}[#{processed}]"] = value.is_a?(Hash) ? value.to_json : value
    end
    processed += 1
  end
  data
end