Skip to content

Instantly share code, notes, and snippets.

View keymastervn's full-sized avatar
🥐
salted egg yolk croissant

Dat Le-Tien keymastervn

🥐
salted egg yolk croissant
  • Employment Hero
  • HCMC, Vietnam
  • 18:56 (UTC +07:00)
View GitHub Profile
@keymastervn
keymastervn / index.js
Created April 6, 2024 04:57
[slate-html-serializer] Slate 0.47 html->slate deserializer playground
// https://github.com/ianstormtaylor/slate/blob/a0b7976cb9a2812d8d96361e9993fe8853a2cc64/packages/slate-html-serializer/src/index.js
const jsdom = require("jsdom")
const { JSDOM } = jsdom
// global.DOMParser = new JSDOM().window.DOMParser
const Html = require('slate-html-serializer').default;
var input = `
<body>
@keymastervn
keymastervn / alias_matchers.md
Created December 12, 2023 13:05 — forked from JunichiIto/alias_matchers.md
List of alias matchers in RSpec 3

This list is based on aliases_spec.rb.

You can see also Module: RSpec::Matchers API.

matcher aliased to description
a_truthy_value be_truthy a truthy value
a_falsey_value be_falsey a falsey value
be_falsy be_falsey be falsy
a_falsy_value be_falsey a falsy value
@keymastervn
keymastervn / cleansidekiq-unique-jobs.rb
Last active November 30, 2023 04:25
Clean up sidekiq uniq jobs
# https://github.com/mhenrixon/sidekiq-unique-jobs/blob/v6.x/lib/sidekiq_unique_jobs/util.rb#L8
SidekiqUniqueJobs::Util.keys("uniquejobs:*")
SidekiqUniqueJobs::Util.keys_with_ttl("uniquejobs:*")
{
"uniquejobs:5165cb935c16788b6fd647966e255de2:GRABBED" => 586407,
"uniquejobs:5165cb935c16788b6fd647966e255de2:EXISTS" => 586407,
"uniquejobs:344892e038f09a5535bb5ed5971a4a16:GRABBED" => 599625,
"uniquejobs:344892e038f09a5535bb5ed5971a4a16:EXISTS" => 599625
}
@keymastervn
keymastervn / bm__JSON.parse_HWIA_deep_symbolize_keys_symbolized_name.rb
Last active April 28, 2023 08:25
bm__JSON.parse_HWIA_deep_symbolize_keys_symbolized_name
# frozen_string_literal: true
require 'benchmark/ips'
require 'benchmark/memory'
require 'active_support/all'
TIMES = 50_000
HASH = {
"colour" => "red",
@keymastervn
keymastervn / bm__redis_hiredis.rb
Last active April 14, 2022 10:21 — forked from jgaskins/benchmark.rb
Benchmarking redis gem vs hiredis
require 'bundler/inline'
gemfile true do
source 'https://rubygems.org'
gem 'redis'
gem 'hiredis'
gem 'benchmark-ips'
end
require 'benchmark'
require 'benchmark/ips'
Benchmark.ips do |b|
hash = {
:type => "Employee",
:first_name => "Mr First",
:last_name => "Last Name",
:account_email => "example_person@gmail.com",
:employing_entity => "XXX Property Services Pty Ltd",
:employee_code => nil,
@keymastervn
keymastervn / bm_ar_find_in_batches_strategy.rb
Created February 22, 2022 08:08
benchmark activerecord mem / ips find_in_batches
require 'benchmark'
require 'benchmark/ips'
require 'benchmark/memory'
def select
Member.select(:id).find_in_batches(batch_size: 10) do |ids|
puts ids.map(&:id).join(',')
end
end
@keymastervn
keymastervn / ruby_meta.md
Created January 18, 2022 08:24 — forked from jamesyang124/ruby_meta.md
Ruby meta programming

#!/bin/ruby --verion => 2.0.0-p353

Self

In Ruby, self is a special variable that always references the current object.

  • Inside class or module definition, self refer to the Class or Module object.
  • Inside instance method, self refer to future instance object.
  • Inside class method, self refer to the class.i
@keymastervn
keymastervn / haml_legacy_fe_codeowners.rb
Last active July 26, 2021 09:05
Get haml literal string with CODEOWNERS
require 'code_owners'
require 'open3'
require 'pp'
UNOWNED = 'UNOWNED'
# {:file=>"vendor/assets/stylesheets/token-input.css", :owner=>"UNOWNED", :line=>nil, :pattern=>nil}
@codeowners = CodeOwners.ownerships
def syscall(*cmd)
@keymastervn
keymastervn / bm__dir_with_cache.rb
Last active May 16, 2021 10:01
Testing if rubocop `smart_path` is efficient in large number of offenses
require 'benchmark/ips'
def dir_no_cache
Dir.pwd
end
def dir_cache
@dir_cache ||= Dir.pwd
end