Module: Multicolor::Util

Defined in:
lib/multicolor/util.rb

Class Method Summary collapse

Class Method Details

.build_colors(params) ⇒ Object



17
18
19
# File 'lib/multicolor/util.rb', line 17

def build_colors(params)
  payload_builder(flatten_colors(params))
end

.filepaths(filename) ⇒ Object



10
11
12
13
14
15
# 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) ⇒ Object



21
22
23
# 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) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
# 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) ⇒ Object



4
5
6
7
8
# 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) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# 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