Skip to content

Instantly share code, notes, and snippets.

View sassman's full-sized avatar
🦀
rust ❤️

Sven Kanoldt sassman

🦀
rust ❤️
View GitHub Profile
@sassman
sassman / alphabet_position_test.rs
Created September 8, 2019 22:25
rust tdd: test/alphabet_position_test.rs
// test/alphabet_position_test.rs
#[test]
fn it_should_ignore_non_characters() {
let replaced = alphabet_position("'a a. 2");
assert_eq!(replaced, "1 1");
}
@sassman
sassman / lib.rs
Created September 8, 2019 22:24
rust tdd: src/lib.rs
// src/lib.rs
pub fn alphabet_position(s: &str) -> String {
s.to_lowercase()
.chars()
.filter(|x| x.is_alphabetic()) // <-- adding this line here
.map(|x| -> u8 { x as u8 - 'a' as u8 + 1 })
.map(|x| -> String { x.to_string() })
.collect::<Vec<String>>()
.join(" ")
@sassman
sassman / alphabet_position_test.rs
Last active September 8, 2019 22:23
rust tdd: alphabet_position_test.rs
// test/alphabet_position_test.rs
#[test]
fn it_should_replace_the_sentence() {
let replaced = alphabet_position("The sunset sets at twelve o' clock.");
assert_eq!(
replaced,
"20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11"
);
}
@sassman
sassman / alphabet_position_spec.rs
Created September 8, 2019 22:18
rust tdd: test/alphabet_position_spec.rs
// test/alphabet_position_spec.rs
use dev_challenge_47::alphabet_position;
use speculate::speculate;
speculate! { // <-- it's a macro but who cares
describe "alphabet_position" {
it "should replace 'a' with 1" {
assert_eq!(alphabet_position("a"), "1");
}
it "should replace 'A' with 1" {
@sassman
sassman / yaml2json
Created December 7, 2018 15:33
Yaml to json converter
#!/usr/bin/env python
import sys, yaml, json
try:
# included in standard lib from Python 2.7
from collections import OrderedDict
except ImportError:
# try importing the backported drop-in replacement
# it's available on PyPI
@sassman
sassman / io_expedition_iter3.dart
Last active November 29, 2022 19:58
Dart IO and Streams the right way
library io_testing;
import 'dart:async';
import 'dart:io';
import 'dart:convert';
class UpperCaseConverter extends Converter<String, String> {
@override
String convert(String input) => input.toUpperCase();
@sassman
sassman / jquery.csrf.js
Created March 1, 2014 23:19
django csrftoken ajax support for jquery usage: $.csrfAjaxSupport(); on load
(function ($) {
var cookieName = 'csrftoken';
var xHeaderName = 'X-CSRFToken';
var csrfSafeMethod = function (method) {
return /^(GET|HEAD|OPTIONS|TRACE)$/.test(method);
};
var getCookie = function (cookie) {
@sassman
sassman / install-setuptools.sh
Created February 9, 2014 15:56
install setuptools for jython 2.7 manually
#!/bin/bash
set -e
cd /tmp
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-2.2.tar.gz
tar -xzf setuptools-2.2.tar.gz
cd setuptools-2.2
sudo jython27 setup.py install --prefix=/opt/jython27
@sassman
sassman / post_list.html
Last active January 2, 2016 05:39
Filter by "q" get parameter as mixin for CBV
{% extends 'layouts/backend.html' %}
{% load i18n %}
{% block body %}
<div class="row">
<div class="col-md-6">
<form id="omni-form" action="{% url 'post_list' %}" method="GET" class="form-inline" role="form">
<div class="input-group">
<label class="sr-only" for="omnisearch">{% trans 'Search for posts' %}</label>
<input type="text" name="q" class="form-control" id="omnisearch"
@sassman
sassman / url-shortener.py
Created April 12, 2013 22:09
a small tiny cli wrapper to goole url shortener api
#!/usr/bin/python
import json, sys, urllib2
url = sys.argv[1]
apiKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'
data = {
'longUrl' : url
}
req = urllib2.Request('https://www.googleapis.com/urlshortener/v1/url?key='+apiKey)