Skip to content

Instantly share code, notes, and snippets.

View pootsbook's full-sized avatar

Philip Poots pootsbook

  • ClubCollect
  • Alphen aan den Rijn, NL
View GitHub Profile
pootsbook / generic_form_field_rendering.rb
Last active April 15, 2021 21:35
An attempt at rendering form fields in a generic way from a form representation as data.
require "scrivener"
require "hypertext"
require "hypertext/dsl"
class RegistrationForm < Scrivener
attr_accessor :name
attr_accessor :email
attr_accessor :message
def validate
pootsbook /
Last active April 8, 2021 20:13
Sew with Hypertext DSL (.rb extension on templates only for syntax highlighting)
require "hypertext"
require "hypertext/dsl"
class Hypertext
def append(fragment)
@dom << fragment
class DSL
def append(fragment)
pootsbook / html_document.rb
Created March 18, 2021 03:41
Fusion of HTMLDocument and Hypertext
class HTMLDocument
"'" => '&#39;',
'&' => '&amp;',
'"' => '&quot;',
'<' => '&lt;',
'>' => '&gt;',
def initialize(indent = " ", level = 0)
class HTMLDocument
area base br col embed hr img input
link meta param source track wbr
def initialize
@doc = ""
yield self if block_given?
class HTMLDocument
def initialize
@doc = ""
yield self if block_given?
def el(type, attrs={})
case type
when :text
class HTMLDoc
def initialize
@node_id = 0
@parent_id = 0
@doc = []
yield self if block_given?
def el(type, attributes = {})
pootsbook /
Last active October 23, 2020 18:34
LiveView Chat
// We need to import the CSS so that webpack will load it.
// The MiniCssExtractPlugin is used to separate it out into
// its own CSS file.
import "../css/app.scss"
// webpack automatically bundles all modules in your
// entry points. Those entry points can be configured
// in "webpack.config.js".
// Import deps with the dep name or local files with a relative path, for example:

Keybase proof

I hereby claim:

  • I am pootsbook on github.
  • I am pootsbook ( on keybase.
  • I have a public key whose fingerprint is 2E2E 008E CD35 37FE 46D2 67AB E74F 6DFC 04AE D9B7

To claim this, I am signing this object: