Skip to content

Instantly share code, notes, and snippets.

@georgekettle
georgekettle / builder.rb
Created February 6, 2024 04:47
PhlexUI::Form::Builder
# frozen_string_literal: true
module PhlexUI
class Form::Builder < Base
# include Phlex::Rails::Helpers::FormAuthenticityToken
def initialize(model: nil, scope: nil, url: nil, format: nil, method: :post, **attrs)
@object = model
@scope = scope
@url = url
@georgekettle
georgekettle / PhlexMailerLayout.rb
Last active February 25, 2024 22:27
Phlex Mailer layout
You'll need to update the following variables:
- ENV['APP_NAME']
- ENV['COMPANY_ADDRESS']
- ENV['HOST']
Make sure you have app/assets/images/logo.svg for this line:
helpers.image_url('logo.svg')
And also update the CSS variables to match your color scheme:
:root {
@georgekettle
georgekettle / attribute_merger.rb
Created November 10, 2023 20:39
AttributeMerger for Phlex Components
class AttributeMerger
attr_reader :default_attrs, :user_attrs
OVERRIDE_KEY = '!'.freeze
def initialize(default_attrs, user_attrs)
@default_attrs = flatten_hash(default_attrs)
@user_attrs = flatten_hash(user_attrs)
end
def call
.animated {
animation-duration: 0.2s;
animation-fill-mode: forwards;
}
@keyframes fadeIn {
from {
// transform: scale(0.99);
opacity: 0;
}
@georgekettle
georgekettle / 20210204090708_create_teams.rb
Created February 4, 2021 00:10
ActiveRecord associations & Validations
class CreateTeams < ActiveRecord::Migration[6.0]
def change
create_table :teams do |t|
t.string :name
t.timestamps
end
end
end
# User stories:
# -list tasks
# -add a task
# -mark a task as done
# -remove a task
# MVC(R)
# model
# view
# controller
@georgekettle
georgekettle / database.csv
Last active January 19, 2021 08:44
Christmas gift list
name bought price
macbook pro false 20
handbag false 35
Long Pendant Sterling Silver Necklace false 50
# TODO: you can build your calculator program here!
# create a calculator
require 'colorize'
def prompt(text)
puts text.yellow
end
def addition(first, last)
first + second
def acronymize(text)
# 'text' is a string
# we need access to each word (so lets break it up) => array
words = text.split # we have an array now 👍
# get the first letter of each --> join them --> capitalize the whole word
words.map{|word| word[0]}.join.upcase
end
# 'situation normal all fucked up' => snafu
p acronymize('situation normal all fucked up')
@georgekettle
georgekettle / days_before_xmas.rb
Created January 13, 2021 00:53
ruby_basics_livecode
require 'date'
# Livecode
def days_until_christmas
# return the number of days until net christmas
today = Date.today
current_year = Date.today.year
christmas = Date.new(current_year, 12, 25)
# subtract to get the amount of days b/w
christmas = christmas.next_year if today > christmas