Skip to content

Instantly share code, notes, and snippets.

Avatar

Josh Clayton joshuaclayton

View GitHub Profile
View cream_and_sugar.rb
require "money"
class Decorator < BasicObject
undef_method :==
def initialize(component)
@component = component
end
def method_missing(name, *args, &block)
@joshuaclayton
joshuaclayton / Procfile.dev
Created Apr 10, 2021
Rails Procfile.dev for Tailwind + live reloading of views
View Procfile.dev
web: bundle exec puma -C config/puma.rb
webpack: bin/webpack-dev-server
livereload: watchexec -w app/views touch app/javascript/packs/application.js
View foo.diff
diff --git a/src/attributes.rs b/src/attributes.rs
index e1641b2..a03d803 100644
--- a/src/attributes.rs
+++ b/src/attributes.rs
@@ -38,7 +38,9 @@ fn evaluate_attribute_value_components<'a>(
.iter()
.map(|v| match v {
AttributeValueComponent::RawValue(value) => value.to_string(),
- AttributeValueComponent::InterpolatedValue(values) => context.interpret(values),
+ AttributeValueComponent::InterpolatedValue(values) => {
View time_series_fun.sql
WITH weeks AS (
SELECT generate_series('2008-12-29'::date, now(), '7 days'::interval)::date AS week
)
SELECT
j.id AS category_id,
weeks.week,
COALESCE(SUM(t.amount), 0) AS weekly_spend,
COALESCE(MIN(t.amount), 0) AS minimum_spend,
COALESCE(MAX(t.amount), 0) AS maximum_spend,
COUNT(t.amount) AS transaction_count,
@joshuaclayton
joshuaclayton / date_calculations.rs
Last active Aug 28, 2020
Grouping values by date
View date_calculations.rs
use chrono::prelude::*;
// weeks
pub fn beginning_of_week(date: &NaiveDate) -> Option<NaiveDate> {
if date.weekday() == Weekday::Sun {
Some(date.clone())
} else {
NaiveDate::from_isoywd_opt(date.iso_week().year(), date.iso_week().week(), Weekday::Sun)
.map(|d| d - chrono::Duration::weeks(1))
@joshuaclayton
joshuaclayton / hash_flattener.rb
Created Jul 5, 2018
Flatten deeply-nested hashes
View hash_flattener.rb
def recursive_flatten(input, keys = [], acc = {})
input.keys.each do |k|
result_key = keys + [k]
if input[k].is_a?(Hash)
recursive_flatten(input[k], keys + [k], acc)
elsif input[k].is_a?(Array) && input[k].any? {|v| v.is_a?(Hash) }
input[k].each_with_index do |array_value, index|
result_key_with_index = keys + [k, "[#{index}]"]
@joshuaclayton
joshuaclayton / README.md
Last active Jun 1, 2018
RSpec custom matchers for Segment.io tracking
View README.md
View test.rb
require 'rubygems'
# what about this?
View BenchStringToInt.hs
-- ghc -O --make BenchStringToInt.hs && ./BenchStringToInt --output bench_string_to_int.html&& open bench_string_to_int.html
import Criterion.Main
import Data.Maybe (fromMaybe)
import Text.Parsec (parse)
import Text.Parsec.Token (makeTokenParser, integer)
import Text.Parsec.Language (haskellStyle)
import Data.Char (digitToInt, isDigit)
main = defaultMain [
View foo.hs
module Time.DateConversions
(
T.Day
-- current day from system
, today
-- average
, averageDaysBetween
-- beginning of period