Skip to content

Instantly share code, notes, and snippets.

View erikakers's full-sized avatar

Erik Akers erikakers

View GitHub Profile
@erikakers
erikakers / gist:7551880
Created November 19, 2013 20:21
Javascript: React JSX module template.
/**
* @jsx React.DOM
*/
var App.Views.MyComponent = React.createClass({
render: function() {
return (
<p>Awesome Code</p>
);
@erikakers
erikakers / backbonecomments.jsx
Created December 5, 2013 20:56
React Backbone
/**
* @jsx React.DOM
*/
var CommentModel = Backbone.Model.extend({
defaults: {
author: '',
text: '',
image: ''
}
@erikakers
erikakers / gist:8653019
Created January 27, 2014 17:17
React.js Backbone Mixins
var ModelMixin = {
__syncedModels: [],
componentDidMount: function() {
// Whenever there may be a change in the Backbone data, trigger a reconcile.
this.getBackboneModels().forEach(this.injectModel, this);
},
componentWillUnmount: function() {
// Ensure that we clean up any dangling references when the component is
// destroyed.
this.__syncedModels.forEach(function(model) {
@erikakers
erikakers / gist:9651093
Created March 19, 2014 20:58
Parsing an XML feed in to a json data model.
loadResultSnippits: function(results){
var documents = [];
for(var i = 0; i < results.length; i++){
var url = $(results[i]).attr('url'),
title = $(results[i]).find('content[name="title"]').text(),
fileType = $(results[i]).find('content[name="filetype"]').text(),
language = $(results[i]).find('content[name="language"]').text(),
date = $(results[i]).find('content[name="last-modified"]').text().substring(0, 14),
snippet = $(results[i]).find('content[name="snippet"]').text();
@erikakers
erikakers / gist:9690805
Created March 21, 2014 17:04
Underscore extended object module
var Feature = (function(){
var Feature = function(){
this.init();
};
_.extend(Feature.prototype, {
init: function() {
console.log("Feature!");
}
@erikakers
erikakers / gist:812acd28f46e95e28fe8
Created May 14, 2014 14:37
SCSS: Mixin for Transparency in most Browsers
@mixin transparent($color, $alpha) {
$rgba: rgba($color, $alpha);
$ie-hex-str: ie-hex-str($rgba);
background-color: transparent;
background-color: $rgba;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#{$ie-hex-str},endColorstr=#{$ie-hex-str});
zoom: 1;
}
@erikakers
erikakers / Helper.CheckWidths.js
Last active August 29, 2015 14:01
Responsive Width Conditions
App.Helpers.checkWidth = (function(conds) {
conds.init = function() {
$.subscribe('resize', function(){
console.log('resize event fired');
App.Helpers.getWidth();
// if mobile width, mobile media query or mobile ua returns true, broadcast a resize:mobile event
if ( App.Devices.mobile || App.Devices.mobileMQ || App.Devices.mobileCheck ) $.publish('resize:mobile');
@erikakers
erikakers / Helpers.GetWidth.js
Last active August 29, 2015 14:01
Get Widths Helper
/**
* Get Width Helper - This is re-run on every debouced resize event that will help setup our responsiveness
*/
App.Helpers.getWidth = function() {
// Lets setup our widths
App.Helpers.innerWidth = !window.innerWidth ? document.documentElement.clientWidth : window.innerWidth;
// Queries based on screen width
App.Devices.desktop = App.Helpers.innerWidth > App.Constants.DESKTOP,
@erikakers
erikakers / ConstructorFeatureModule.js
Last active August 29, 2015 14:01
Javascript: Loose Augmentation Module Pattern with LoDash Extends Object using the constructor method. Used for data intensive functions.
App.Features.sampleFeature = (function(sample) {
function Feature(element) {
this.$el = element;
};
Feature.Constants = {
};
_.extend(Feature.prototype, App.Class, {
@erikakers
erikakers / Helper.ResizeThrottle.js
Last active August 29, 2015 14:01
Javascript: Throttle Resize Handler with PubSub event broadcast
App.Helpers.resizeThrottle = (function(throttle) {
throttle.init = function() {
var updateLayout = _.debounce(function(e) {
console.log('Throttled resize event. Broadcasting...');
$.publish('resize');
}, 500);
if (window.addEventListener) {
window.addEventListener("resize", updateLayout, false);
}
};