Skip to content

Instantly share code, notes, and snippets.

@skryukov
skryukov / application_view_component.rb
Last active March 6, 2024 20:58 — forked from palkan/application_view_component.rb
[ViewComponent] html_option
# From https://evilmartians.com/chronicles/viewcomponent-in-the-wild-embracing-tailwindcss-classes-and-html-attributes
class ApplicationViewComponent < ViewComponentContrib::Base
# Move default attrs to a constants so we can re-use it
EMPTY_ATTRS = {}.freeze
class << self
def html_option(name, default: nil, **opts)
if default
opts[:type] = proc { default.merge(_1) }
end
@skryukov
skryukov / blueprinter_benchmark.rb
Last active June 7, 2022 14:02 — forked from midhun-thimmapuram/blueprinter_benchmark.rb
blueprinter benchmark comparisons
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'oj'
gem 'benchmark-ips', require: 'benchmark/ips'
gem 'kalibera'
gem 'benchmark-memory', require: 'benchmark/memory'
gem 'activesupport'
@skryukov
skryukov / delayed_debug.rb
Last active January 29, 2022 18:11 — forked from brainopia/delayed_debug.rb
Non blocking delayed debugger for production
module Developer
extend self
delegate :establish_connection, :clear_all_connections!, :to => ActiveRecord::Base
def delayed_debug(scope)
detach_process do
close_io_objects
establish_connection
setup_process_name
notify_developers

Keybase proof

I hereby claim:

  • I am skryukov on github.
  • I am skryukov (https://keybase.io/skryukov) on keybase.
  • I have a public key ASAYPasBc5z-xP_vAFlfvPH1f4JhG4E6aPuAhRD8U9wLEQo

To claim this, I am signing this object: