docs/pages/index.rb in phlex-0.3.2 vs docs/pages/index.rb in phlex-0.4.0

- old
+ new

@@ -1,37 +1,26 @@ # frozen_string_literal: true module Pages class Index < ApplicationPage def template - render Layout.new(title: "Introduction to Phlex") do + render Layout.new(title: "Introduction to Phlex, a fast, object-oriented view framework for Ruby") do render Markdown.new(<<~MD) # Introduction Phlex is a framework for building fast, reusable, testable views in pure Ruby. - Each view object is an instance of a specific class of view. The nav-bar, for example, might contain three different nav-bar-items, but they’re all instances of the nav-bar-item class. This class, then, manifests everything there is to know about nav bar items in general. It models: + ## Better developer experience 💃 - 1. the **data** attributes being represented — perhaps url and label; - 2. a **template**, which dictates how the data should be represented with HTML markup and CSS classes; and - 3. **logic**, conditions, or calculations on the data — perhaps a predicate method to determine whether the link is active or not. + Phlex views are plain old Ruby objects. View classes are just Ruby classes, templates are just methods, and HTML tags are just method calls. If you know how to define a method that calls another method, you pretty much already know how to use Phlex. - # Why use Phlex? - - ## Better developer experience 🎉 - - You don’t need to introduce a new language like Slim, HAML, or ERB. Phlex views are plain old Ruby objects: view classes are just Ruby classes, templates are just methods, and HTML tags are just method calls. If you know how to define a method that calls another method, you pretty much already know how to use Phlex. - ## Better safety 🥽 - Rails partials can implicitly depend on instance variables from a controller or view. This happens more often than you might think when copying code into a new partial extraction. If the partial is then rendered in a different context or the instance variable’s meaning changes, things can break quite severely without warning. - Conversely, Phlex view templates render in an isolated execution context where only the instance variables and methods for the specific view are exposed. + Phlex view templates render in an isolated execution context where only the instance variables and methods for the specific view are exposed. - ## Better performance 🚀 + ## Better performance 🔥 - Phlex is ~4.35× faster than ActionView and ~2× faster than ViewComponent. Phlex views are also streamable. - - Rails apps typically spend 40-80% of the response time rendering views, so this could be a significant factor in overall app performance. + Rendering a Phlex view is ~4.35× faster than an ActionView partial and ~2× faster than ViewComponent component. MD end end end end