Sha256: 151d7cfb344457b4f20953f0638d2b6ae3f1ae69390ad77166c5c3492e36be07
Contents?: true
Size: 1.19 KB
Versions: 168
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true require 'eac_cli/definition' require 'eac_cli/parser' require 'eac_ruby_utils/core_ext' module EacCli module Runner require_sub __FILE__ extend ::ActiveSupport::Concern class << self def alias_runner_class_methods(klass, from_suffix, to_suffix) %i[create run].each do |method| alias_class_method(klass, build_method_name(method, from_suffix), build_method_name(method, to_suffix)) end end def runner?(object) object.is_a?(::Class) && object.included_modules.include?(::EacCli::Runner) end private def alias_class_method(klass, from, to) sklass = klass.singleton_class return unless sklass.method_defined?(from) sklass.send(:alias_method, to, from) end def build_method_name(name, suffix) ss = suffix.if_present('') { |s| "#{s}_" } "#{ss}#{name}" end end the_module = self included do the_module.alias_runner_class_methods(self, '', 'original') extend AfterClassMethods include InstanceMethods include ActiveSupport::Callbacks define_callbacks :run end end end
Version data entries
168 entries across 168 versions & 4 rubygems