# Ruby Wishlist ## Removals * finalize! method for classes * Remove constant_finding/loading at runtime, it always breaks. ## Module.freeze Remove the ability to dynamically change code at runtime ```ruby module A # .. def b @b = "hello" # this breaks end end.freeze ``` this is obviously only for "functional module" usage of `A`. ## Remove all bang methods merge! ## Implicit Boolean result = Result.new(valid: true) if result ... # the if should call result.to_bool ## wrong constant # when referencing `A::B`, don't simply assume that I might've been meaning `::B` but throw a fucking exception and don't trick me. ## Procs without context (faster than procs with context and probably method calls) function(*) {} # as discussed here: https://twitter.com/headius/status/791377081347088384 ## Namespace class A class B < A end end # i can now do module A::B::M end # but that would be great: namespace A::B # i don't have to know if this is a class, or module, what the superclass is, and so on. module M end end # i know that this works, but it sucks A::B.class_eval do module M end end ## Instance Variable Arguments def (@options={}) ## pass more options to ::included include Module, awesome: true module Module def self.included(base, options) end ## Immutable "methods" imdef something(a, b) # when calling something all args are automatically immutable