...new node feature that automatically installs yarn (and pnpm) for you when it is called. It allows you to specify a desired yarn version inside package.json and makes sure the...
...Node.js starting from 14.19.0 and 16.9.0 but is disabled by default. To enable it, call: corepack enable The yarn command will be available afterwards. Note To start a new project...
...handled before e.g. a page.refresh statement returns. That that this also applies to wrapped calls like accept_confirm { page.refresh }. Recommendation We do not recommend BiDi mode as a default because...
...constants, constantize and safe_constantize. Neither is safe for untrusted user input. Before you call either method you must validate the input string against an allowlist. The only difference between...
prettier calls itself an opinionated code formatter. I recommend using it for your JavaScript and TypeScript code. prettier only concerns itself with the formatting of your JavaScript (and also some...
...routes, so we can write it as follows. class RackLoggerWithSilencedActiveStorageRoutes < Rails::Rack::Logger def call(env) if env['PATH_INFO']&.start_with?("#{Rails.configuration.active_storage.routes_prefix}/") Rails.logger.silence do super end else
...element or set scrollTop on both and . Finding the scrolling element Your JavaScript can call document.scrollingElement to retrieve the scrollable element for the main viewport. On Chrome, Firefox and modern...
...span&t;bar</span>' Bad The solution is not to call html_safe on the joined array and if you thought it would be, you don't understand...
...how XSS protection works in Rails. Calling html_safe on the joined array will incorrectly bless the complete string as safe: [safe_string, unsafe_string].join(' ').html_safe # will incorrectly...
If you expect method calls in RSpec 3, be aware that the argument matchers use very liberal equality rules (more like === instead of ==). For example: expect(subject).to receive(:foo...
module WebpackerCompileOnce COMPILE_WAIT_TIMEOUT = 180 COMPILE_WAIT_POLL_INTERVAL = 0.3 def compile # Calling #compile will at least once compute SHAs over the content # of all files in app...
...parallel_tests process has finished compiling. def wait_until_fresh # We're going to call #fresh? a lot. This will call #watched_files_digest, which # computes SHAs over the contents...
...you to use Capybara Finders methods (e.g. #find) on the doc element and then call matchers on that element: link_element = doc.find('a') expect(link_element).to have_selector('.nav...
...by default, such that rendered is converted once one of Capybara's matchers is called on it, it's default type is still a String. (As noted in the Capybara...
...even displays helpful flamegraphs for better visualization. Provides actionable insights like: Number of factory calls in each test and the time spent on each. Breakdown of associated records created unintentionally...
...virtual environment. (They are located in ~/.venv/your-environment-name/bin/). To leave your virtual environment, you may call deactivate. To enter your venv again later, you must source it again, as described above...
...painfully slow RegExp text matching or add the normalize_ws: true option to every call of a Capybara finder. I suggest that you rather configure it globally, which also affects...
...to load records and their associations in a fixed number of queries. This is called preloading or eager loading associations. By preloading associations you can prevent the n+1 query...
...order => 'created_at DESC', :include => :author) end end This controller action works until someone calls the action with a category containing a dot character. This will make ActiveRecord join the...
...both limited to a set of HTTP libraries listed below (as of 2022). Direct calls to Kernel#open or OpenURI#open_uri are not mocked and will trigger real network...
...know anything about the API internals. It feels more natural, that you don't call client internals from your models. Only the public methods like GithubClient::Client.new.users('makandra GmbH') or...
...def log(message) message.each_line do |line| Rails.logger.info(line.rstrip) end end You can then call log with your multi-line string and each line will be tagged. To improve even...
...additional scripting. While you may bind to the window's resize event, that might call your event listener many times. A better way is to subscribe to changes of the...
Now, another commit will be checked out. See if the issue persists and call git bisect good or git bisect bad, resulting in another commit being fetched and so...
...def helper_method 42 end end World(Helpers) features/step_definitions/step.rb Then /^the helper method is called$/ do expect(helper_method).to eql(42)
...pages, you should use tel: links so smartphone users can click those numbers to call someone. Here is a small helper method that you can use to simplify this:
...code (sometimes used when combining international and local numbers, see example below) as the called number should not include that zero. def tel_to(text) groups = text.to_s.scan(/(?:^\+)?\d+/) if groups.size...
...window rendering effects added by a window manager, and browsers don't provide a callback that would allow to detect the end of windows size changing process. Capybara provides a...
...WebDriverError, 'Switch to desired window before changing its size' unless handle == :current # Chromedriver API call named "set_window_rect" set_window_rect(width: width, height: height) end end
...inlined, because it is only used once. Let's use a similiar input, but call fn() twice: function fn() { if (a) { return 'foo' } else if (b) { return 'foo' } else {
...console.log(o()) Note how: The function remains in the compressed output, as it is called more than once. The function name has been shortened to o, as it is not...
...archived => false) authors = posts.traverse_association(:author) You can traverse multiple associations in a single call. E.g. to turn a relation of posts into a relation of all posts of their...