Sha256: 34756860ecf8b21673776ef57c0bf6641ab89115a1a5680f100bf763eea78de1
Contents?: true
Size: 930 Bytes
Versions: 11
Compression:
Stored size: 930 Bytes
Contents
module Vega module MethodHelpers private def scalar_methods(*methods) methods.each do |method| define_method("#{method}!") do |value| @spec[method] = value self end immutable_method(method) end end def hash_methods(*methods) methods.each do |method| define_method("#{method}!") do |value| (@spec[method] ||= {}).merge!(value) self end immutable_method(method) end end def array_methods(*methods) methods.each do |method| define_method("#{method}!") do |value| value = [value] unless value.is_a?(Array) (@spec[method] ||= []).push(*value) self end immutable_method(method) end end def immutable_method(method) define_method(method) do |value| dup.send("#{method}!", value) end end end end
Version data entries
11 entries across 11 versions & 1 rubygems