Skip to content

Instantly share code, notes, and snippets.

View tdantas's full-sized avatar
🏠
Working from home

Thiago Dantas tdantas

🏠
Working from home
View GitHub Profile
@tdantas
tdantas / bulkspace.clj
Created November 29, 2023 09:59 — forked from nikolavojicic/bulkspace.clj
Various Clojure specs + generators
;; String containing bulk space(s)
(s/def ::bulk-space-string
(s/with-gen
(s/and string? #(re-find #"\t|\n|\r| +" %))
#(gen/fmap
str/join
(gen/vector
(gen/one-of
[(gen/string)
@tdantas
tdantas / userService.js
Last active November 3, 2019 19:59
Port simple JS function to Clojure ( make it simple to test and isolating side-effects )
/*
Goal:
1. create user database
2. send confirmation email
3. commit or rollback transaction
- 1 and 2 must be somehow transactional
( if sendgrid rejects the email "http response status 400 - 500 range", you must rollback the transaction )
Context:
(ns datomicdemo.core
(:require
[clojure.edn]
[clojure.string :as str]
[datomic.api :as d]))
(def url "datomic:free://localhost:4334/datomicdemo")
(d/create-database url)
@tdantas
tdantas / vars.clj
Created December 4, 2017 20:22 — forked from reborg/vars.clj
;; (defn full-name ...) is equivalent to:
;; (def full-name (fn []...)) which defines a Var
;; object called full-name pointing at a compiled function
;; returning the static string "Oliv"
(defn full-name [] "Oliv")
;; greetings is a function taking two args.
;; it returns a function of no argument
;; invoking the second argument (f) with no arguments
;; and combining a string with it.
@tdantas
tdantas / angularjs_directive_attribute_explanation.md
Created June 29, 2016 21:28 — forked from CMCDragonkai/angularjs_directive_attribute_explanation.md
JS: AngularJS Directive Attribute Binding Explanation

AngularJS Directive Attribute Binding Explanation

When using directives, you often need to pass parameters to the directive. This can be done in several ways. The first 3 can be used whether scope is true or false. This is still a WIP, so validate for yourself.

  1. Raw Attribute Strings

    <div my-directive="some string" another-param="another string"></div>
@tdantas
tdantas / short.clj
Created April 12, 2016 16:25
shortner
;;adambard
(ns urlshortener.core
(:require
[org.httpkit.server :refer [run-server]]
[taoensso.carmine :as redis])
(:import
clojure.lang.Murmur3
org.apache.commons.validator.routines.UrlValidator))
(def validator (UrlValidator. (into-array ["http" "https"])))
@tdantas
tdantas / index.js
Last active March 7, 2016 18:33
using npm with gist
module.exports = console.log.bind(console, 'hello world');
//path: plugins/admin.js
const plugin = module.exports;
plugin.register = register;
plugin.register.attributes = {
name: 'admin plugin',
version: '0.0.1-alpha-beta-gama'
};
@tdantas
tdantas / queue-function.js
Created February 3, 2016 15:25
delaying the execution of your function until ready be called
const _ = require('lodash');
module.exports = queue;
function queue(fn) {
var queuedArgs = [];
var ready = false;
queuedFn.ready = function() {
ready = true;
@tdantas
tdantas / steve.js
Last active August 29, 2015 14:25
steve jwt
const fs = require('fs');
const path = require('path');
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const modulePath = path.join(__dirname, 'modules');
const resources = fs.readdirSync(modulePath);