Sha256: 34a060fa5be20151715329a5c97fd5988e9aeaec513a087e5da31da7993e1b73
Contents?: true
Size: 972 Bytes
Versions: 4
Compression:
Stored size: 972 Bytes
Contents
module UseCaseValidations module Target def self.included(base) base.extend(ClassMethods) end def parent_target_name self.class.options.key?(:in) ? self.class.options[:in] : nil end def target send(self.class.target_name) end def parent_target parent_target_name ? send(parent_target_name) : nil end module ClassMethods def target_name Helpers._get_instance_variable(self, :target_name, nil) end def options Helpers._get_instance_variable(self, :options, {}) end def target(target_name, options = {}) @target_name, @options = target_name, options if options.key?(:in) define_method(options[:in]) { context.send(options[:in]) } define_method(target_name) { send(options[:in]).send(target_name) } else define_method(target_name) { context.send(target_name) } end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems