The way that Javascript schedules timeouts and promise callbacks is more complicated than you think. This can be the reason...
One of the many useful features of TextMate is autocompletion of words. If I were in TextMate right now, I...
When deploying Rails applications you might have noticed that JS and CSS are not cached by all browsers.
Starting with Rails 7.1 the production logger is set to standard out. For applications running with opscomplete ensure to keep...
...not do that and if everything was fine before, maybe just restore the previous behavior by adding environment.loaders.delete('nodeModules') to your environment.js. If you used postcss-cssnext before, add it...
Testing file download links in an end-to-end test can be painful, especially with Selenium. The attached download_helpers.rb provides...
Note Don't use reruns as a mean to work around flaky tests. You should always try to fix those...
...of a datepicker or just the english one. Most often you want to import beside the default JS defined in the package.json the styles of the library.
Usually our code lives on GitLab, therefore our documentation for CI testing is extensive in this environment. If you are...
...JSXSpreadAttribute', 'JSXExpressionContainer', 'JSXOpeningElement', 'JSXClosingElement', 'JSXFragment', 'JSXOpeningFragment', 'JSXClosingFragment', 'JSXText', 'JSXEmptyExpression', 'JSXSpreadChild' ], offsetTernaryExpressions: true }], '@stylistic/key-spacing': ['error', { beforeColon: false, afterColon: true }], '@stylistic/keyword-spacing': ['error', { before: true, after: true }], '@stylistic/lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }], '@stylistic/multiline-ternary...
This are the steps I needed to do to add esbuild to an application that used the vanilla rails asset...
...equal $my-great-blue instead of blue. The reason is that custom property values behave differently and allow any kind of value to be assigned (thus not being bound to...
...a strategy to manually enable certain origins to interchange data. Because CSRF exploits browser behavior, its mitigation CORS is also implemented by browsers. CORS procedure The CORS workflow is basically...
If you're frequently switching between projects, you might be annoyed by RubyMines behavior of opening the last project on startup. After all loading a project takes a few seconds...
...a dialog to choose the project to open. This can be set under Appearance & Behavior > System Settings > Project > Reopen projects on startup. Switching to other projects A helpful dialog for...
Instantiating ActiveRecord objects comes expensive. To speed up things, you can choose a more direct way to talk to your...
Insomnia is a GUI tool to help you communicating with an API. There are also other tools to do this...
...to the original file Versions are generated based on the processed original file Callbacks (before/after) are applied to original file and each version by itself Under the hood, a version...
All direct child directories of app are automatically added to the eager- and autoload paths. They do NOT create a...
tl;dr Don't forget require 'English' if you use a named global such as $LAST_MATCH_INFO. Otherwise this...
In the following example the method update_offices_people_count won't be called when office_id changes, because it...
Chrome has a built-in utility to check performance and accessibility (and more) of your web app: Lighthouse.
When using virtual attributes, the attached trait can be useful to automatically copy errors from one attribute to another.
...live: true, host: '127.0.0.1' do watch(%r(^public/assets/esbuild_error_development\.txt$)) # Livereload + ESbuild is not the best combo # We want # - to reload CSS files without doing a full page reload
...this.lockCounter = 0 this.boundLockTurboStreamRendering = this.lockTurboStreamRendering.bind(this) this.boundStartLock = this.startLock.bind(this) this.boundStopLock = this.stopLock.bind(this) // Stream rendering document.addEventListener("turbo:before-stream-render", this.boundLockTurboStreamRendering) // Form submission document.addEventListener("turbo:submit-start", this.boundStartLock) document.addEventListener("turbo:submit-end...
...this.boundStopLock) // Network activity document.addEventListener("turbo:before-fetch-request", this.boundStartLock) document.addEventListener("turbo:before-fetch-response", this.boundStopLock) document.addEventListener("turbo:fetch-request-error", this.boundStopLock) // Frame rendering document.addEventListener("turbo:before-frame-render", this.boundStartLock) document.addEventListener...