Skip to content

Instantly share code, notes, and snippets.


Joshua Plicque plicjo

View GitHub Profile
View React and Rails projections
"app/javascript/components/*.js": {
"command": "component"
"app/javascript/reducers/*.js": {
"command": "reducer"
"app/javascript/actions/*.js": {
"command": "actions"
View .rubocop.yml
inherit_from: .rubocop_todo.yml
- rubocop-performance
- rubocop-rails
- rubocop-rspec
TargetRubyVersion: 2.6
View HookExample.js
import React, { useState, useEffect } from 'react';
export default function HookExample() {
// State hook
const [count, setCount] = useState(0)
// Using multiple state hooks
// const [age, setAge] = useState(42);
// const [fruit, setFruit] = useState('banana');
// const [todo, setTodo] = useState(null)'
View box_stub.rb
module Boxr
def self.downscope_token_for_box_ui_element(token, folder_id) 'bar')
def self.refresh_tokens(refresh_token, options = {}) 'new_token', refresh_token: 'new_refresh_token')
class Client
plicjo / puffing-billy-with-cucumber.rb
Last active Mar 29, 2018
Setting up Puffing Billy with Cucumber
View puffing-billy-with-cucumber.rb
# Gemfile
group :test do
gem 'capybara' # Simulate user
gem 'cucumber-rails', require: false # Acceptance tests
gem 'database_cleaner' # Clean test db
gem 'factory_girl_rails' # Factories for tests
gem 'puffing-billy' # Handle external HTTP requests made by front-end (JavaScript)
gem 'rspec-rails' # Functional tests
gem 'selenium-webdriver' # Visually run tests
plicjo /
Last active Sep 7, 2017
Install Firebird on CI
#!/usr/bin/env bash
tar -zxvf FirebirdSS-
cd FirebirdSS-
plicjo / general ledger decorator
Last active Jun 28, 2017
GSAF General Ledger
View general ledger decorator
class GeneralLedgerDecorator < LittleDecorator
def division_colspan(division)
division_members(division).each_with_object([1]) do |member, num_columns|
num_columns << 1 if division_member_has_data?(division, member)
def division_member_has_data?(division, member)
data = record.get_division_member_data(division, member)
(data[:administration_fees].to_f + data[:origination_member_fees].to_f + data[:working_member_fees].to_f) > 0
View tests_acceptance_foo-test.js
// tests/acceptance/foo-test.js
// Assert that text should be found
assert.hasText('Not Found'); // Error: Could not find text "Not Found" on the page
// Provide custom message
assert.hasText('Not Found', 'Expected to find "Not Found"'); // Error: Expected to find "Not Found"
// Find any number of elements containing the query text
text('Found'); // [<div>Found</div>, <input value="Found">]
View gist:b3cf7c54ab7fea1644d4da5431542f2b
Capybara is a testing framework for clicking around in the browser (integration test).
You can use Capybara with Minitest here:
Sometimes you'll need to run tests with Javascript enabled. I recommend using a gem poltergeist for that.
For mockups/wirreframing, try out Balsamiq.