Lowtype: Elegant Types in Ruby
13 days ago
- #ruby
- #metaprogramming
- #type-checking
- LowType introduces 'type expressions' in Ruby method arguments for runtime type checking.
- Supports default values with the pipe symbol (|) syntax, e.g., `greeting: String | 'Hello'`.
- Enables typed enumerables like `Array[String]` and `Hash[String => Integer]`.
- Allows return type specification with `-> { T }` syntax after method parameters.
- Provides typed instance variables via `type_reader`, `type_writer`, and `type_accessor` methods.
- Includes runtime type checking for local variables using the `type()` method.
- Configurable via `LowType.configure` for error handling, output modes, and deep type checking.
- Compatible with frameworks like Sinatra and includes Rubocop configuration for syntax support.
- Philosophy emphasizes minimal DSL, duck typing, and optional type enforcement for clarity and safety.