class Burner::Library::Collection::Values
Take an array of objects and call values
on each object. If include_keys
is true (it is false by default), then call keys
on the first object and inject that as a “header” object.
Expected Payload input: array of objects. Payload output: An array of arrays.
Attributes
include_keys[R]
Public Class Methods
new(include_keys: false, name: '', register: DEFAULT_REGISTER)
click to toggle source
Calls superclass method
Burner::JobWithRegister::new
# File lib/burner/library/collection/values.rb, line 22 def initialize(include_keys: false, name: '', register: DEFAULT_REGISTER) super(name: name, register: register) @include_keys = include_keys || false freeze end
Public Instance Methods
perform(_output, payload)
click to toggle source
# File lib/burner/library/collection/values.rb, line 30 def perform(_output, payload) payload[register] = array(payload[register]) keys = include_keys ? [keys(payload[register].first)] : [] values = payload[register].map { |object| values(object) } payload[register] = keys + values end
Private Instance Methods
keys(object)
click to toggle source
# File lib/burner/library/collection/values.rb, line 39 def keys(object) object.respond_to?(:keys) ? object.keys : [] end
values(object)
click to toggle source
# File lib/burner/library/collection/values.rb, line 43 def values(object) object.respond_to?(:values) ? object.values : [] end