module Vega::MethodHelpers

Private Instance Methods

array_methods(*methods) click to toggle source
# File lib/vega/method_helpers.rb, line 25
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
hash_methods(*methods) click to toggle source
# File lib/vega/method_helpers.rb, line 15
def hash_methods(*methods)
  methods.each do |method|
    define_method("#{method}!") do |value|
      (@spec[method] ||= {}).merge!(value)
      self
    end
    immutable_method(method)
  end
end
immutable_method(method) click to toggle source
# File lib/vega/method_helpers.rb, line 36
def immutable_method(method)
  define_method(method) do |value|
    dup.send("#{method}!", value)
  end
end
scalar_methods(*methods) click to toggle source
# File lib/vega/method_helpers.rb, line 5
def scalar_methods(*methods)
  methods.each do |method|
    define_method("#{method}!") do |value|
      @spec[method] = value
      self
    end
    immutable_method(method)
  end
end