module Shiftable::Collection::ShiftCollectionModulizer

Creates anonymous Ruby Modules, containing dynamically built methods

Public Class Methods

to_mod(signature) click to toggle source
# File lib/shiftable/collection.rb, line 69
def to_mod(signature)
  prefix = signature.method_prefix
  type = signature.type
  Module.new do
    define_method(:"#{prefix}shift_#{type}_column") do
      signature.send("shift_#{type}_column")
    end
    define_method(:"#{prefix}shift_#{type}") do |shift_to:, shift_from:, bang: false|
      signature.shift_data!(shift_to: shift_to, shift_from: shift_from, bang: bang)
    end
  end
end

Private Instance Methods

to_mod(signature) click to toggle source
# File lib/shiftable/collection.rb, line 69
def to_mod(signature)
  prefix = signature.method_prefix
  type = signature.type
  Module.new do
    define_method(:"#{prefix}shift_#{type}_column") do
      signature.send("shift_#{type}_column")
    end
    define_method(:"#{prefix}shift_#{type}") do |shift_to:, shift_from:, bang: false|
      signature.shift_data!(shift_to: shift_to, shift_from: shift_from, bang: bang)
    end
  end
end