lib/metaractor.rb in metaractor-2.1.1 vs lib/metaractor.rb in metaractor-3.0.0

- old
+ new

@@ -8,10 +8,12 @@ require 'metaractor/context_validity' require 'metaractor/chain_failures' require 'metaractor/fail_from_context' require 'metaractor/context_has_key' require 'metaractor/failure_output' +require 'i18n' +require 'metaractor/namespace' module Metaractor def self.included(base) base.class_eval do include Interactor @@ -41,17 +43,38 @@ 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::ChainFailures, method: :include }, + { module: Metaractor::Namespace, method: :include } ] end def self.include_module(mod) modules << { module: mod, method: :include } end def self.prepend_module(mod) modules << { module: mod, method: :prepend } + end + + def self.format_hash(hash) + if @hash_formatter.nil? + @hash_formatter = default_hash_formatter + end + + @hash_formatter.call(hash) + end + + def self.default_hash_formatter + ->(hash){ hash.inspect } + end + + def self.hash_formatter + @hash_formatter + end + + def self.hash_formatter=(callable) + @hash_formatter = callable end end