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