![image](https://private-user-images.githubusercontent.com/1523305/293961619-b1d71975-f0a5-4127-8214-e36e2a58d3f6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk3Mzk1MzQsIm5iZiI6MTcxOTczOTIzNCwicGF0aCI6Ii8xNTIzMzA1LzI5Mzk2MTYxOS1iMWQ3MTk3NS1mMGE1LTQxMjctODIxNC1lMzZlMmE1OGQzZjYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYzMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MzBUMDkyMDM0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjRmYzU3MGE0ZTc0YWE4MmVhYTNjMjg0MjhiODY1M2RhMjM3ODQzYWU5YmFjZTQxY2Y1NDFjYzBhMDQyYzA3NiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.CGozLuWQBYnCNBnHfa8wcirjYeettMdvfY-2pJs7A7U)
![image](https://private-user-images.githubusercontent.com/1523305/293961619-b1d71975-f0a5-4127-8214-e36e2a58d3f6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk3Mzk1MzQsIm5iZiI6MTcxOTczOTIzNCwicGF0aCI6Ii8xNTIzMzA1LzI5Mzk2MTYxOS1iMWQ3MTk3NS1mMGE1LTQxMjctODIxNC1lMzZlMmE1OGQzZjYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYzMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MzBUMDkyMDM0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjRmYzU3MGE0ZTc0YWE4MmVhYTNjMjg0MjhiODY1M2RhMjM3ODQzYWU5YmFjZTQxY2Y1NDFjYzBhMDQyYzA3NiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.CGozLuWQBYnCNBnHfa8wcirjYeettMdvfY-2pJs7A7U)
require 'proc_to_ast' | |
def where(&fn) | |
ast = fn.to_ast | |
source = fn.to_source | |
pp ast:, source: | |
end | |
where { age > 18 && occupation.downcase == 'plumber' } |
#!/usr/bin/env ruby | |
require 'io/console' | |
class Grid | |
def self.from_str(str, color:) | |
rows = str.lines.map do |line| | |
line.chomp.chars.map do |c| | |
color if c != " ".freeze | |
end | |
end |
group :development, :test do | |
gem 'spring-commands-rspec', require: false | |
gem 'spring-watcher-listen', require: false | |
gem 'spring', require: false | |
# ... | |
end |
const gulp = require('gulp'); | |
const sass = require('gulp-sass'); | |
const postcss = require('gulp-postcss'); | |
const autoprefixer = require('autoprefixer'); | |
const cssnano = require('cssnano'); | |
const sourcemaps = require('gulp-sourcemaps'); | |
const log = require('fancy-log'); | |
const sassSourceFile = 'assets/scss/hyde-hyde.scss'; | |
const outputFolder = 'static/css'; |
Ever wanted to run your integration/end-to-end test suite at a lower speed so that you better could observe what's happening and perhaps make a recording of it?
Here's a a technique I've been using when writing tests with Capybara Selenium WebDriver.
Put this in test/test_helper.rb
or maybe something like spec/support/capybara.rb
.
#!/bin/bash | |
# A simple bash script that creates a custom git command to ignore ALL kinds of | |
# modifications (untracked files, modified files, etc) | |
# Installation: run `sudo sh git-cagate.sh` | |
# Usage: run `git cagate` to ignore ALL modifications | |
cd /bin/ || exit | |
touch git-cagate | |
echo "touch .empty" >> git-cagate |
require 'result/ok' | |
require 'result/error' | |
# | |
# A generic representation of success and failure. | |
# | |
# Styled after the Result monad of Elm and Rust | |
# (or the Either monad of Haskell). | |
# | |
# The `#and_then` method can be used to chain functions that |
require 'benchmark' | |
require 'ostruct' | |
REP = 1000000 | |
User = Struct.new(:name, :age) | |
USER = "User".freeze | |
AGE = 21 | |
HASH = {:name => USER, :age => AGE}.freeze |