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