Skip to content

Instantly share code, notes, and snippets.

View sirbrillig's full-sized avatar

Payton Swick sirbrillig

View GitHub Profile
@sirbrillig
sirbrillig / SpiesExample.php
Last active March 26, 2016 21:35
An example of using Spies
<?php
class GreetingGenerator {
public function get_greeting( $name ) {
// Assumes determine_greeting is defined in another file
return determine_greeting( $name );
}
}
class Greeter {
@sirbrillig
sirbrillig / jsdom-react-iframe-test.js
Created March 16, 2016 00:02
This file should run, but it throws an error
// Set up DOM
var jsdom = require( 'jsdom' ).jsdom;
global.document = jsdom( '' );
global.window = document.defaultView;
global.navigator = document.defaultView.navigator;
// Prepare React
var ReactTestUtils = require( 'react-addons-test-utils' );
var React = require( 'react' );
@sirbrillig
sirbrillig / get-from-dom.js
Created February 29, 2016 23:20
window object dependency injection
var getWindow = require( './window' ).getWindow;
function getSomethingFromTheDOM() {
return getWindow().document.querySelector( '.something' );
}
@sirbrillig
sirbrillig / functional_compose.php
Created February 15, 2016 02:14
A compose function for PHP
<?
class FunctionalFuncs {
public static function compose() {
$function_reducer = function ( $result, $func ) {
return [ call_user_func_array( $func, $result ) ];
};
$callbacks = func_get_args();
return function() use ( $callbacks, $function_reducer ) {
$arguments = func_get_args();
return array_reduce( $callbacks, $function_reducer, $arguments )[0];
@sirbrillig
sirbrillig / get-deep-value-Test.php
Created January 27, 2016 17:31
`get_deep_value`, a version of `_.get` for PHP
<?php
require_once( 'get-deep-value.php' );
/**
* @runTestsInSeparateProcess
*/
class Get_Deep_Value_Test extends PHPUnit_Framework_TestCase {
use Codeception\Specify;
@sirbrillig
sirbrillig / App.js
Created January 17, 2016 03:07
Using React stateless components for quick prototyping
import React from 'react';
const Header = () => <div className="header"><img className="header__logo" src="/assets/logo.png" /><h1 className="header__title">My App</h1></div>;
const ToDoList = () => <div className="to-do-list"><h2 className="to-do-list__title">To Do</h2></div>;
const Controls = () => <div className="controls"><h2 className="controls__title">Controls</h2></div>;
const Footer = () => <div className="footer">Made by Me</div>;
export default React.createClass( {
render() {
return (
@sirbrillig
sirbrillig / wpMockUndefinedFunctionTest.php
Created January 15, 2016 04:19
Throw Exception in WP_Mock when handle_function fails
<?php
class SomeClass {
public function do_something( $times ) {
$user = wp_get_current_user();
//...
return true;
}
}
@sirbrillig
sirbrillig / .vimrc
Created December 27, 2015 23:50
Add ES2015 template strings to vim colorscheme
" Highlight ES6 template strings
hi link javaScriptTemplateDelim String
hi link javaScriptTemplateVar Text
hi link javaScriptTemplateString String
@sirbrillig
sirbrillig / composer.json
Created June 19, 2015 17:53
WP_Mock do_action failure
{
"require-dev": {
"10up/wp_mock": "dev-master"
}
}
@sirbrillig
sirbrillig / Gruntfile
Created July 17, 2014 16:26
Grunt task to run node server with jQuery, Browserify, and Handlebars
var loadTasks = require( 'load-grunt-tasks' );
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
nodemon: {
dev: {
script: 'server.js',