megrez 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/sig/megrez.rbs ADDED
@@ -0,0 +1,208 @@
1
+ module Megrez
2
+ VERSION: String
3
+
4
+ type json = nil | bool | Integer | Float | String | Array[json] | Hash[String | Symbol, json]
5
+ type object = Hash[String | Symbol, json]
6
+ type state = :initialized | :configuring | :running | :stopped | :terminated
7
+
8
+ class Error < StandardError
9
+ end
10
+
11
+ class Timeout < Error
12
+ end
13
+
14
+ class Cancelled < Error
15
+ end
16
+
17
+ class AdapterError < Error
18
+ attr_reader command: String
19
+ attr_reader body: object?
20
+ def initialize: (String command, String message, ?object? body) -> void
21
+ end
22
+
23
+ class Breakpoint
24
+ attr_reader id: Integer?
25
+ attr_reader verified: bool
26
+ attr_reader source: object?
27
+ attr_reader line: Integer?
28
+ attr_reader column: Integer?
29
+ attr_reader message: String?
30
+ def self.new: (Integer?, bool, object?, Integer?, Integer?, String?) -> Breakpoint
31
+ | (id: Integer?, verified: bool, source: object?, line: Integer?, column: Integer?, message: String?) -> Breakpoint
32
+ def with: (?id: Integer?, ?verified: bool, ?source: object?, ?line: Integer?, ?column: Integer?, ?message: String?) -> Breakpoint
33
+ end
34
+
35
+ class SourceBreakpoint
36
+ attr_reader line: Integer
37
+ attr_reader column: Integer?
38
+ attr_reader condition: String?
39
+ attr_reader hit_condition: String?
40
+ attr_reader log_message: String?
41
+ def self.new: (Integer, Integer?, String?, String?, String?) -> SourceBreakpoint
42
+ | (line: Integer, column: Integer?, condition: String?, hit_condition: String?, log_message: String?) -> SourceBreakpoint
43
+ def with: (?line: Integer, ?column: Integer?, ?condition: String?, ?hit_condition: String?, ?log_message: String?) -> SourceBreakpoint
44
+ end
45
+
46
+ class StackFrame
47
+ attr_reader id: Integer
48
+ attr_reader name: String
49
+ attr_reader source: object?
50
+ attr_reader line: Integer
51
+ attr_reader column: Integer
52
+ attr_reader presentation_hint: String?
53
+ def self.new: (Integer, String, object?, Integer, Integer, String?) -> StackFrame
54
+ | (id: Integer, name: String, source: object?, line: Integer, column: Integer, presentation_hint: String?) -> StackFrame
55
+ def with: (?id: Integer, ?name: String, ?source: object?, ?line: Integer, ?column: Integer, ?presentation_hint: String?) -> StackFrame
56
+ end
57
+
58
+ class Scope
59
+ attr_reader name: String
60
+ attr_reader variables_reference: Integer
61
+ attr_reader expensive: bool
62
+ attr_reader presentation_hint: String?
63
+ def self.new: (String, Integer, bool, String?) -> Scope
64
+ | (name: String, variables_reference: Integer, expensive: bool, presentation_hint: String?) -> Scope
65
+ def with: (?name: String, ?variables_reference: Integer, ?expensive: bool, ?presentation_hint: String?) -> Scope
66
+ end
67
+
68
+ class Variable
69
+ attr_reader name: String
70
+ attr_reader value: String
71
+ attr_reader type: String?
72
+ attr_reader variables_reference: Integer
73
+ attr_reader named_count: Integer?
74
+ attr_reader indexed_count: Integer?
75
+ attr_reader memory_reference: String?
76
+ def self.new: (String, String, String?, Integer, Integer?, Integer?, String?) -> Variable
77
+ | (name: String, value: String, type: String?, variables_reference: Integer, named_count: Integer?, indexed_count: Integer?, memory_reference: String?) -> Variable
78
+ def with: (?name: String, ?value: String, ?type: String?, ?variables_reference: Integer, ?named_count: Integer?, ?indexed_count: Integer?, ?memory_reference: String?) -> Variable
79
+ end
80
+
81
+ class ThreadInfo
82
+ attr_reader id: Integer
83
+ attr_reader name: String
84
+ def self.new: (Integer, String) -> ThreadInfo
85
+ | (id: Integer, name: String) -> ThreadInfo
86
+ def with: (?id: Integer, ?name: String) -> ThreadInfo
87
+ end
88
+
89
+ module Protocol
90
+ MAX_COLLECTION: Integer
91
+ MAX_DEPTH: Integer
92
+ def self.validate_message: (untyped message) -> object
93
+ def self.validate_outbound: [A] (A value) -> A
94
+ def self.validate_json: (json value, Integer depth) -> void
95
+ def self.object: (untyped value, String name) -> object
96
+ def self.collection: [A] (untyped value, String name) -> Array[A]
97
+ def self.string: (untyped value, String name, ?empty: bool, ?max: Integer) -> String
98
+ def self.integer: (untyped value, String name) -> Integer
99
+ def self.uint: (untyped value, String name, ?positive: bool) -> Integer
100
+ def self.boolean: (untyped value, String name) -> bool
101
+ def self.optional_string: (untyped value, String name, ?empty: bool, ?max: Integer) -> String?
102
+ def self.optional_uint: (untyped value, String name) -> Integer?
103
+ def self.deep_freeze: [A] (A value) -> A
104
+ end
105
+
106
+ class Future
107
+ class Subscription
108
+ def initialize: () { () -> untyped } -> void
109
+ def detach: () -> untyped
110
+ end
111
+ attr_reader id: Integer
112
+ attr_reader callback_errors: Array[Error]
113
+ def initialize: (Integer id, ?on_error: ^(Error) -> untyped) ?{ (Integer) -> untyped } -> void
114
+ def fulfill: (?untyped value, ?error: Exception?) -> Future?
115
+ def then: () { (untyped, Exception?) -> untyped } -> Future
116
+ def on_complete: () { (untyped, Exception?) -> untyped } -> Subscription
117
+ def done?: () -> bool
118
+ def await: (?timeout: Numeric?) -> untyped
119
+ def cancel: () -> bool
120
+ end
121
+
122
+ class Transport
123
+ MAX_MESSAGE: Integer
124
+ MAX_HEADER_LINE: Integer
125
+ MAX_HEADERS: Integer
126
+ attr_reader stderr_lines: Array[String]
127
+ attr_reader pid: Integer?
128
+ def self.stdio: (command: Array[String], ?env: Hash[String, String?], ?cwd: String?) -> Transport
129
+ def self.tcp: (host: String, port: Integer, ?connect_timeout: Numeric) -> Transport
130
+ def self.valid_environment?: (untyped env) -> bool
131
+ def self.read_message: (IO | StringIO io) -> object?
132
+ def self.frame: (object message) -> String
133
+ def initialize: (IO input, IO output, ?process: Process::Waiter?, ?stderr: IO?, ?closeables: Array[IO]) -> void
134
+ def listen: () { (object?, Exception?) -> untyped } -> Transport
135
+ def write: (object message) -> nil
136
+ def alive?: () -> bool
137
+ def close: () -> nil
138
+ end
139
+
140
+ class Session
141
+ attr_reader transport: Transport
142
+ def self.stdio: (command: Array[String], ?env: Hash[String, String?], ?cwd: String?, ?dispatch: ^() { () -> untyped } -> untyped) -> Session
143
+ def self.tcp: (host: String, port: Integer, ?dispatch: ^() { () -> untyped } -> untyped, ?connect_timeout: Numeric) -> Session
144
+ def initialize: (Transport transport, ?dispatch: ^() { () -> untyped } -> untyped) -> void
145
+ def start: (adapter_id: String, ?lines_start_at_1: bool, ?columns_start_at_1: bool, ?path_format: String, ?timeout: Numeric) -> Hash[String, json]
146
+ def request: (String | Symbol command, ?object arguments) -> Future
147
+ def on: (String | Symbol event) { (object body) -> untyped } -> Proc
148
+ def on_request: (String | Symbol command) { (object arguments) -> object? } -> Proc
149
+ def capabilities: () -> Hash[String, json]
150
+ def state: () -> state
151
+ def generation: () -> Integer
152
+ def errors: () -> Array[Error]
153
+ def close: () -> nil
154
+
155
+ def launch: (object configuration) -> Future
156
+ def attach: (object configuration) -> Future
157
+ def configuration_done: () -> Future
158
+ def disconnect: (?terminate: bool, ?restart: bool) -> Future
159
+ def set_breakpoints: (String source_path, Array[SourceBreakpoint] breakpoints) -> Future
160
+ def set_function_breakpoints: (Array[String] names) -> Future
161
+ def set_exception_breakpoints: (Array[String] filters, ?options: Array[object]) -> Future
162
+ def set_data_breakpoints: (Array[object] descriptors) -> Future
163
+ def continue: (Integer thread_id, ?all: bool) -> Future
164
+ def step_over: (Integer thread_id, ?granularity: :statement | :line | :instruction) -> Future
165
+ def step_in: (Integer thread_id, ?target_id: Integer?) -> Future
166
+ def step_out: (Integer thread_id) -> Future
167
+ def pause: (Integer thread_id) -> Future
168
+ def restart_frame: (Integer frame_id) -> Future
169
+ def restart: (?object arguments) -> Future
170
+ def terminate: () -> Future
171
+ def threads: () -> Future
172
+ def stack_trace: (Integer thread_id, ?start: Integer, ?levels: Integer) -> Future
173
+ def scopes: (Integer frame_id) -> Future
174
+ def variables: (Integer reference, ?start: Integer?, ?count: Integer?, ?filter: (:indexed | :named)?) -> Future
175
+ def set_variable: (Integer reference, String name, String value) -> Future
176
+ def set_expression: (String expression, String value, ?frame_id: Integer?) -> Future
177
+ def evaluate: (String expression, ?frame_id: Integer?, ?context: String) -> Future
178
+ def completions: (String text, Integer column, ?frame_id: Integer?) -> Future
179
+ def source: (Integer reference) -> Future
180
+ end
181
+
182
+ module Testing
183
+ class FakeAdapter
184
+ DEFAULT_CAPABILITIES: Hash[String, json]
185
+ attr_reader messages: Array[object]
186
+ def self.command: () -> Array[String]
187
+ def self.run_stdio: () -> untyped
188
+ def initialize: (?responses: Hash[String | Symbol, untyped], ?capabilities: Hash[String, json], ?variable_count: Integer) -> void
189
+ def transport: () -> FakeTransport
190
+ def attach: () { (Array[object]) -> untyped } -> Proc
191
+ def detach: (Proc sink) -> untyped
192
+ def emit: (String | Symbol event, ?object body) -> object
193
+ def request_client: (String | Symbol command, ?object arguments) -> object
194
+ def dispatch: (object message) -> Array[object]
195
+ def serve: (IO input, ?IO output) -> untyped
196
+ end
197
+
198
+ class FakeTransport < Transport
199
+ attr_reader stderr_lines: Array[String]
200
+ attr_reader pid: Integer
201
+ def initialize: (FakeAdapter adapter) ?{ (object?, Exception?) -> untyped } -> void
202
+ def listen: () { (object?, Exception?) -> untyped } -> FakeTransport
203
+ def write: (object message) -> nil
204
+ def alive?: () -> bool
205
+ def close: () -> nil
206
+ end
207
+ end
208
+ end
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: megrez
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Yudai Takada
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies: []
12
+ email:
13
+ - t.yudai92@gmail.com
14
+ executables: []
15
+ extensions: []
16
+ extra_rdoc_files: []
17
+ files:
18
+ - CHANGELOG.md
19
+ - LICENSE.txt
20
+ - README.md
21
+ - docs/adr/000-template.md
22
+ - docs/adr/001-generation-safe-references.md
23
+ - docs/adr/README.md
24
+ - lib/megrez.rb
25
+ - lib/megrez/future.rb
26
+ - lib/megrez/protocol.rb
27
+ - lib/megrez/results.rb
28
+ - lib/megrez/session.rb
29
+ - lib/megrez/session/inspection.rb
30
+ - lib/megrez/session/messages.rb
31
+ - lib/megrez/session/requests.rb
32
+ - lib/megrez/testing.rb
33
+ - lib/megrez/testing/fake_adapter.rb
34
+ - lib/megrez/testing/fake_transport.rb
35
+ - lib/megrez/transport.rb
36
+ - lib/megrez/transport/framing.rb
37
+ - lib/megrez/version.rb
38
+ - sig/megrez.rbs
39
+ homepage: https://github.com/noxdea/megrez
40
+ licenses:
41
+ - MIT
42
+ metadata:
43
+ source_code_uri: https://github.com/noxdea/megrez
44
+ changelog_uri: https://github.com/noxdea/megrez/blob/main/CHANGELOG.md
45
+ allowed_push_host: https://rubygems.org
46
+ rubygems_mfa_required: 'true'
47
+ rdoc_options: []
48
+ require_paths:
49
+ - lib
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '3.1'
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ requirements: []
61
+ rubygems_version: 4.0.16
62
+ specification_version: 4
63
+ summary: Pure Ruby Debug Adapter Protocol client
64
+ test_files: []