Skip to content

Instantly share code, notes, and snippets.

entries = YourHTTPClientOfChoice.get("https://api.letsfreckle.com/v2/entries?project_ids=1234&from=2016-01-03&to=2016-01-09")
# a hash, where the key is the tag name and the value is
# the total number of minutes logged using this tag
# example {"email" => 90 }
tag_totals = {}
entries.each do |entry|
minutes = entry["minutes"]
# iterate through all the entries tags, adding the entry's minutes to the tag's total
@tcannonfodder
tcannonfodder / index.html
Created September 9, 2015 21:32
Fix for KSA
<!DOCTYPE html>
<!-- code/comments not formatted for word wrap -->
<html>
<head>
<!-- Display the KSA favicon -->
<link rel="shortcut icon" href="/images/KSA/favicon.ico" type="image/x-icon" />
@tcannonfodder
tcannonfodder / standardized-bug-report-template.md
Last active August 29, 2015 22:22
Standardized Bug Report Template Example: built from years of simultaneously working development and support
@tcannonfodder
tcannonfodder / test_assertions.rb
Created August 24, 2014 22:09
Helpful test assertions for MiniTest suite in Rails
# Some very helpful asserts to add on top of MiniTest, includes ordered array
# and set comparison, ActiveRecord attribute validation, and layout assertions
# This was originally written by @madrobby for Freckle: https://letsfreckle.com
module MiniTest
module Assertions
def assert_layout(layout, message=nil)
assert_equal "layouts/#{layout}", @response.layout, message
end
@tcannonfodder
tcannonfodder / fix_nested_describes_in_controller_tests.rb
Created August 24, 2014 21:52
Fix nested describes in controller tests in Rails 2.3
# fixes nested describes in controller tests
# this is a Rails bug apparently fixed in newer Rails versions
# https://github.com/rails/rails/issues/7743
# This was originally written by @madrobby for Freckle: https://letsfreckle.com
class ActionController::TestCase
def self.determine_default_controller_class(name)
name.split('::').reverse.map { |n|
safe_constantize(n.sub(/Test$/, ''))
}.compact.first
@tcannonfodder
tcannonfodder / deprecated_helpers.rb
Created August 24, 2014 21:48
Deprecated Helpers when porting from test-spec to Minitest
# Deprecation warnings for common test-spec helpers, useful when porting tests
# to MiniTest by showing you what to replace it with.
# This was originally written by @madrobby for Freckle: https://letsfreckle.com
# remember to replace `YourApp` with the namespace of your app.
module YourApp::Assertions
mattr_accessor :deprecation_warnings
@@deprecation_warnings = []
class SpecResponder
@tcannonfodder
tcannonfodder / add_allow_switch.rb
Last active August 29, 2015 14:05
Add test-spec's `add_allow_switch` to a MiniTest suite.
# Port of test-spec's `add_allow_switch` to MiniTest.
# This was originally written by @madrobby for Freckle: https://letsfreckle.com
# Make sure to rename `YourApp` to the namespace of your app.
module YourApp
class AddAllowSwitchCalledTwiceError < StandardError
# By overriding this method, we can provide a sort of default exception message
def self.exception(message)
super("Called add_allow_switch(#{message}) twice! Make sure you don't require your test helper twice.")
end
@tcannonfodder
tcannonfodder / backport.rb
Created July 31, 2014 19:07
Running Rail 2.3 LTS Performance Tests using Minitest
# include this in your test_helper.rb. It monkeypatches
# The methods used to actually run any performance tests
# subclassed from ActionController::PerformanceTest
# based on: https://github.com/rails/rails/blob/3-2-stable/activesupport/lib/active_support/testing/performance.rb#L44
module ActiveSupport
module Testing
module Performance
def run(runner)
@tcannonfodder
tcannonfodder / Gemfile
Created July 27, 2014 20:24
Sinatra Boilerplate
source 'https://rubygems.org'
gem 'sinatra'
gem 'sinatra-contrib'
gem 'debugger', :require => false
gem 'mysql'
gem 'dbd-mysql'
gem 'dbi'
@tcannonfodder
tcannonfodder / gist:9ca5d465b92d59e43799
Created July 16, 2014 23:50
Freckle API v2 Error Message Example
{
"message": "you don't have permission to filter by imports",
"errors": [
{
"resource": "Entry",
"code": "insufficent_permissions",
"field": "import_ids"
}
]
}