{B: rooto:"YARD::CodeObjects::RootObject:@childrenIC:&YARD::CodeObjects::CodeObjectList[ o:#YARD::CodeObjects::ClassObject;IC;[ o:&YARD::CodeObjects::ConstantObject:@files[[I"lib/colors.rb:ETi:@current_file_has_commentsF: @name:COLORS:@source_type: ruby:@visibility:public: @tags[�:@docstrings{�:@docstringIC:YARD::Docstring"�;T;[�:@ref_tags[�: @allI"�;T:@unresolved_reference0:@object@ :@namespace@: @pathI"Colors::COLORS;F:@sourceI"ZCOLORS = { red: 31, green: 32, yellow: 33, blue: 34, purple: 35, cyan: 36, white: 0 };T:@valueI"Q{ red: 31, green: 32, yellow: 33, blue: 34, purple: 35, cyan: 36, white: 0 };T: @dynamicTo:$YARD::CodeObjects::MethodObject:@module_functionF:@scope: class;;;I"Colors.enabled?;F:@parameters[�;[[@ i ; F;: enabled?;;;[�;{�;IC;"�;T;[o:YARD::Tags::Tag :@tag_nameI"return;F: @text@;0:@types[I"Boolean;T;@;[�;@;0;@:@ref_tag_recurse_counti�;@:@explicitT;I" def enabled? @enabled end;T:@signatureI"def enabled?;T; To;!;"F;#;$;;;I"Colors.enabled=;F;%[[I" value;T0;[[@ i; F;: enabled=;;;[�;{�;IC;"�;T;[�;[�;@;0;@';+i�;@;,T;I"/def enabled=(value) @enabled = value end;T;-I"def enabled=(value);T; To;!;"F;#;$;;;I"Colors.color;F;%[[I"num;T0[I"string;T0;[[@ i; F;: color;;;[�;{�;IC;"�;T;[�;[�;@;0;@5;+i�;@;,T;I"Wdef color(num, string) @enabled ? "#{code(num)}#{string}#{code(0)}" : string end;T;-I"def color(num, string);T; To;!;"F;#;$;;;I"Colors.code;F;%[[I"num;T0;[[@ i; F;: code;;;[�;{�;IC;"�;T;[�;[�;@;0;@E;+i�;@;,T;I"%def code(num) "\e[#{num}m" end;T;-I"def code(num);T; T:@owner@:@class_mixinsIC;[�;1@:@instance_mixinsIC;[�;1@:@attributesIC:SymbolHash{;$IC;5{�:@symbolize_valueT: instanceIC;5{�;6T;6T: @aliases{�:@groups[�;[[@ i; F;:Colors;;;;;[�;{�;IC;"�;T;[�;[�;@;0;@;+i�;@;I"Colors;F:@superclasso:YARD::CodeObjects::Proxy:@orignamespace0:@origname0: @imethod0;:Object;@: @obj0: @type;$o:$YARD::CodeObjects::ModuleObject;IC;[o;!;"F;#;7;;;I"Debugging#let_vars_hash;F;%[�;[[I"lib/binding.rb;Ti; F;:let_vars_hash;;;[�;{�;IC;"�;T;[�;[�;@;0;@e;+i�;@c;,T;I"�def let_vars_hash memoized_values = self.receiver.instance_variable_get(:@__memoized)&.instance_variable_get(:@memoized) memoized_values && !memoized_values.empty? ? memoized_values.dup : {} end;T;-I"def let_vars_hash;T; T;1@c;2IC;[�;1@c;3IC;[�;1@c;4IC;5{;$IC;5{�;6T;7IC;5{�;6T;6T;8{�;9[�;[[@ji; F;:Debugging;;;;;[�;{�;IC;"�;T;[�;[�;@;0;@c;+i�;@;I"Debugging;Fo; ;IC;[�;1@|;2IC;[�;1@|;3IC;[o;<;=0;>0;?0;;E;@;A@c;B:module;1@|;4IC;5{;$IC;5{�;6T;7IC;5{�;6T;6T;8{�;9[�;[[@ji ; F;:Binding;;;;;[�;{�;IC;"�;T;[�;[�;@;0;@|;+i�;@;I"Binding;F;;o;<;=0;>0;?0;;@;@;A0;B;$o; ;IC;[3o;!;"F;#;$;;;I"EnhancedErrors.enabled;F;%[�;[[I"lib/enhanced_errors.rb;Ti; T;:enabled;;;[�;{�;IC;"1Indicates whether EnhancedErrors is enabled. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I"Boolean;T;@�;[�;I"DIndicates whether EnhancedErrors is enabled. @return [Boolean];T;0;@�:@hash_flagF:@line_rangeo: Range: exclF: begini:endi;@�;I"def enabled @enabled end;T;-I"def enabled;T; To;!;"F;#;$;;;I"EnhancedErrors.enabled=;F;%[[I" value;T0;[[@�i; T;;.;;;[�;{�;IC;"1Indicates whether EnhancedErrors is enabled. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I"Boolean;T;@�;[�;@�;0;@�;IF;J@�;@�;I"/def enabled=(value) @enabled = value end;T;-I"def enabled=(value);T; To;!;"F;#;$;;;I"EnhancedErrors.trace;F;%[�;[[@�i; T;: trace;;;[�;{�;IC;"7The TracePoint object used for tracing exceptions. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I"TracePoint;TI"nil;T;@�;[�;I"RThe TracePoint object used for tracing exceptions. @return [TracePoint, nil];T;0;@�;IF;Jo;K;LF;Mi;Ni;@�;I"def trace @trace end;T;-I"def trace;T; To;!;"F;#;$;;;I"EnhancedErrors.trace=;F;%[[@�0;[[@�i; T;:trace=;;;[�;{�;IC;"7The TracePoint object used for tracing exceptions. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I"TracePoint;TI"nil;T;@�;[�;@�;0;@�;IF;J@�;@�;I"+def trace=(value) @trace = value end;T;-I"def trace=(value);T; To;!;"F;#;$;;;I" EnhancedErrors.config_block;F;%[�;[[@�i; T;:config_block;;;[�;{�;IC;"9The configuration block provided during enhancement. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I" Proc;TI"nil;T;@�;[�;I"NThe configuration block provided during enhancement. @return [Proc, nil];T;0;@�;IF;Jo;K;LF;Mi;Ni;@�;I")def config_block @config_block end;T;-I"def config_block;T; To;!;"F;#;$;;;I"!EnhancedErrors.config_block=;F;%[[@�0;[[@�i; T;:config_block=;;;[�;{�;IC;"9The configuration block provided during enhancement. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I" Proc;TI"nil;T;@�;[�;@�;0;@�;IF;J@�;@�;I"9def config_block=(value) @config_block = value end;T;-I"def config_block=(value);T; To;!;"F;#;$;;;I"EnhancedErrors.max_length;F;%[[I" value;TI"nil;T;[[@�i$[@�ih; T;:max_length;;;[�;{�;IC;"IGets or sets the maximum length for the formatted exception message.;T;[o;' ;(I" param;F;)I"EThe desired maximum length. If `nil`, returns the current value.;T;I" value;T;*[I"Integer;TI"nil;T;@o;' ;(I"return;F;)I"2The maximum length for the formatted message.;T;0;*[I"Integer;T;@;[�;I"�Gets or sets the maximum length for the formatted exception message. @param value [Integer, nil] The desired maximum length. If `nil`, returns the current value. @return [Integer] The maximum length for the formatted message.;T;0;@;+i�;IF;Jo;K;LF;Mid;Nig;@�;,T;I"%def max_length @max_length end;T;-I"def max_length;T; To;!;"F;#;$;;;I"EnhancedErrors.max_length=;F;%[[@�0;[[@�i$; T;:max_length=;;;[�;{�;IC;";The maximum length of the formatted exception message. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I"Integer;T;@$;[�;I"NThe maximum length of the formatted exception message. @return [Integer];T;0;@$;IF;Jo;K;LF;Mi!;Ni#;@�;I"5def max_length=(value) @max_length = value end;T;-I"def max_length=(value);T; To;!;"F;#;$;;;I"#EnhancedErrors.on_capture_hook;F;%[�;[[@�i); T;:on_capture_hook;;;[�;{�;IC;"5Hook to modify binding information upon capture. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I" Proc;TI"nil;T;@8;[�;I"JHook to modify binding information upon capture. @return [Proc, nil];T;0;@8;IF;Jo;K;LF;Mi&;Ni(;@�;I"/def on_capture_hook @on_capture_hook end;T;-I"def on_capture_hook;T; To;!;"F;#;$;;;I"$EnhancedErrors.on_capture_hook=;F;%[[@�0;[[@�i); T;:on_capture_hook=;;;[�;{�;IC;"5Hook to modify binding information upon capture. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I" Proc;TI"nil;T;@L;[�;@H;0;@L;IF;J@I;@�;I"?def on_capture_hook=(value) @on_capture_hook = value end;T;-I" def on_capture_hook=(value);T; To;!;"F;#;$;;;I")EnhancedErrors.capture_let_variables;F;%[[I" value;TI"nil;T;[[@�i.[@�iu; T;:capture_let_variables;;;[�;{�;IC;";Gets or sets whether to capture RSpec `let` variables.;T;[o;' ;(I" param;F;)I"<The desired state. If `nil`, returns the current value.;T;I" value;T;*[I"Boolean;TI"nil;T;@_o;' ;(I"return;F;)I"6Whether RSpec `let` variables are being captured.;T;0;*[I"Boolean;T;@_;[�;I"�Gets or sets whether to capture RSpec `let` variables. @param value [Boolean, nil] The desired state. If `nil`, returns the current value. @return [Boolean] Whether RSpec `let` variables are being captured.;T;0;@_;+i�;IF;Jo;K;LF;Miq;Nit;@�;,T;I";def capture_let_variables @capture_let_variables end;T;-I"def capture_let_variables;T; To;!;"F;#;$;;;I"*EnhancedErrors.capture_let_variables=;F;%[[@�0;[[@�i.; T;:capture_let_variables=;;;[�;{�;IC;";Determines whether RSpec `let` variables are captured. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I"Boolean;T;@};[�;I"NDetermines whether RSpec `let` variables are captured. @return [Boolean];T;0;@};IF;Jo;K;LF;Mi+;Ni-;@�;I"Kdef capture_let_variables=(value) @capture_let_variables = value end;T;-I"&def capture_let_variables=(value);T; To;!;"F;#;$;;;I"(EnhancedErrors.eligible_for_capture;F;%[[I"█T0;[[@�i3[@�i�; T;:eligible_for_capture;;;[�;{�;IC;"ISets or retrieves the eligibility criteria for capturing exceptions.;T;[o;' ;(I"yieldparam;F;)I"The exception to evaluate.;T;I"exception;T;*[I"Exception;T;@�o;' ;(I"return;F;)I""The current eligibility proc.;T;0;*[I" Proc;T;@�;[�;I"�Sets or retrieves the eligibility criteria for capturing exceptions. @yieldparam exception [Exception] The exception to evaluate. @return [Proc] The current eligibility proc.;T;0;@�;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"9def eligible_for_capture @eligible_for_capture end;T;-I"def eligible_for_capture;T; To;!;"F;#;$;;;I")EnhancedErrors.eligible_for_capture=;F;%[[@�0;[[@�i3; T;:eligible_for_capture=;;;[�;{�;IC;"DA proc that determines if an exception is eligible for capture. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I" Proc;TI"nil;T;@�;[�;I"YA proc that determines if an exception is eligible for capture. @return [Proc, nil];T;0;@�;IF;Jo;K;LF;Mi0;Ni2;@�;I"Idef eligible_for_capture=(value) @eligible_for_capture = value end;T;-I"%def eligible_for_capture=(value);T; To;!;"F;#;$;;;I"EnhancedErrors.skip_list;F;%[�;[[@�i8[@�i|; T;:skip_list;;;[�;{�;IC;"]Retrieves the current skip list, initializing it with default values if not already set.;T;[o;' ;(I"return;F;)I"The current skip list.;T;0;*[I"Set<Symbol>;T;@�;[�;I"�Retrieves the current skip list, initializing it with default values if not already set. @return [Set<Symbol>] The current skip list.;T;0;@�;+i�;IF;Jo;K;LF;Mi~;Ni{;@�;,T;I"#def skip_list @skip_list end;T;-I"def skip_list;T; To;!;"F;#;$;;;I"EnhancedErrors.skip_list=;F;%[[@�0;[[@�i8; T;:skip_list=;;;[�;{�;IC;"AA set of variable names to exclude from binding information. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I"Set<Symbol>;T;@�;[�;I"XA set of variable names to exclude from binding information. @return [Set<Symbol>];T;0;@�;IF;Jo;K;LF;Mi5;Ni7;@�;I"3def skip_list=(value) @skip_list = value end;T;-I"def skip_list=(value);T; To; ;[[@�i=; T;:GEMS_REGEX;;;;;[�;{�;IC;".Regular expression to identify gem paths. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I"Regexp;T;@�;[�;I"@Regular expression to identify gem paths. @return [Regexp];T;0;@�;IF;Jo;K;LF;Mi:;Ni<;@�;I"EnhancedErrors::GEMS_REGEX;F;I"&GEMS_REGEX = %r{[\/\\]gems[\/\\]};T;I"%r{[\/\\]gems[\/\\]};T; To; ;[[@�iB; T;:DEFAULT_MAX_LENGTH;;;;;[�;{�;IC;"AThe default maximum length for formatted exception messages. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I"Integer;T;@�;[�;I"TThe default maximum length for formatted exception messages. @return [Integer];T;0;@�;IF;Jo;K;LF;Mi?;NiA;@�;I"'EnhancedErrors::DEFAULT_MAX_LENGTH;F;I"DEFAULT_MAX_LENGTH = 2500;T;I" 2500;T; To; ;[[@�iG; T;:RSPEC_SKIP_LIST;;;;;[�;{�;IC;"8A set of RSpec-specific instance variables to skip. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I"Set<Symbol>;T;@;[�;I"OA set of RSpec-specific instance variables to skip. @return [Set<Symbol>];T;0;@;IF;Jo;K;LF;MiD;NiF;@�;I"$EnhancedErrors::RSPEC_SKIP_LIST;F;I"�RSPEC_SKIP_LIST = Set.new([ :@fixture_cache, :@fixture_cache_key, :@fixture_connection_pools, :@connection_subscriber, :@saved_pool_configs, :@loaded_fixtures, :@matcher_definitions, ]);T;I"�Set.new([ :@fixture_cache, :@fixture_cache_key, :@fixture_connection_pools, :@connection_subscriber, :@saved_pool_configs, :@loaded_fixtures, :@matcher_definitions, ]);T; To; ;[[@�iT; T;:RAILS_SKIP_LIST;;;;;[�;{�;IC;"8A set of Rails-specific instance variables to skip. ;T;[o;' ;(I"return;F;)I"�;T;0;*[I"Set<Symbol>;T;@ ;[�;I"OA set of Rails-specific instance variables to skip. @return [Set<Symbol>];T;0;@ ;IF;Jo;K;LF;MiQ;NiS;@�;I"$EnhancedErrors::RAILS_SKIP_LIST;F;I"ARAILS_SKIP_LIST = Set.new([ :@new_record, :@attributes, :@association_cache, :@readonly, :@previously_new_record, :@destroyed, :@marked_for_destruction, :@destroyed_by_association, :@primary_key, :@strict_loading, :@strict_loading_mode, :@mutations_before_last_save, :@mutations_from_database ]);T;I"/Set.new([ :@new_record, :@attributes, :@association_cache, :@readonly, :@previously_new_record, :@destroyed, :@marked_for_destruction, :@destroyed_by_association, :@primary_key, :@strict_loading, :@strict_loading_mode, :@mutations_before_last_save, :@mutations_from_database ]);T; To;!;"F;#;$;;;I"%EnhancedErrors.default_skip_list;F;%[�;[[@�i�; T;:default_skip_list;;;[�;{�;IC;"UInitializes the default skip list by merging Rails and RSpec specific variables.;T;[o;' ;(I"return;F;)I"The default skip list.;T;0;*[I"Set<Symbol>;T;@2;[�;I"~Initializes the default skip list by merging Rails and RSpec specific variables. @return [Set<Symbol>] The default skip list.;T;0;@2;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"Pdef default_skip_list Set.new(RAILS_SKIP_LIST).merge(RSPEC_SKIP_LIST) end;T;-I"def default_skip_list;T; To;!;"F;#;$;;;I"$EnhancedErrors.add_to_skip_list;F;%[[I" *vars;T0;[[@�i�; T;:add_to_skip_list;;;[�;{�;IC;"NAdds variables to the skip list to exclude them from binding information.;T;[o;' ;(I" param;F;)I"0The variable names to add to the skip list.;T;I" vars;T;*[I"Symbol;T;@Eo;' ;(I"return;F;)I"The updated skip list.;T;0;*[I"Set<Symbol>;T;@E;[�;I"�Adds variables to the skip list to exclude them from binding information. @param vars [Symbol] The variable names to add to the skip list. @return [Set<Symbol>] The updated skip list.;T;0;@E;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"<def add_to_skip_list(*vars) skip_list.merge(vars) end;T;-I" def add_to_skip_list(*vars);T; To;!;"F;#;$;;;I"EnhancedErrors.enhance!;F;%[ [I" enabled:;TI" true;T[I"debug:;TI" false;T[I"**options;T0[I"█T0;[[@�i�; T;: enhance!;;;[�;{�;IC;"UEnhances the exception handling by setting up tracing and configuration options.;T;[ o;' ;(I" param;F;)I"&Whether to enable EnhancedErrors.;T;I"enabled;T;*[I"Boolean;T;@`o;' ;(I" param;F;)I""Whether to enable debug mode.;T;I" debug;T;*[I"Boolean;T;@`o;' ;(I" param;F;)I"&Additional configuration options.;T;I"options;T;*[I" Hash;T;@`o;' ;(I" yield;F;)I"*A block for additional configuration.;T;0;*[I" void;T;@`o;' ;(I"return;F;)I"�;T;0;*[I" void;T;@`;[�;I"<Enhances the exception handling by setting up tracing and configuration options. @param enabled [Boolean] Whether to enable EnhancedErrors. @param debug [Boolean] Whether to enable debug mode. @param options [Hash] Additional configuration options. @yield [void] A block for additional configuration. @return [void];T;0;@`;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"�def enhance!(enabled: true, debug: false, **options, &block) @output_format = nil @eligible_for_capture = nil @original_global_variables = nil if enabled == false @original_global_variables = nil @enabled = false @trace.disable if @trace else @enabled = true @debug = debug @original_global_variables = global_variables options.each do |key, value| setter_method = "#{key}=" if respond_to?(setter_method) send(setter_method, value) elsif respond_to?(key) send(key, value) else # Ignore unknown options or handle as needed end end @config_block = block_given? ? block : nil instance_eval(&@config_block) if @config_block start_tracing end end;T;-I"Adef enhance!(enabled: true, debug: false, **options, &block);T; To;!;"F;#;$;;;I"EnhancedErrors.on_capture;F;%[[I"█T0;[[@�i�; T;:on_capture;;;[�;{�;IC;"KSets or retrieves the hook to modify binding information upon capture.;T;[o;' ;(I"yieldparam;F;)I"&The binding information captured.;T;I"binding_info;T;*[I" Hash;T;@�o;' ;(I"return;F;)I"!The current on_capture hook.;T;0;*[I" Proc;T;@�;[�;I"�Sets or retrieves the hook to modify binding information upon capture. @yieldparam binding_info [Hash] The binding information captured. @return [Proc] The current on_capture hook.;T;0;@�;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"�def on_capture(&block) if block_given? @on_capture_hook = block else @on_capture_hook ||= method(:default_on_capture) end end;T;-I"def on_capture(&block);T; To;!;"F;#;$;;;I"EnhancedErrors.on_capture=;F;%[[I" value;T0;[[@�i�; T;:on_capture=;;;[�;{�;IC;"Sets the on_capture hook.;T;[o;' ;(I" param;F;)I",The proc to set as the on_capture hook.;T;I" value;T;*[I" Proc;T;@�o;' ;(I"return;F;)I"#The newly set on_capture hook.;T;0;*[I" Proc;T;@�;[�;I"�Sets the on_capture hook. @param value [Proc] The proc to set as the on_capture hook. @return [Proc] The newly set on_capture hook.;T;0;@�;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I">def on_capture=(value) self.on_capture_hook = value end;T;-I"def on_capture=(value);T; To;!;"F;#;$;;;I"EnhancedErrors.on_format;F;%[[I"█T0;[[@�i�; T;:on_format;;;[�;{�;IC;"GSets or retrieves the hook to modify formatted exception messages.;T;[o;' ;(I"yieldparam;F;)I"%The formatted exception message.;T;I"formatted_string;T;*[I"String;T;@�o;' ;(I"return;F;)I" The current on_format hook.;T;0;*[I" Proc;T;@�;[�;I"�Sets or retrieves the hook to modify formatted exception messages. @yieldparam formatted_string [String] The formatted exception message. @return [Proc] The current on_format hook.;T;0;@�;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"�def on_format(&block) if block_given? @on_format_hook = block else @on_format_hook ||= method(:default_on_format) end end;T;-I"def on_format(&block);T; To;!;"F;#;$;;;I"EnhancedErrors.on_format=;F;%[[I" value;T0;[[@�i�; T;:on_format=;;;[�;{�;IC;"Sets the on_format hook.;T;[o;' ;(I" param;F;)I"+The proc to set as the on_format hook.;T;I" value;T;*[I" Proc;T;@�o;' ;(I"return;F;)I""The newly set on_format hook.;T;0;*[I" Proc;T;@�;[�;I"�Sets the on_format hook. @param value [Proc] The proc to set as the on_format hook. @return [Proc] The newly set on_format hook.;T;0;@�;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"8def on_format=(value) @on_format_hook = value end;T;-I"def on_format=(value);T; To;!;"F;#;$;;;I"EnhancedErrors.format;F;%[[I"captured_bindings;TI"[];T[I"output_format;TI"'get_default_format_for_environment;T;[[@�i�; T;:format;;;[�;{�;IC;"ZFormats the captured binding information into a string based on the specified format.;T;[o;' ;(I" param;F;)I"/The array of captured binding information.;T;I"captured_bindings;T;*[I"Array<Hash>;T;@�o;' ;(I" param;F;)I"6The format to use (:json, :plaintext, :terminal).;T;I"output_format;T;*[I"Symbol;T;@�o;' ;(I"return;F;)I"%The formatted exception message.;T;0;*[I"String;T;@�;[�;I"*Formats the captured binding information into a string based on the specified format. @param captured_bindings [Array<Hash>] The array of captured binding information. @param output_format [Symbol] The format to use (:json, :plaintext, :terminal). @return [String] The formatted exception message.;T;0;@�;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"!def format(captured_bindings = [], output_format = get_default_format_for_environment) result = binding_infos_array_to_string(captured_bindings, output_format) if @on_format_hook result = @on_format_hook.call(result) else result = default_on_format(result) end result end;T;-I"[def format(captured_bindings = [], output_format = get_default_format_for_environment);T; To;!;"F;#;$;;;I"1EnhancedErrors.binding_infos_array_to_string;F;%[[I"captured_bindings;T0[I"format;TI":terminal;T;[[@�i�; T;:"binding_infos_array_to_string;;;[�;{�;IC;"MConverts an array of binding information hashes into a formatted string.;T;[o;' ;(I" param;F;)I"&The array of binding information.;T;I"captured_bindings;T;*[I"Array<Hash>;T;@%o;' ;(I" param;F;)I"6The format to use (:json, :plaintext, :terminal).;T;I"format;T;*[I"Symbol;T;@%o;' ;(I"return;F;)I"DThe formatted string representation of the binding information.;T;0;*[I"String;T;@%;[�;I",Converts an array of binding information hashes into a formatted string. @param captured_bindings [Array<Hash>] The array of binding information. @param format [Symbol] The format to use (:json, :plaintext, :terminal). @return [String] The formatted string representation of the binding information.;T;0;@%;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"<def binding_infos_array_to_string(captured_bindings, format = :terminal) case format when :json Colors.enabled = false JSON.pretty_generate(captured_bindings) when :plaintext Colors.enabled = false captured_bindings.map { |binding_info| binding_info_string(binding_info) }.join("\n") when :terminal Colors.enabled = true captured_bindings.map { |binding_info| binding_info_string(binding_info) }.join("\n") else Colors.enabled = false captured_bindings.map { |binding_info| binding_info_string(binding_info) }.join("\n") end end;T;-I"Mdef binding_infos_array_to_string(captured_bindings, format = :terminal);T; To;!;"F;#;$;;;I"6EnhancedErrors.get_default_format_for_environment;F;%[�;[[@�i; T;:'get_default_format_for_environment;;;[�;{�;IC;"KDetermines the default output format based on the current environment.;T;[o;' ;(I"return;F;)I"7The default format (:json, :plaintext, :terminal).;T;0;*[I"Symbol;T;@I;[�;I"�Determines the default output format based on the current environment. @return [Symbol] The default format (:json, :plaintext, :terminal).;T;0;@I;+i�;IF;Jo;K;LF;Mi;Ni;@�;,T;I"def get_default_format_for_environment return @output_format unless @output_format.nil? env = ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development' @output_format = case env when 'development', 'test' if running_in_ci? :plaintext else :terminal end when 'production' :json else :terminal end end;T;-I"+def get_default_format_for_environment;T; To;!;"F;#;$;;;I""EnhancedErrors.running_in_ci?;F;%[�;[[@�i%; T;:running_in_ci?;;;[�;{�;IC;"PChecks if the code is running in a Continuous Integration (CI) environment.;T;[o;' ;(I"return;F;)I"0`true` if running in CI, otherwise `false`.;T;0;*[I"Boolean;T;@\;[�;I"�Checks if the code is running in a Continuous Integration (CI) environment. @return [Boolean] `true` if running in CI, otherwise `false`.;T;0;@\;+i�;IF;Jo;K;LF;Mi";Ni$;@�;,T;I"�def running_in_ci? return @running_in_ci if defined?(@running_in_ci) ci_env_vars = { 'CI' => ENV['CI'], 'JENKINS' => ENV['JENKINS'], 'GITHUB_ACTIONS' => ENV['GITHUB_ACTIONS'], 'CIRCLECI' => ENV['CIRCLECI'], 'TRAVIS' => ENV['TRAVIS'], 'APPVEYOR' => ENV['APPVEYOR'], 'GITLAB_CI' => ENV['GITLAB_CI'] } @running_in_ci = ci_env_vars.any? { |_, value| value.to_s.downcase == 'true' } end;T;-I"def running_in_ci?;T; To;!;"F;#;$;;;I"#EnhancedErrors.apply_skip_list;F;%[[I"binding_info;T0;[[@�i7; T;:apply_skip_list;;;[�;{�;IC;"^Applies the skip list to the captured binding information, excluding specified variables.;T;[o;' ;(I" param;F;)I"'The binding information to filter.;T;I"binding_info;T;*[I" Hash;T;@oo;' ;(I"return;F;)I"&The filtered binding information.;T;0;*[I" Hash;T;@o;[�;I"�Applies the skip list to the captured binding information, excluding specified variables. @param binding_info [Hash] The binding information to filter. @return [Hash] The filtered binding information.;T;0;@o;+i�;IF;Jo;K;LF;Mi3;Ni6;@�;,T;I"edef apply_skip_list(binding_info) unless @debug variables = binding_info[:variables] variables[:instances]&.reject! { |var, _| skip_list.include?(var) || var.to_s.start_with?('@__') } variables[:locals]&.reject! { |var, _| skip_list.include?(var) } variables[:globals]&.reject! { |var, _| skip_list.include?(var) } end binding_info end;T;-I"&def apply_skip_list(binding_info);T; To;!;"F;#;$;;;I"+EnhancedErrors.validate_binding_format;F;%[[I"binding_info;T0;[[@�iE; T;:validate_binding_format;;;[�;{�;IC;">Validates the format of the captured binding information.;T;[o;' ;(I" param;F;)I")The binding information to validate.;T;I"binding_info;T;*[I" Hash;T;@�o;' ;(I"return;F;)I";The validated binding information or `nil` if invalid.;T;0;*[I" Hash;TI"nil;T;@�;[�;I"�Validates the format of the captured binding information. @param binding_info [Hash] The binding information to validate. @return [Hash, nil] The validated binding information or `nil` if invalid.;T;0;@�;+i�;IF;Jo;K;LF;MiA;NiD;@�;,T;I"�def validate_binding_format(binding_info) unless binding_info.keys.include?(:capture_type) && binding_info[:variables].is_a?(Hash) puts "Invalid binding_info format." return nil end binding_info end;T;-I".def validate_binding_format(binding_info);T; To;!;"F;#;$;;;I"'EnhancedErrors.binding_info_string;F;%[[I"binding_info;T0;[[@�iQ; T;:binding_info_string;;;[�;{�;IC;"OFormats a single binding information hash into a string with colorization.;T;[o;' ;(I" param;F;)I"'The binding information to format.;T;I"binding_info;T;*[I" Hash;T;@�o;' ;(I"return;F;)I"The formatted string.;T;0;*[I"String;T;@�;[�;I"�Formats a single binding information hash into a string with colorization. @param binding_info [Hash] The binding information to format. @return [String] The formatted string.;T;0;@�;+i�;IF;Jo;K;LF;MiM;NiP;@�;,T;I".def binding_info_string(binding_info) result = "\n#{Colors.green("#{binding_info[:capture_type].capitalize}: ")}#{Colors.blue(binding_info[:source])}" result += method_and_args_desc(binding_info[:method_and_args]) variables = binding_info[:variables] || {} if variables[:locals] && !variables[:locals].empty? result += "\n#{Colors.green('Locals:')}\n#{variable_description(variables[:locals])}" end instance_vars_to_display = variables[:instances] || {} if instance_vars_to_display && !instance_vars_to_display.empty? result += "\n#{Colors.green('Instances:')}\n#{variable_description(instance_vars_to_display)}" end if variables[:lets] && !variables[:lets].empty? result += "\n#{Colors.green('Let Variables:')}\n#{variable_description(variables[:lets])}" end if variables[:globals] && !variables[:globals].empty? result += "\n#{Colors.green('Globals:')}\n#{variable_description(variables[:globals])}" end if result.length > max_length result = result[0...max_length] + "... (truncated)" end result + "\n\n" end;T;-I"*def binding_info_string(binding_info);T; To;!;"F;#;$;:private;I"!EnhancedErrors.start_tracing;F;%[�;[[@�iv; T;:start_tracing;;;[�;{�;IC;"OStarts the TracePoint for capturing exceptions based on configured events.;T;[o;' ;(I"return;F;)I"�;T;0;*[I" void;T;@�;[�;I"_Starts the TracePoint for capturing exceptions based on configured events. @return [void];T;0;@�;+i�;IF;Jo;K;LF;Mis;Niu;@�;,T;I"Udef start_tracing return if @trace && @trace.enabled? events = [:raise] events << :rescue if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.3.0') @trace = TracePoint.new(*events) do |tp| exception = tp.raised_exception capture_me = EnhancedErrors.eligible_for_capture.call(exception) next unless capture_me next if Thread.current[:enhanced_errors_processing] Thread.current[:enhanced_errors_processing] = true exception = tp.raised_exception binding_context = tp.binding unless exception.instance_variable_defined?(:@binding_infos) exception.instance_variable_set(:@binding_infos, []) exception.extend(ErrorEnhancements) end method_name = tp.method_id method_and_args = { object_name: determine_object_name(tp, method_name), args: extract_arguments(tp, method_name) } locals = binding_context.local_variables.map { |var| [var, binding_context.local_variable_get(var)] }.to_h instance_vars = binding_context.receiver.instance_variables instances = instance_vars.map { |var| [var, (binding_context.receiver.instance_variable_get(var) rescue "#<Error getting instance variable: #{$!.message}>")] }.to_h # Extract 'let' variables from :@__memoized (RSpec specific) lets = {} if capture_let_variables && instance_vars.include?(:@__memoized) outer_memoized = binding_context.receiver.instance_variable_get(:@__memoized) memoized = outer_memoized.instance_variable_get(:@memoized) if outer_memoized.respond_to?(:instance_variable_get) if memoized.is_a?(Hash) lets = memoized&.transform_keys(&:to_sym) end end globals = {} # Capture global variables if @debug globals = (global_variables - @original_global_variables).map { |var| [var, get_global_variable_value(var)] }.to_h puts "Global Variables: #{globals.inspect}" end capture_type = tp.event.to_s # 'raise' or 'rescue' location = "#{tp.path}:#{tp.lineno}" binding_info = { source: location, object: tp.self, library: !!GEMS_REGEX.match?(location), method_and_args: method_and_args, test_name: test_name, variables: { locals: locals, instances: instances, lets: lets, globals: globals }, exception: exception.class.name, capture_type: capture_type } if on_capture_hook binding_info = on_capture_hook.call(binding_info) else binding_info = default_on_capture(binding_info) end binding_info = validate_binding_format(binding_info) if binding_info exception.instance_variable_get(:@binding_infos) << binding_info else puts "Invalid binding_info returned from on_capture, skipping." end ensure Thread.current[:enhanced_errors_processing] = false end @trace.enable end;T;-I"def start_tracing;T; To;!;"F;#;$;;o;I"EnhancedErrors.test_name;F;%[�;[[@�i�; T;:test_name;;;[�;{�;IC;">Retrieves the current test name from RSpec, if available.;T;[o;' ;(I"return;F;)I"=The current test name or `nil` if not in a test context.;T;0;*[I"String;TI"nil;T;@�;[�;I"�Retrieves the current test name from RSpec, if available. @return [String, nil] The current test name or `nil` if not in a test context.;T;0;@�;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"adef test_name return RSpec&.current_example&.full_description if defined?(RSpec) nil end;T;-I"def test_name;T; To;!;"F;#;$;;o;I"%EnhancedErrors.extract_arguments;F;%[[I"tp;T0[I"method_name;T0;[[@�i�; T;:extract_arguments;;;[�;{�;IC;";Extracts method arguments from the TracePoint binding.;T;[o;' ;(I" param;F;)I"The current TracePoint.;T;I"tp;T;*[I"TracePoint;T;@�o;' ;(I" param;F;)I"The name of the method.;T;I"method_name;T;*[I"Symbol;T;@�o;' ;(I"return;F;)I"5A string representation of the method arguments.;T;0;*[I"String;T;@�;[�;I"�Extracts method arguments from the TracePoint binding. @param tp [TracePoint] The current TracePoint. @param method_name [Symbol] The name of the method. @return [String] A string representation of the method arguments.;T;0;@�;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"Pdef extract_arguments(tp, method_name) return '' unless method_name begin bind = tp.binding unbound_method = tp.defined_class.instance_method(method_name) method_obj = unbound_method.bind(tp.self) parameters = method_obj.parameters locals = bind.local_variables parameters.map do |(type, name)| value = locals.include?(name) ? bind.local_variable_get(name) : nil "#{name}=#{value.inspect}" rescue => e "#{name}=#<Error getting argument: #{e.message}>" end.join(", ") rescue => e "#<Error getting arguments: #{e.message}>" end end;T;-I"+def extract_arguments(tp, method_name);T; To;!;"F;#;$;;o;I")EnhancedErrors.determine_object_name;F;%[[I"tp;T0[I"method_name;T0;[[@�i�; T;:determine_object_name;;;[�;{�;IC;"HDetermines the object name based on the TracePoint and method name.;T;[o;' ;(I" param;F;)I"The current TracePoint.;T;I"tp;T;*[I"TracePoint;T;@o;' ;(I" param;F;)I"The name of the method.;T;I"method_name;T;*[I"Symbol;T;@o;' ;(I"return;F;)I"The formatted object name.;T;0;*[I"String;T;@;[�;I"�Determines the object name based on the TracePoint and method name. @param tp [TracePoint] The current TracePoint. @param method_name [Symbol] The name of the method. @return [String] The formatted object name.;T;0;@;+i�;IF;Jo;K;LF;Mi�;Ni�;@�;,T;I"def determine_object_name(tp, method_name) if tp.self.is_a?(Class) && tp.self.singleton_class == tp.defined_class "#{tp.self}.#{method_name}" else "#{tp.self.class.name}##{method_name}" end rescue => e "#<Error inspecting value: #{e.message}>" end;T;-I"/def determine_object_name(tp, method_name);T; To;!;"F;#;$;;o;I"-EnhancedErrors.get_global_variable_value;F;%[[I"var;T0;[[@�i; T;:get_global_variable_value;;;[�;{�;IC;":Retrieves the value of a global variable by its name.;T;[o;' ;(I" param;F;)I"%The name of the global variable.;T;I"var;T;*[I"Symbol;T;@.o;' ;(I"return;F;)I":The value of the global variable or an error message.;T;0;*[I"Object;TI"String;T;@.;[�;I"�Retrieves the value of a global variable by its name. @param var [Symbol] The name of the global variable. @return [Object, String] The value of the global variable or an error message.;T;0;@.;+i�;IF;Jo;K;LF;Mi;Ni ;@�;,T;I"�def get_global_variable_value(var) begin var.is_a?(Symbol) ? eval("#{var}") : nil rescue => e "#<Error getting value: #{e.message}>" end end;T;-I"'def get_global_variable_value(var);T; To;!;"F;#;$;;o;I"(EnhancedErrors.method_and_args_desc;F;%[[I"method_info;T0;[[@�i; T;:method_and_args_desc;;;[�;{�;IC;"6Generates a description for method and arguments.;T;[o;' ;(I" param;F;)I"4Information about the method and its arguments.;T;I"method_info;T;*[I" Hash;T;@Jo;' ;(I"return;F;)I"The formatted description.;T;0;*[I"String;T;@J;[�;I"�Generates a description for method and arguments. @param method_info [Hash] Information about the method and its arguments. @return [String] The formatted description.;T;0;@J;+i�;IF;Jo;K;LF;Mi;Ni;@�;,T;I"1def method_and_args_desc(method_info) return '' unless method_info[:object_name] != '' || method_info[:args]&.length.to_i > 0 arg_str = method_info[:args] arg_str = "(#{arg_str})" if arg_str != "" str = method_info[:object_name] + arg_str "\n#{Colors.green('Method: ')}#{Colors.blue(str)}\n" end;T;-I"*def method_and_args_desc(method_info);T; To;!;"F;#;$;;o;I"(EnhancedErrors.variable_description;F;%[[I"vars_hash;T0;[[@�i#; T;:variable_description;;;[�;{�;IC;">Generates a formatted description for a set of variables.;T;[o;' ;(I" param;F;)I"/A hash of variable names and their values.;T;I"vars_hash;T;*[I" Hash;T;@eo;' ;(I"return;F;)I")The formatted variables description.;T;0;*[I"String;T;@e;[�;I"�Generates a formatted description for a set of variables. @param vars_hash [Hash] A hash of variable names and their values. @return [String] The formatted variables description.;T;0;@e;+i�;IF;Jo;K;LF;Mi;Ni";@�;,T;I"�def variable_description(vars_hash) vars_hash.map do |name, value| " #{Colors.purple(name)}: #{format_variable(value)}\n" end.join end;T;-I"(def variable_description(vars_hash);T; To;!;"F;#;$;;o;I"#EnhancedErrors.format_variable;F;%[[I" variable;T0;[[@�i-; T;:format_variable;;;[�;{�;IC;"TFormats a variable for display, using `awesome_print` if available and enabled.;T;[o;' ;(I" param;F;)I"The variable to format.;T;I" variable;T;*[I"Object;T;@�o;' ;(I"return;F;)I"The formatted variable.;T;0;*[I"String;T;@�;[�;I"�Formats a variable for display, using `awesome_print` if available and enabled. @param variable [Object] The variable to format. @return [String] The formatted variable.;T;0;@�;+i�;IF;Jo;K;LF;Mi);Ni,;@�;,T;I"wdef format_variable(variable) (awesome_print_available? && Colors.enabled?) ? variable.ai : variable.inspect end;T;-I""def format_variable(variable);T; To;!;"F;#;$;;o;I",EnhancedErrors.awesome_print_available?;F;%[�;[[@�i4; T;:awesome_print_available?;;;[�;{�;IC;"3Checks if the `AwesomePrint` gem is available.;T;[o;' ;(I"return;F;)I">`true` if `AwesomePrint` is available, otherwise `false`.;T;0;*[I"Boolean;T;@�;[�;I"{Checks if the `AwesomePrint` gem is available. @return [Boolean] `true` if `AwesomePrint` is available, otherwise `false`.;T;0;@�;+i�;IF;Jo;K;LF;Mi1;Ni3;@�;,T;I"�def awesome_print_available? return @awesome_print_available unless @awesome_print_available.nil? @awesome_print_available = defined?(AwesomePrint) end;T;-I"!def awesome_print_available?;T; To;!;"F;#;$;;o;I"%EnhancedErrors.default_on_format;F;%[[I"string;T0;[[@�i=; T;:default_on_format;;;[�;{�;IC;"3Default implementation for the on_format hook.;T;[o;' ;(I" param;F;)I"%The formatted exception message.;T;I"string;T;*[I"String;T;@�o;' ;(I"return;F;)I"&The unmodified exception message.;T;0;*[I"String;T;@�;[�;I"�Default implementation for the on_format hook. @param string [String] The formatted exception message. @return [String] The unmodified exception message.;T;0;@�;+i�;IF;Jo;K;LF;Mi9;Ni<;@�;,T;I"/def default_on_format(string) string end;T;-I""def default_on_format(string);T; To;!;"F;#;$;;o;I"&EnhancedErrors.default_on_capture;F;%[[I"binding_info;T0;[[@�iE; T;:default_on_capture;;;[�;{�;IC;"LDefault implementation for the on_capture hook, applying the skip list.;T;[o;' ;(I" param;F;)I"&The captured binding information.;T;I"binding_info;T;*[I" Hash;T;@�o;' ;(I"return;F;)I"&The filtered binding information.;T;0;*[I" Hash;T;@�;[�;I"�Default implementation for the on_capture hook, applying the skip list. @param binding_info [Hash] The captured binding information. @return [Hash] The filtered binding information.;T;0;@�;+i�;IF;Jo;K;LF;MiA;NiD;@�;,T;I"�def default_on_capture(binding_info) # Use this to clean up the captured bindings EnhancedErrors.apply_skip_list(binding_info) end;T;-I")def default_on_capture(binding_info);T; To;!;"F;#;$;;o;I"0EnhancedErrors.default_eligible_for_capture;F;%[[I"exception;T0;[[@�iN; T;:!default_eligible_for_capture;;;[�;{�;IC;"8Default eligibility check for capturing exceptions.;T;[o;' ;(I" param;F;)I"The exception to evaluate.;T;I"exception;T;*[I"Exception;T;@�o;' ;(I"return;F;)I"C`true` if the exception should be captured, otherwise `false`.;T;0;*[I"Boolean;T;@�;[�;I"�Default eligibility check for capturing exceptions. @param exception [Exception] The exception to evaluate. @return [Boolean] `true` if the exception should be captured, otherwise `false`.;T;0;@�;+i�;IF;Jo;K;LF;MiJ;NiM;@�;,T;I";def default_eligible_for_capture(exception) true end;T;-I"0def default_eligible_for_capture(exception);T; T;1@�;2IC;[�;1@�;3IC;[�;1@�;4IC;5{;$IC;5{ ;HIC;5{: read@�: write@�;6T;OIC;5{;|@�;}@�;6T;QIC;5{;|@�;}@�;6T;SIC;5{;|@;}@$;6T;UIC;5{;|@8;}@L;6T;WIC;5{;|@_;}@};6T;YIC;5{;|@�;}@�;6T;[IC;5{;|@�;}@�;6T;6T;7IC;5{�;6T;6T;8{�;9[�;[[@�i; T;:EnhancedErrors;;;;;[�;{�;IC;"The EnhancedErrors class provides mechanisms to enhance exception handling by capturing additional context such as binding information, variables, and method arguments when exceptions are raised. It offers customization options for formatting and filtering captured data.;T;[�;[�;I"The EnhancedErrors class provides mechanisms to enhance exception handling by capturing additional context such as binding information, variables, and method arguments when exceptions are raised. It offers customization options for formatting and filtering captured data.;T;0;@�;+i�;IF;Jo;K;LF;Mi ;Ni;@;I"EnhancedErrors;F;;o;<;=0;>0;?0;;@;@;A0;B;$o;C;IC;[o;!;"F;#;7;;;I"ErrorEnhancements#message;F;%[�;[[I"lib/error_enhancements.rb;Ti; F;:message;;;[�;{�;IC;"�;T;[�;[�;@;0;@;+i�;@;,T;I"�def message original_message = super() "#{original_message}#{variables_message}" rescue => e puts "Error in message method: #{e.message}" original_message end;T;-I"def message;T; To;!;"F;#;7;;;I"(ErrorEnhancements#variables_message;F;%[�;[[@ i; F;:variables_message;;;[�;{�;IC;"�;T;[�;[�;@;0;@(;+i�;@;,T;I":def variables_message @variables_message ||= begin bindings_of_interest = [] if defined?(@binding_infos) && @binding_infos && !@binding_infos.empty? bindings_of_interest = select_binding_infos(@binding_infos) end EnhancedErrors.format(bindings_of_interest) rescue => e puts "Error in variables_message: #{e.message}" "" end end;T;-I"def variables_message;T; To;!;"F;#;7;;o;I"+ErrorEnhancements#select_binding_infos;F;%[[I"binding_infos;T0;[[@ i; F;:select_binding_infos;;;[�;{�;IC;"�;T;[�;[�;@;0;@4;+i�;@;,T;I"�def select_binding_infos(binding_infos) # Preference: # Grab the first raise binding that isn't a library (gem) binding. # If there are only library bindings, grab the first one. # Grab the last rescue binding if we have one bindings_of_interest = [] binding_infos.each do |info| if info[:capture_type] == 'raise' && !info[:library] bindings_of_interest << info break end end if bindings_of_interest.empty? bindings_of_interest << binding_infos.first if binding_infos.first end # find the last rescue binding if there is one binding_infos.reverse.each do |info| if info[:capture_type] == 'rescue' bindings_of_interest << info break end end bindings_of_interest end;T;-I",def select_binding_infos(binding_infos);T; T;1@;2IC;[�;1@;3IC;[�;1@;4IC;5{;$IC;5{�;6T;7IC;5{�;6T;6T;8{�;9[�;[[@ i; F;:ErrorEnhancements;;;;;[�;{�;IC;"�;T;[�;[�;@;0;@;+i�;@;I"ErrorEnhancements;F;1@;2IC;[�;1@;3IC;[�;1@;4IC;5{;$IC;5{�;6T;7IC;5{�;6T;6T;8{�;9[�;[�; F;;�;;;;;[�;{�;IC;"�;T;[�;[�;@;0;@;+i�;0;@;:@:Colors::COLORS@ :Colors.enabled?@:Colors.enabled=@':Colors.color@5:Colors.code@E;E@c:Debugging#let_vars_hash@e;G@|;~@�:EnhancedErrors.enabled@�:EnhancedErrors.enabled=@�:EnhancedErrors.trace@�:EnhancedErrors.trace=@�: EnhancedErrors.config_block@�:!EnhancedErrors.config_block=@�:EnhancedErrors.max_length@:EnhancedErrors.max_length=@$:#EnhancedErrors.on_capture_hook@8:$EnhancedErrors.on_capture_hook=@L:)EnhancedErrors.capture_let_variables@_:*EnhancedErrors.capture_let_variables=@}:(EnhancedErrors.eligible_for_capture@�:)EnhancedErrors.eligible_for_capture=@�:EnhancedErrors.skip_list@�:EnhancedErrors.skip_list=@�:EnhancedErrors::GEMS_REGEX@�:'EnhancedErrors::DEFAULT_MAX_LENGTH@�:$EnhancedErrors::RSPEC_SKIP_LIST@:$EnhancedErrors::RAILS_SKIP_LIST@ :%EnhancedErrors.default_skip_list@2:$EnhancedErrors.add_to_skip_list@E:EnhancedErrors.enhance!@`:EnhancedErrors.on_capture@�:EnhancedErrors.on_capture=@�:EnhancedErrors.on_format@�:EnhancedErrors.on_format=@�:EnhancedErrors.format@�:1EnhancedErrors.binding_infos_array_to_string@%:6EnhancedErrors.get_default_format_for_environment@I:"EnhancedErrors.running_in_ci?@\:#EnhancedErrors.apply_skip_list@o:+EnhancedErrors.validate_binding_format@�:'EnhancedErrors.binding_info_string@�:!EnhancedErrors.start_tracing@�:EnhancedErrors.test_name@�:%EnhancedErrors.extract_arguments@�:)EnhancedErrors.determine_object_name@:-EnhancedErrors.get_global_variable_value@.:(EnhancedErrors.method_and_args_desc@J:(EnhancedErrors.variable_description@e:#EnhancedErrors.format_variable@�:,EnhancedErrors.awesome_print_available?@�:%EnhancedErrors.default_on_format@�:&EnhancedErrors.default_on_capture@�:0EnhancedErrors.default_eligible_for_capture@�;}@:ErrorEnhancements#message@:(ErrorEnhancements#variables_message@(:+ErrorEnhancements#select_binding_infos@4