Skip to content

Instantly share code, notes, and snippets.


Ben Hodgson benhodgson87

View GitHub Profile
benhodgson87 / Jenkinsfile
Last active Jul 3, 2020
Jenkins step to run Yarn Audit exiting only on critical level vulnerabilities
View Jenkinsfile
// Run yarn audit and only exit 0 on critical vulnerabilities (greater than 8)
// Credit:
stage('Node dependencies') {
steps {
sh script: '/bin/bash -c "yarn audit; [[ $? -ge 8 ]] && exit 1 || exit 0"', label: "Vulnerability audit"
sh script: 'yarn', label: 'Install dependencies'
benhodgson87 / beforeAfter.html
Last active Mar 9, 2020
Before/After PR Template
View beforeAfter.html
<td><img src="BEFORE" width="480" /></td>
<td><img src="AFTER" width="480" /></td>
View bottle_status_logic.js
// source
const current_bottle_weight = 1120;
const empty_bottle_weight = 649;
const full_bottle_weight = 1357;
const full_bottle_ml = 700;
const full_bottle_volume = full_bottle_weight - empty_bottle_weight;
benhodgson87 / BasicField.js
Created Feb 21, 2018
Reusable React/Redux-Form Layout using HOC
View BasicField.js
* Basic input field wrapped with FormField HOC
import React from 'react'
import PropTypes from 'prop-types'
import FormFieldWrapper from './FormFieldWrapper'
import './BasicField.css'
View ryanair.css
[core-date-range] [core-morph-popup] .content-box .footer .btn.close.disabled,
[core-date-range] [core-morph-popup] .content-box .footer,
[core-date-range] [core-morph-popup] .content-box .footer .btn.close.disabled.focus,
[core-date-range] [core-morph-popup] .content-box .footer .btn.close.disabled:active,
[core-date-range] [core-morph-popup] .content-box .footer .btn.close.disabled:focus,
[core-date-range] [core-morph-popup] .content-box .footer .btn.close.disabled:hover,
[core-date-range] [core-morph-popup] .content-box .footer .btn.close[disabled],
[core-date-range] [core-morph-popup] .content-box .footer .btn.close[disabled].active,
[core-date-range] [core-morph-popup] .content-box .footer .btn.close[disabled].focus,
[core-date-range] [core-morph-popup] .content-box .footer .btn.close[disabled]:active,
View gist:a66e461abae4f10032f7
// Transmitter
var storedHeight = 0, payload;
setInterval(function() {
var currentHeight = $('.ng-scope').height();
if (currentHeight == storedHeight) {
return false;
} else {
storedHeight = currentHeight;
payload = JSON.stringify({ height: currentHeight });
benhodgson87 / _icons.scss
Last active Aug 29, 2015
ng-store Icon Sass-Map refactor
View _icons.scss
// Setup an icon array of name modifer keys + content values
// eg. "pencil": "\e602"; becomes a class of .icon--pencil
$icon-types: (
"pencil": "\e602",
"ticket": "\e60d",
"cart2": "\e60f",
"credit": "\e627",
"location": "\e612",
"map": "\e634",
"clock": "\e614",
View countries.simple.json
"AF": {
"name": "Afghanistan"
"AX": {
"name": "Åland Islands"
"AL": {
"name": "Albania"
View countries.json
"AD": {
"currency": {
"primary": "EUR"
"iso": {
"code2": "AD",
"code3": "AND",
"num": "020"
benhodgson87 / decimalFormat.js
Last active Nov 8, 2020
DecimalFormat Currency Formatting
View decimalFormat.js
Number.prototype.currency = function (format) {
var amt = this, neg;
// If no formatting string supplied
// or amount is not a number, return as is
if (!format || isNaN(amt)) return amt;
// Extract placeholders from format string
var formFig = format.match(/\#(.*)\#/g).pop();
You can’t perform that action at this time.