class Cloned::Strategy

Public Class Methods

cloners_map() click to toggle source
# File lib/cloned/strategy.rb, line 3
def cloners_map
  @cloners_map ||= {}
end
declare(cloner_id, options = {}, &block) click to toggle source
# File lib/cloned/strategy.rb, line 7
def declare(cloner_id, options = {}, &block)
  cloner_name = options[:class_name] || cloner_id.to_s.camelcase
  cloner = Class.new(Cloned::Base, &block)
  cloner.strategy = self
  cloners_map[cloner_name] = cloner
end
find_copier(klass) click to toggle source
# File lib/cloned/strategy.rb, line 14
def find_copier(klass)
  cloners_map[klass.name] || Cloned::Base
end
make(target:, destination: nil, **options) click to toggle source
# File lib/cloned/strategy.rb, line 18
def make(target:, destination: nil, **options)
  find_copier(target.class).new(target: target, destination: destination, **options).make
end