Skip to content

Commit 086ba5e

Browse files
justin808claude
andcommitted
Add RBS type signatures for Dev module classes
This commit adds comprehensive RBS type signatures for all classes in the `lib/react_on_rails/dev/` module and updates the Steepfile to enable type checking for these files. Files added: - sig/react_on_rails/dev/file_manager.rbs - sig/react_on_rails/dev/pack_generator.rbs - sig/react_on_rails/dev/process_manager.rbs - sig/react_on_rails/dev/server_manager.rbs Why this matters: The recent NameError in PackGenerator (uninitialized constant ReactOnRails::PackerUtils) highlighted that these files weren't being type-checked. While RBS/Steep cannot catch missing require statements or load order issues, having type signatures for these classes will: 1. Catch type-related errors during development 2. Provide better IDE autocomplete and documentation 3. Ensure method signatures match their implementations 4. Prevent future type-related regressions Note: RBS validation passes. Steep shows some warnings for external constants (Rails, Rake, Shakapacker) which is expected for files that integrate with external frameworks. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 485d0c0 commit 086ba5e

File tree

5 files changed

+99
-0
lines changed

5 files changed

+99
-0
lines changed

Steepfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ target :lib do
2828
check "lib/react_on_rails.rb"
2929
check "lib/react_on_rails/configuration.rb"
3030
check "lib/react_on_rails/controller.rb"
31+
check "lib/react_on_rails/dev/file_manager.rb"
32+
check "lib/react_on_rails/dev/pack_generator.rb"
33+
check "lib/react_on_rails/dev/process_manager.rb"
34+
check "lib/react_on_rails/dev/server_manager.rb"
3135
check "lib/react_on_rails/git_utils.rb"
3236
check "lib/react_on_rails/helper.rb"
3337
check "lib/react_on_rails/packer_utils.rb"
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module ReactOnRails
2+
module Dev
3+
class FileManager
4+
def self.cleanup_stale_files: () -> bool
5+
6+
private
7+
8+
def self.cleanup_overmind_sockets: () -> bool
9+
def self.cleanup_rails_pid_file: () -> bool
10+
def self.overmind_running?: () -> bool
11+
def self.process_running?: (Integer) -> bool
12+
def self.remove_file_if_exists: (String, String) -> bool
13+
end
14+
end
15+
end
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
module ReactOnRails
2+
module Dev
3+
class PackGenerator
4+
def self.generate: (?verbose: bool) -> void
5+
6+
private
7+
8+
def self.run_pack_generation: (?silent: bool) -> bool
9+
def self.should_run_directly?: () -> bool
10+
def self.rails_available?: () -> bool
11+
def self.run_rake_task_directly: (?silent: bool) -> bool
12+
def self.load_rake_tasks: () -> void
13+
def self.prepare_rake_task: () -> untyped
14+
def self.capture_output: (bool) { () -> bool } -> bool
15+
def self.handle_rake_error: (Exception, bool) -> void
16+
def self.run_via_bundle_exec: (?silent: bool) -> (bool | nil)
17+
end
18+
end
19+
end
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
module ReactOnRails
2+
module Dev
3+
class ProcessManager
4+
VERSION_CHECK_TIMEOUT: Integer
5+
6+
def self.installed?: (String) -> bool
7+
def self.ensure_procfile: (String) -> void
8+
def self.run_with_process_manager: (String) -> void
9+
10+
private
11+
12+
def self.installed_in_current_context?: (String) -> bool
13+
def self.version_flags_for: (String) -> Array[String]
14+
def self.run_process_if_available: (String, Array[String]) -> bool
15+
def self.run_process_outside_bundle: (String, Array[String]) -> bool
16+
def self.process_available_in_system?: (String) -> bool
17+
def self.with_unbundled_context: () { () -> untyped } -> untyped
18+
def self.show_process_manager_installation_help: () -> void
19+
def self.valid_procfile_path?: (String) -> bool
20+
end
21+
end
22+
end
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
module ReactOnRails
2+
module Dev
3+
class ServerManager
4+
type mode = :development | :production_like | :static | :hmr
5+
6+
def self.start: (mode, String?, ?verbose: bool, ?route: String?, ?rails_env: String?) -> void
7+
def self.kill_processes: () -> void
8+
def self.development_processes: () -> Hash[String, String]
9+
def self.kill_running_processes: () -> bool
10+
def self.find_process_pids: (String) -> Array[Integer]
11+
def self.terminate_processes: (Array[Integer]) -> void
12+
def self.kill_port_processes: (Array[Integer]) -> bool
13+
def self.find_port_pids: (Integer) -> Array[Integer]
14+
def self.cleanup_socket_files: () -> bool
15+
def self.print_kill_summary: (bool) -> void
16+
def self.show_help: () -> void
17+
def self.run_from_command_line: (?Array[String]) -> void
18+
19+
private
20+
21+
def self.help_usage: () -> String
22+
def self.help_commands: () -> String
23+
def self.help_options: () -> String
24+
def self.help_customization: () -> String
25+
def self.help_mode_details: () -> String
26+
def self.help_troubleshooting: () -> String
27+
def self.run_production_like: (?_verbose: bool, ?route: String?, ?rails_env: String?) -> void
28+
def self.run_static_development: (String, ?verbose: bool, ?route: String?) -> void
29+
def self.run_development: (String, ?verbose: bool, ?route: String?) -> void
30+
def self.print_server_info: (String, Array[String], ?Integer, ?route: String?) -> void
31+
def self.print_procfile_info: (String, ?route: String?) -> void
32+
def self.procfile_port: (String) -> Integer
33+
def self.box_border: (Integer) -> String
34+
def self.box_bottom: (Integer) -> String
35+
def self.box_empty_line: (Integer) -> String
36+
def self.format_box_line: (String, Integer) -> String
37+
end
38+
end
39+
end

0 commit comments

Comments
 (0)