Skip to content

Instantly share code, notes, and snippets.

View alecslupu's full-sized avatar
🎯
Focusing

Alexandru Emil Lupu alecslupu

🎯
Focusing
View GitHub Profile
@alecslupu
alecslupu / wcag.js
Created February 10, 2026 01:15
wcag toolbar
/**
* WCAG 2.1 Checker - Manual Individual Check Triggers
* Run each accessibility check independently
*/
const WCAG_CHECKS = [
{
id: 'images',
name: 'Images',
icon: '🖼️',
16:04:41 shakapacker.1 |
16:04:41 shakapacker.1 | Error: File '../../resources/tsconfig.base.cjs.json' not found.
16:04:41 shakapacker.1 | at Be (/home/myUser/Sites/decidim/development_app/node_modules/get-tsconfig/dist/index.cjs:3:9201)
16:04:41 shakapacker.1 | at ie (/home/myUser/Sites/decidim/development_app/node_modules/get-tsconfig/dist/index.cjs:3:10245)
16:04:41 shakapacker.1 | at le (/home/myUser/Sites/decidim/development_app/node_modules/get-tsconfig/dist/index.cjs:3:10975)
16:04:41 shakapacker.1 | at Object.Le [as getTsconfig] (/home/myUser/Sites/decidim/development_app/node_modules/get-tsconfig/dist/index.cjs:3:11080)
16:04:41 shakapacker.1 | at Object.ESBuildLoader (/home/myUser/Sites/decidim/development_app/node_modules/esbuild-loader/dist/index.cjs:65:36)
16:04:41 shakapacker.1 | at LOADER_EXECUTION (/home/myUser/Sites/decidim/development_app/node_modules/loader-runner/lib/LoaderRunner.js:132:14)
16:04:41 shakapacker.1 | at runSyncOrAsync (/home/myUser/Sites/decidim/
@alecslupu
alecslupu / css27.yaml
Created October 13, 2023 23:40
CSS classes to be removed
---
- ".CodeMirror"
- ".CodeMirror-activeline-background"
- ".CodeMirror-code"
- ".CodeMirror-composing"
- ".CodeMirror-crosshair"
- ".CodeMirror-cursor"
- ".CodeMirror-dialog"
- ".CodeMirror-dialog-bottom"
- ".CodeMirror-dialog-top"
@alecslupu
alecslupu / accessibility.js
Created October 5, 2023 15:49
Accessibility Hack
import axe from "axe-core"
import icon from "src/decidim/icon"
const positionIndicators = () => {
$(".decidim-accessibility-indicator").each((_i, el) => {
const $indicator = $(el);
const $target = $indicator.data("accessibility-target");
const offset = $target.offset();
$indicator.css({
@alecslupu
alecslupu / logger.rb
Created May 10, 2022 03:48
rails I18n logger
module I18n
module Registry
protected
def lookup(locale, key, scope = [], options = {})
@log ||= Logger.new(File.join(Rails.root, 'log', 'i18n_registry.log'))
@log.info key
super
end
end
it 'should update rates when subject is accepted' do
previous_rate = subject.sale_rate
new_rate = rand(1..10).to_f
subject.update_attribute(:sale_rate, new_rate)
expect {
subject.accept
}.to change {
subject.sale_rate.round(2).to_f
}.by((new_rate - previous_rate).round(2).to_f)
var http = require("http"),
zlib = require("zlib"),
parse = require('csv-parse');
module.exports = {
getGzipped: function(url, callback) {
// buffer to store the streamed decompression
var buffer = [];
http.get(url, function(res) {
ruby -v ; rails -v ; rvm -v  22:25:30
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]
Rails 4.0.9
rvm 1.26.10 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
@alecslupu
alecslupu / _mapping
Last active August 29, 2015 14:14
Dummy object relation
{
"users": {
"mappings": {
"user": {
"properties": {
"user_forum_daily_stats": {
"type": "nested",
"include_in_parent": true,
"properties": {
"forum_id": {
@alecslupu
alecslupu / gist:22111497316d5a860cf8
Created January 10, 2015 13:15
EmailExclusionValidator
class EmailExclusionValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
unless value =~ email_regex
record.errors[attribute] << (options[:message] || "is not an email")
else
user_name = value.split('@').first
if forbidden_words.include?(user_name)
record.errors[attribute] << (options[:message] || "you cannot register with a user name")
end