Skip to content

Instantly share code, notes, and snippets.

View danhper's full-sized avatar

Daniel Perez danhper

View GitHub Profile
class MyClass:
def __init__(self, high_order, applied):
self.high_order_func = high_order
self.applied_func = applied
def call(self, values):
return self.high_order_func(self.applied_func, values)
def main():
defmodule Foobar.Mixfile do
use Mix.Project
def project do
[app: :opencov,
version: "0.0.1",
elixir: "~> 1.0",
elixirc_paths: elixirc_paths(Mix.env),
compilers: [:phoenix] ++ Mix.compilers,
build_embedded: Mix.env == :prod,
.dropdown > ul > li > a:focus {
background-color: #46629E;
}
@danhper
danhper / make-utf-num.js
Created January 22, 2016 12:03
Generates UTF-8 number with circle in it.
function makeNumber(n) {
var one = '①';
var encoded = encodeURIComponent(one);
var modified = encoded.substring(0, encoded.length - 1) + (n - 1).toString();
return decodeURIComponent(modified);
}
@danhper
danhper / waterfall.ex
Created January 16, 2016 03:17
Avoiding conditional assignments in Elixir
defmodule Waterfall do
def conditional_chain(value, []), do: value
def conditional_chain(value, [{condition, fun}|rest]) when is_function(fun) do
value = if condition,
do: apply_fun(fun, value, condition),
else: value
conditional_chain(value, rest)
end
defp apply_fun(fun, value, condition) when is_function(fun) do
defmodule Opencov.CreateBuildService do
def make_changeset(project, params \\ :empty) do
Ecto.Model.build(project, :builds)
|> Opencov.Build.changeset(params)
|> add_previous_values(project)
end
defp add_previous_values(changeset, project) do
if previous_build = search_previous_build(changeset, project) do
change(changeset, %{previous_build_id: previous_build.id, previous_coverage: previous_build.coverage})
function __fundle_next_arg -a index
set -l args $argv[2..-1]
set -l arg_index (math $index + 1)
if test (count $args) -lt $arg_index
echo "missing argument for $args[$index]"
return 1
end
set -l arg $args[$arg_index]
switch $arg
case '--*'
@danhper
danhper / .travis.yml
Created December 9, 2015 23:35
Travis Elixir build
# for releases available at s3.hex.pm/builds/elixir
# using language: elixir is simpler
language: erlang
otp_release:
- 18.1
before_install:
- curl -sSL https://raw.githubusercontent.com/taylor/kiex/master/install | bash -s
before_script:
- kiex install $ELIXIR_VERSION
curl -X POST --data-urlencode 'payload={"channel": "#alerts", "username": "Login alerter", "text": "A user conneed to '"$(hostname -f)"'", "attachments": [{"text": "'"$(w)"'"}]}' https://hooks.slack.com/services/SLACK/WEBHOOK/TOKEN >> /var/slack.log 2>&1 &
@danhper
danhper / gulpfile.js
Created October 15, 2015 05:17
Simple gulpfile with jade/stylus
'use strict';
var gulp = require('gulp');
var jade = require('gulp-jade');
var watch = require('gulp-watch');
var stylus = require('gulp-stylus');
var connect = require('gulp-connect');
gulp.task('jade', function () {
var src = 'app/templates/**/*.jade';