lib/rshade/config/stack_store.rb in rshade-0.2.2 vs lib/rshade/config/stack_store.rb in rshade-1.10.0

- old
+ new

@@ -1,45 +1,43 @@ # frozen_string_literal: true module RShade class Config class StackStore - attr_reader :filter, :formatter, :variable_serializer + attr_reader :filter, :formatter, :custom_serializers DEFAULT_FORMATTER = { - json: ::RShade::Formatter::Stack::Json, - stdout: ::RShade::Formatter::Stack::Stdout + json: ::RShade::Formatter::Stack::Json }.freeze - # @param [RShade::Formatter::Stack::Stdout] formatter - # @param [RShade::Filter::FilterComposition] filter - # @param [Hash] serializers - def initialize(formatter: RShade::Formatter::Stack::Stdout.new, filter: default_filter_composition, - serializers: {}) - @filter = filter - @formatter = formatter - @variable_serializer = ::RShade::Serializer::Traversal.new(serializers) + # @param [Hash] options + # @option options [::RShade::Filter::FilterComposition] :filter_composition + # @option options [#call(event_store)] :formatter + def initialize(options = {}) + @filter = options.fetch(:filter, default_filter_composition) + @formatter = options.fetch(:formatter, ::RShade::Formatter::Stack::Stdout.new) + @custom_serializers = options.fetch(:custom_serializers, {}) end - def serializer!(hash) - variable_serializer.merge!(hash) + def add_custom_serializers(hash) + custom_serializers.merge!(hash) self end - def filter!(filter_type, &block) - filter.filter(filter_type, &block) + def config_filter(filter_type, &block) + filter.config_filter(filter_type, &block) self end - def formatter!(formatter, opts = {}) + def set_formatter(formatter, opts = {}) @formatter = formatter.is_a?(Symbol) ? set_symbol_formatter(formatter, opts) : formatter self end def exclude_gems! - filter!(::RShade::Filter::ExcludePathFilter) do |paths| - paths.concat(RShade::Utils.default_excluded_path) + config_filter(::RShade::Filter::ExcludePathFilter) do |paths| + paths.concat(RShade::Config.default_excluded_path) end self end private @@ -50,15 +48,11 @@ @formatter = formatter_class.new(**opts) end def default_filter_composition - variable_filter = RShade::Filter::VariableFilter.new - include_filter = RShade::Filter::IncludePathFilter.new - exclude_filter = RShade::Filter::ExcludePathFilter.new - RShade::Filter::FilterBuilder.build([:or, - [:or, variable_filter, include_filter], exclude_filter]) + [:or, RShade::Filter::VariableFilter.new, RShade::Filter::IncludePathFilter.new], RShade::Filter::ExcludePathFilter.new]) end end end end