module Metaractor
Special thanks to the ‘hashie` and `active_attr` gems for code and inspiration.
Constants
- VERSION
Public Class Methods
clear_types!()
click to toggle source
# File lib/metaractor.rb, line 90 def self.clear_types! @types = {} end
configure() { |self| ... }
click to toggle source
# File lib/metaractor.rb, line 32 def self.configure yield self end
default_hash_formatter()
click to toggle source
# File lib/metaractor.rb, line 70 def self.default_hash_formatter ->(hash) { hash.inspect } end
default_modules()
click to toggle source
# File lib/metaractor.rb, line 44 def self.default_modules [ {module: Metaractor::HandleErrors, method: :include}, {module: Metaractor::Parameters, method: :include}, {module: Metaractor::RunWithContext, method: :include}, {module: Metaractor::ChainFailures, method: :include}, {module: Metaractor::Namespace, method: :include} ] end
format_hash(hash)
click to toggle source
# File lib/metaractor.rb, line 62 def self.format_hash(hash) if @hash_formatter.nil? @hash_formatter = default_hash_formatter end @hash_formatter.call(hash) end
hash_formatter()
click to toggle source
# File lib/metaractor.rb, line 74 def self.hash_formatter @hash_formatter end
hash_formatter=(callable)
click to toggle source
# File lib/metaractor.rb, line 78 def self.hash_formatter=(callable) @hash_formatter = callable end
include_module(mod)
click to toggle source
# File lib/metaractor.rb, line 54 def self.include_module(mod) modules << {module: mod, method: :include} end
included(base)
click to toggle source
# File lib/metaractor.rb, line 18 def self.included(base) base.class_eval do include Interactor Metaractor.modules.each do |hsh| case hsh[:method] when :include include hsh[:module] when :prepend prepend hsh[:module] end end end end
modules()
click to toggle source
# File lib/metaractor.rb, line 36 def self.modules @modules ||= default_modules end
modules=(mods)
click to toggle source
# File lib/metaractor.rb, line 40 def self.modules=(mods) @modules = mods end
prepend_module(mod)
click to toggle source
# File lib/metaractor.rb, line 58 def self.prepend_module(mod) modules << {module: mod, method: :prepend} end
register_type(type, callable)
click to toggle source
# File lib/metaractor.rb, line 86 def self.register_type(type, callable) types[type] = callable end
types()
click to toggle source
# File lib/metaractor.rb, line 82 def self.types @types ||= {} end