Hacker News new | past | comments | ask | show | jobs | submit login
Cutting Corners or Why Rails May Kill Ruby (solnic.eu)
31 points by Pdincau on June 6, 2015 | hide | past | favorite | 4 comments



I recently learned that `forty_two` [0] is monkeypatched into Array of all places by Rails. More or less entirely as a meta joke.

[0] http://apidock.com/rails/Array/forty_two


What if you could require() your patch just where you needed it? You'd have the utility and elegance of the simple solution, without abusing the global namespace.

That's exactly what you'd do in Scala.

  implicit class HtmlHelpers(node: Node) {

    def id: String = node \ "@id" text

    def name: String = node \ "@name" text

    def cssClass: String = node \ "@class" text

    def href: String = node \ "@href" text
  }
And I haven't abused anything. Whenever I need it, even within another method, I can just import until.HtmlHelpers.


refines are coming soon into ruby-core (2.2.0 IIRC).


While I agree with the sentiment, I don't believe it's necessarily cutting corners. Rather, it's by design. Rails values "elegance," and leans towards monolithism. Monkey patching is the means to those ends.

So even though I agree with you, I think it's going to be very difficult changing the philosophy of the Rails' ecosystem.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: