Skip to content

Instantly share code, notes, and snippets.

View mattapayne's full-sized avatar

Matt Payne mattapayne

View GitHub Profile
module Things
TYPE_ONE = 'type_one'.freeze
TYPE_TWO = 'type_two'.freeze
TYPE_THREE = 'type_three'.freeze
class ThingFactory
class << self
def call(type, args)
case type
when TYPE_ONE
@mattapayne
mattapayne / thinkific_enrollment_webhooks.txt
Created February 1, 2019 00:24
Thinkific Enrollment Webhook Payloads
General webhook docs:
[Help article](https://help.thinkific.com/support/solutions/articles/228892-webhooks) and
[API Docs](https://platform.thinkific.com/documentation/api/webhooks)
Enrollment Created:
{
"id":"20190131191810790022472",
"resource":"enrollment",
@mattapayne
mattapayne / gist:215657dddca386d2dd68
Last active August 29, 2015 14:24
OSX Yosemite Thinkific Nginx Conf
worker_processes 10;
pid /var/run/nginx.pid;
events
{
worker_connections 1024;
}
@mattapayne
mattapayne / matts-nginx-conf
Created July 5, 2015 22:27
Matt's Development Nginx Config
worker_processes 10;
pid /var/run/nginx.pid;
events
{
worker_connections 1024;
}
//In the page Head:
<script type="text/javascript" src="https://www.thinkific.com/scripts/utilities.js"></script>
<script type="text/javascript">
(function(f,b){if(!b.__SV){var a,e,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" "); for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=f.createElement("script");a.type="text/javascript";a.async=!0;a.src="//cdn.mxpnl
@mattapayne
mattapayne / InstructorMixPanelInclude.js
Last active August 29, 2015 14:10
MixPanel Instructors Code
//In the page Head:
<script type="text/javascript">
(function(f,b){if(!b.__SV){var a,e,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" "); for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=f.createElement("script");a.type="text/javascript";a.async=!0;a.src="//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";e=f.getElementsByTagName("script")[0];e.parentNode.insertB
@mattapayne
mattapayne / Enhance Links
Last active August 29, 2015 14:02
Enhance specific links with incoming query string parameters
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>
{% if is_home %}
{{ site.author }}
{% elif is_post %}
{{ post.title }}
{% elif is_link %}
@mattapayne
mattapayne / SingleClick
Created August 13, 2009 17:42
Shows how to disable a button on submit in ASP.NET while maintaining validation checks and form submission
public static class HtmlHelper
{
private const string DISABLED_BUTTON_CSS_CLASS = "disabled_button";
public static void SingleClick(Page page, Button btn)
{
string scriptKey = String.Format("click_once_button_{0}", btn.ValidationGroup);
if (!page.ClientScript.IsClientScriptBlockRegistered(scriptKey))
{