Module: SimpleCovMcp
- Defined in:
- lib/simplecov_mcp.rb,
lib/simplecov_mcp/cli.rb,
lib/simplecov_mcp/util.rb,
lib/simplecov_mcp/model.rb,
lib/simplecov_mcp/errors.rb,
lib/simplecov_mcp/version.rb,
lib/simplecov_mcp/base_tool.rb,
lib/simplecov_mcp/constants.rb,
lib/simplecov_mcp/app_config.rb,
lib/simplecov_mcp/formatters.rb,
lib/simplecov_mcp/mcp_server.rb,
lib/simplecov_mcp/app_context.rb,
lib/simplecov_mcp/config_parser.rb,
lib/simplecov_mcp/error_handler.rb,
lib/simplecov_mcp/mode_detector.rb,
lib/simplecov_mcp/table_formatter.rb,
lib/simplecov_mcp/tools/help_tool.rb,
lib/simplecov_mcp/path_relativizer.rb,
lib/simplecov_mcp/resultset_loader.rb,
lib/simplecov_mcp/coverage_reporter.rb,
lib/simplecov_mcp/staleness_checker.rb,
lib/simplecov_mcp/option_normalizers.rb,
lib/simplecov_mcp/tools/version_tool.rb,
lib/simplecov_mcp/predicate_evaluator.rb,
lib/simplecov_mcp/tools/validate_tool.rb,
lib/simplecov_mcp/commands/raw_command.rb,
lib/simplecov_mcp/commands/base_command.rb,
lib/simplecov_mcp/commands/list_command.rb,
lib/simplecov_mcp/error_handler_factory.rb,
lib/simplecov_mcp/option_parser_builder.rb,
lib/simplecov_mcp/commands/totals_command.rb,
lib/simplecov_mcp/tools/coverage_raw_tool.rb,
lib/simplecov_mcp/commands/command_factory.rb,
lib/simplecov_mcp/commands/summary_command.rb,
lib/simplecov_mcp/commands/version_command.rb,
lib/simplecov_mcp/commands/detailed_command.rb,
lib/simplecov_mcp/commands/validate_command.rb,
lib/simplecov_mcp/tools/coverage_table_tool.rb,
lib/simplecov_mcp/commands/uncovered_command.rb,
lib/simplecov_mcp/resolvers/resolver_factory.rb,
lib/simplecov_mcp/tools/coverage_totals_tool.rb,
lib/simplecov_mcp/tools/uncovered_lines_tool.rb,
lib/simplecov_mcp/formatters/source_formatter.rb,
lib/simplecov_mcp/option_parsers/error_helper.rb,
lib/simplecov_mcp/tools/coverage_summary_tool.rb,
lib/simplecov_mcp/tools/coverage_detailed_tool.rb,
lib/simplecov_mcp/tools/all_files_coverage_tool.rb,
lib/simplecov_mcp/resolvers/coverage_line_resolver.rb,
lib/simplecov_mcp/option_parsers/env_options_parser.rb,
lib/simplecov_mcp/presenters/coverage_raw_presenter.rb,
lib/simplecov_mcp/resolvers/resultset_path_resolver.rb,
lib/simplecov_mcp/presenters/base_coverage_presenter.rb,
lib/simplecov_mcp/presenters/project_totals_presenter.rb,
lib/simplecov_mcp/presenters/coverage_summary_presenter.rb,
lib/simplecov_mcp/presenters/project_coverage_presenter.rb,
lib/simplecov_mcp/presenters/coverage_detailed_presenter.rb,
lib/simplecov_mcp/presenters/coverage_uncovered_presenter.rb
Defined Under Namespace
Modules: Commands, Constants, CovUtil, CoverageReporter, ErrorHandlerFactory, Formatters, OptionNormalizers, OptionParsers, Presenters, Resolvers, Tools
Classes: AppConfig, AppContext, BaseTool, ConfigParser, ConfigurationError, CoverageCLI, CoverageDataError, CoverageDataProjectStaleError, CoverageDataStaleError, CoverageModel, Error, ErrorHandler, FileError, FileNotFoundError, FilePermissionError, MCPServer, ModeDetector, NotAFileError, OptionParserBuilder, PathRelativizer, PredicateEvaluator, ResultsetLoader, ResultsetNotFoundError, StalenessChecker, TableFormatter, UsageError
Constant Summary
collapse
- THREAD_CONTEXT_KEY =
:simplecov_mcp_context
- RESULTSET_CANDIDATES =
[
'.resultset.json',
'coverage/.resultset.json',
'tmp/.resultset.json'
].freeze
- DEFAULT_LOG_FILESPEC =
'./simplecov_mcp.log'
- VERSION =
'2.0.1'
Class Method Summary
collapse
Class Method Details
.active_log_file ⇒ Object
99
100
101
|
# File 'lib/simplecov_mcp.rb', line 99
def active_log_file
context.log_target
end
|
.active_log_file=(value) ⇒ Object
103
104
105
106
107
108
109
110
111
|
# File 'lib/simplecov_mcp.rb', line 103
def active_log_file=(value)
current = Thread.current[THREAD_CONTEXT_KEY]
Thread.current[THREAD_CONTEXT_KEY] = if current
current.with_log_target(value)
else
default_context.with_log_target(value)
end
value end
|
.context ⇒ Object
73
74
75
|
# File 'lib/simplecov_mcp.rb', line 73
def context
Thread.current[THREAD_CONTEXT_KEY] || default_context
end
|
.create_context(error_handler:, log_target: nil, mode: :library) ⇒ Object
77
78
79
80
81
82
83
|
# File 'lib/simplecov_mcp.rb', line 77
def create_context(error_handler:, log_target: nil, mode: :library)
AppContext.new(
error_handler: error_handler,
log_target: log_target.nil? ? default_context.log_target : log_target,
mode: mode
)
end
|
.default_log_file ⇒ Object
85
86
87
|
# File 'lib/simplecov_mcp.rb', line 85
def default_log_file
default_context.log_target
end
|
.default_log_file=(value) ⇒ Object
89
90
91
92
93
94
95
96
97
|
# File 'lib/simplecov_mcp.rb', line 89
def default_log_file=(value)
previous_default = default_context
@default_context = previous_default.with_log_target(value)
active = Thread.current[THREAD_CONTEXT_KEY]
if active.nil? || active.log_target == previous_default.log_target
Thread.current[THREAD_CONTEXT_KEY] = @default_context
end
value end
|
.error_handler ⇒ Object
113
114
115
|
# File 'lib/simplecov_mcp.rb', line 113
def error_handler
context.error_handler
end
|
.error_handler=(handler) ⇒ Object
117
118
119
|
# File 'lib/simplecov_mcp.rb', line 117
def error_handler=(handler)
@default_context = default_context.with_error_handler(handler)
end
|
.run(argv) ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/simplecov_mcp.rb', line 40
def run(argv)
full_argv = + argv
if ModeDetector.cli_mode?(full_argv)
CoverageCLI.new.run(full_argv)
else
require_relative 'simplecov_mcp/config_parser'
config = ConfigParser.parse(full_argv)
if config.log_file == 'stdout'
raise ConfigurationError,
'Logging to stdout is not permitted in MCP server mode as it interferes with ' \
"the JSON-RPC protocol. Please use 'stderr' or a file path."
end
handler = ErrorHandlerFactory.for_mcp_server(error_mode: config.error_mode)
context = create_context(error_handler: handler, log_target: config.log_file,
mode: :mcp)
with_context(context) { MCPServer.new(context: context).run }
end
end
|
.with_context(context) ⇒ Object