Skip to content

Instantly share code, notes, and snippets.

Avatar

Mars Hall mars

View GitHub Profile
@mars
mars / bulk_email.rb
Created Jul 25, 2012
Bulk email via gmail
View bulk_email.rb
require "rubygems"
# gem install ruby-gmail
require 'gmail'
# gather email list
addresses = %w{
email1@domain.com
email2@domain.com
@mars
mars / .bash_profile
Last active Oct 22, 2018
bash prompt git status
View .bash_profile
[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
function parse_git_dirty {
git diff --quiet || echo ""
}
function parse_git_branch {
e=`echo $( { git status; } 2>&1 ) | tr '[:upper:]' '[:lower:]'`
if [[ ! $e =~ 'not a git repository' ]]
then git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)] /"
fi
@mars
mars / ember-data-global-ajax-params.js
Last active Dec 16, 2015
Add params to Ember Data's RESTAdapter AJAX requests.
View ember-data-global-ajax-params.js
App.accountId = 'asdf';
App.RESTAdapter = DS.RESTAdapter.extend({
// Scope all ajax calls.
ajax: function(url, type, hash) {
if (Ember.isEmpty(hash)) hash = {};
if (Ember.isEmpty(hash.data)) hash.data = {};
hash.data.account_id = App.accountId;
this._super(url, type, hash);
}
@mars
mars / gist:6086194
Last active Dec 20, 2015
DEPRECATED see comments: ember-testing: select an option (helper)
View gist:6086194
Ember.Test.registerHelper('selectFrom',
function(app, selector, value, description) {
// choose an option
find(selector).val(value);
// trigger the change
find(selector).change();
// assert the selected option
equal(find(selector+" option:selected").val(), value, description||"makes the selection");
// promise
return wait();
@mars
mars / foo-app-test.js
Last active Dec 20, 2015
ember-testing: multiple app compatibility
View foo-app-test.js
// give each tested app its own DOM element
document.write('<div class="ember-testing-container"><div id="foo-app-testing"></div></div>');
FooApp.rootElement = '#foo-app-testing';
// defer readiness
FooApp.setupForTesting();
module("Foo App", {
setup: function() {
FooApp.injectTestHelpers();
// last step, before each test begins, clears the container and advances readiness
@mars
mars / register_chrome_with_window_size.rb
Created Oct 13, 2013
Set window size for Capybara/Selenium/chromedriver
View register_chrome_with_window_size.rb
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app,
browser: :chrome,
desired_capabilities: {
"chromeOptions" => {
"args" => %w{ window-size=1024,768 }
}
}
)
end
View keybase.md

Keybase proof

I hereby claim:

  • I am mars on github.
  • I am marsi (https://keybase.io/marsi) on keybase.
  • I have a public key whose fingerprint is DFC9 5BAD 42CF D15F 589A 9436 7F70 7FA1 F236 B857

To claim this, I am signing this object:

@mars
mars / capybara_reset_patch.rb
Created Aug 13, 2014
Capybara patch to avoid `@browser.navigate.to('about:blank')` which hangs sometimes.
View capybara_reset_patch.rb
# Monkey-patch on Capybara!!!
#
class Capybara::Selenium::Driver < Capybara::Driver::Base
# Patch to avoid `@browser.navigate.to('about:blank')` which hangs sometimes.
#
def reset!
# Use instance variable directly so we avoid starting the browser just to reset the session
if @browser
begin @browser.manage.delete_all_cookies
@mars
mars / json_api_base_serializer.rb
Last active Apr 8, 2016
ActiveModel Serializers for JSON-API (with association sideloading)
View json_api_base_serializer.rb
# Ancestor for JSON-API serializers, implements
# "application/vnd.api+json" media type conventions.
#
# See: http://jsonapi.org
#
class JsonApiSerializer < ActiveModel::Serializer
# Always make pluralized root JSON property.
#
def self.inherited(subclass)
@mars
mars / rewire-module.js
Last active Sep 15, 2016
Manually mock React components; Jasmine helper to stub & teardown a bunch of a module's dependencies with Rewire. How-to: http://substantial.com/blog/2014/11/11/test-driven-react-how-to-manually-mock-components/
View rewire-module.js
/*
Jasmine helper to stub & teardown a bunch of a module's dependencies.
describe("SomeModule", function() {
var SomeModule = rewire("some-module");
rewireModule(SomeComponent, {
ItsComponent: React.createFactory('div'),
AnotherComponent: React.createFactory('div')
You can’t perform that action at this time.