Phlex is a framework for building fast, reusable, testable views in pure Ruby.
Better developer experience 💃
Phlex views are “plain old Ruby objects” — templates are methods and HTML tags are method calls. If you know how to define a class with a method that calls another method, you know how to use Phlex.
Better safety 🥽
Phlex view templates render in an isolated execution context where only the instance variables and methods for the specific view are exposed.
Better performance 🔥
Rendering a Phlex view is significantly faster than rendering an ActionView partial or ViewComponent component.
What’s a view?
Views are Ruby objects that represent a piece of output from your app. We plan to support various different types of output — such as JSON, XML and SVG — but for now, we’re focusing on HTML.
Views can have an
initialize method that dictates which arguments the view accepts and is responsible for setting everything up — usually assigning instance variables for use in the template.
The template is a special method that’s called when rendering a view. The
template method determines the output of the view by calling methods that append to the output.
Instance methods perform important calculations or encapsulate a small part of the template. Public instance methods can expose an interface that’s yielded to the parent when rendering.