Skip to content

Instantly share code, notes, and snippets.

Avatar

Lucas Cavalcanti lucascs

  • Nubank
View GitHub Profile
@lucascs
lucascs / invariants.clj
Last active Mar 29, 2016
Double entry modeling
View invariants.clj
(def billing-violations [negative-entries small-minimum-payment prepaid-mutual])
(def loss-violations [credit-loss pre-loss])
(def general-violations [minimum-payment-mutual])
(defn all-violations [balances]
(concat billing-violations loss-violations general-violations))
(s/defn fixing-invariants :- [Entry] [initial-balances :- Balances, new-entries :- [Entry]]
@lucascs
lucascs / Capitalize.java
Created Apr 30, 2015
Capitalize java 8
View Capitalize.java
import java.util.Arrays;
public class Capitalize {
public static String capitalize (String x) {
return x.substring(0,1).toUpperCase() + x.substring(1).toLowerCase();
}
public static void main(String[] args) {
String text = "gabinete do deputado fulando de tal e de dona maria";
View 1_basics.rb
p "Hello World"
#!/usr/bin/ruby
irb
View CidLogicResult.java
@Specializes
@RequestScoped
public class CidLogicResult extends DefaultLogicResult {
private MutableRequest request;
public CidLogicResult(...., MutableRequest request) {
super(....);
this.request = request;
}
@Override
@lucascs
lucascs / boleto.clj
Created Feb 26, 2014
Caelum Stella em Clojure
View boleto.clj
(ns accounts.adapters.boleto
(:import (br.com.caelum.stella.boleto
Datas Sacado Emissor Boleto
bancos.Santander transformer.GeradorDeBoleto)))
(defn generate []
(let [datas (-> (Datas/novasDatas)
(.comDocumento 15 2 2014)
(.comProcessamento 15 2 2014)
(.comVencimento 17 2 2014))
@lucascs
lucascs / mapper.rb
Last active Dec 24, 2015
Tire configuration for pt-BR
View mapper.rb
class Mapper
def self.map!(options = {})
drop_index! if options[:delete]
Tire.index :index_name do
create :analysis => {
:filter => {
:pt_br_filter => {
:type => :stemmer,
:language => :minimal_portuguese
View LazyJSONSerialization.java
@Component
public class LazyJSONSerialization extends XStreamJSONSerialization {
private SerializerHolder holder;
public LazyJSONSerialization(SerializerHolder holder, HttpServletResponse response, TypeNameExtractor extractor, ProxyInitializer initializer, XStreamBuilder builder) {
super(response, extractor, initializer, builder);
this.holder = holder;
}
@Override
protected SerializerBuilder getSerializer() {
try {
@lucascs
lucascs / PackageResourceHandler.java
Created Mar 21, 2013
Resource handler para poder fazer: `${linkTo[controllers.MeuController].metodo}` ou `${linkTo[gerenciador.MeuController]}`
View PackageResourceHandler.java
@Component // do vraptor
@ApplicationScoped
@org.springframework.stereotype.Component("stereotypeHandler") // só se for spring
public class PackageResourceHandler implements StereotypeHandler {
private final Map<String, Class> controllers;
private final Map<String, Class> gerenciador;
public PackageResourceHandler(ServletContext context) {
context.setAttribute("controllers", controllers);
context.setAttribute("gerenciador", gerenciador);
@lucascs
lucascs / PackageRoutesParser.java
Created Jan 10, 2013
A Routes parser that uses the last package name as the first level of uri: /package/controller/method
View PackageRoutesParser.java
@Component
@ApplicationScoped
public class PackageRoutesParser extends PathAnnotationRoutesParser {
//delegate constructor
public PackageRoutesParser(Router router) {
super(router);
}
@Override
@lucascs
lucascs / Redirect.java
Created Oct 31, 2012
Redirecting to a ResourceMethod
View Redirect.java
Result result = //...
ResourceMethod method = //...
Object[] args = //...
Object redirecting = result.redirectTo(method.getResource().getType());
new Mirror().on(redirect).invoke().method(method.getMethod()).withArgs(args);
You can’t perform that action at this time.