module Fend::Plugins::Core::ClassMethods
Attributes
opts[R]
validation_block[R]
Public Instance Methods
call(input)
click to toggle source
# File lib/fend.rb, line 96 def call(input) new.call(input) end
deprecation(message)
click to toggle source
Prints a deprecation warning to standard error.
# File lib/fend.rb, line 101 def deprecation(message) warn "FEND DEPRECATION WARNING: #{message}" end
inherited(subclass)
click to toggle source
# File lib/fend.rb, line 50 def inherited(subclass) subclass.instance_variable_set(:@opts, opts.dup) subclass.opts.each do |key, value| if (value.is_a?(Array) || value.is_a?(Hash)) && !value.frozen? subclass.opts[key] = value.dup end end param_class = Class.new(self::Param) param_class.fend_class = subclass subclass.const_set(:Param, param_class) result_class = Class.new(self::Result) result_class.fend_class = subclass subclass.const_set(:Result, result_class) end
plugin(plugin, *args, &block)
click to toggle source
# File lib/fend.rb, line 67 def plugin(plugin, *args, &block) plugin = Plugins.load_plugin(plugin) if plugin.is_a?(Symbol) plugin.load_dependencies(self, *args, &block) if plugin.respond_to?(:load_dependencies) include(plugin::InstanceMethods) if defined?(plugin::InstanceMethods) extend(plugin::ClassMethods) if defined?(plugin::ClassMethods) self::Param.send(:include, plugin::ParamMethods) if defined?(plugin::ParamMethods) self::Param.extend(plugin::ParamClassMethods) if defined?(plugin::ParamClassMethods) self::Result.send(:include, plugin::ResultMethods) if defined?(plugin::ResultMethods) self::Result.extend(plugin::ResultClassMethods) if defined?(plugin::ResultClassMethods) plugin.configure(self, *args, &block) if plugin.respond_to?(:configure) plugin end
validate(&block)
click to toggle source
Store validation block for later execution:
validate do |i| i.params(:foo) do |foo| # foo validation logic end end
# File lib/fend.rb, line 92 def validate(&block) @validation_block = block end