Sha256: 8d152915bc30e8d20e424253a8805a844f84b57ec13c1a89892e317937dfb8a0
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true require "active_function_core" require "active_function/version" require "active_function/base" RubyNext::Language.setup_gem_load_path(transpile: true) module ActiveFunction class << self # Configure ActiveFunction. # # @param block [Proc] # @return [void] def config(&block) class_eval(&block) @_plugins.freeze self::Base.freeze end def plugins ; @_plugins ||= {}; end # Register plugin. # # @param symbol [Symbol] # @param mod [Module] def register_plugin(symbol, mod) plugins[symbol] = mod end # Monkey patch ActiveFunction::Base with provided plugin. # # @param mod [Symbol, Module] # @return [void] def plugin(mod) if mod.is_a? Symbol begin require "active_function/functions/#{mod}" mod = plugins.fetch(mod) rescue LoadError raise ArgumentError, "Unknown plugin #{mod}" end end self::Base.include(mod) end end plugin :response end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activefunction-0.4.0 | lib/.rbnext/3.0/active_function.rb |