Sha256: e570018aa522fdd39ff2139b224c58ec91d62c2e518e67d07a6272155d05f2c7
Contents?: true
Size: 1.23 KB
Versions: 33
Compression:
Stored size: 1.23 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 ::EacCli::Runner::ForContext include ActiveSupport::Callbacks define_callbacks :run end end end
Version data entries
33 entries across 33 versions & 2 rubygems