Sha256: eef946e9d2d4331d1ddc06a318f52470d976c780c446bf1342e0cf63f37b4f01
Contents?: true
Size: 714 Bytes
Versions: 20
Compression:
Stored size: 714 Bytes
Contents
module Elastic::Support module Command def self.new(*_attributes) attr_names = [] attr_defaults = {} _attributes.each do |att| if att.is_a? Hash attr_defaults.merge! att attr_names += att.keys else attr_names << att end end Struct.new(*attr_names) do def self.for(kwargs = {}) new(kwargs).perform end def perform end define_method(:initialize) do |kwargs = {}| kwargs = attr_defaults.merge kwargs attr_values = attr_names.map { |a| kwargs[a] } super(*attr_values) end define_method(:perform) {} end end end end
Version data entries
20 entries across 20 versions & 1 rubygems