Method: Fluent::Config.array_value

Defined in:
lib/fluent/config/types.rb

.array_value(val, opts = {}, name = nil) ⇒ Object



227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
# File 'lib/fluent/config/types.rb', line 227

def self.array_value(val, opts = {}, name = nil)
  return nil if val.nil?

  param = if val.is_a?(String)
            val.start_with?('[') ? JSON.parse(val) : val.strip.split(/\s*,\s*/)
          else
            val
          end
  if param.class != Array
    raise ConfigError, "array required but got #{val.inspect}"
  end
  if opts[:value_type]
    param.map{|v| REFORMAT_VALUE.call(opts[:value_type], v, opts, nil) }
  else
    param
  end
end