Skip to content

Instantly share code, notes, and snippets.

View ppazos's full-sized avatar
🌎
All around

Pablo Pazos Gutiérrez ppazos

🌎
All around
View GitHub Profile
@ppazos
ppazos / ajax_call_callback_render_pattern.js
Last active March 2, 2018 17:18
Pattern to separate ajax calls from the response rendering logic using callbacks
var render = function(param1, param2, param3, model)
{
// process model and generate dom to display it
// sample code to display a select with key/value from model
_select = document.getElementById(param1);
for (key in model)
{
option = document.createElement("option");
option.value = key;
@ppazos
ppazos / date_time_parsing.groovy
Created March 19, 2018 00:31
Tests parsing datetimes for a date time validator
import java.text.SimpleDateFormat
import java.text.ParseException
TimeZone.setDefault(TimeZone.getTimeZone("UTC"))
// casos: con o sin fraccion, con o sin timezone
def candidates = ['1981-10-24T09:59:00',
'1981-10-24T09:59:00Z',
'1981-10-24T09:59:00-03:00',
@ppazos
ppazos / parse_8601_durations_with_java.groovy
Last active March 19, 2018 05:37
Couple of methods on how to parse an ISO 8601 duration expression in Java/Groovy.
import javax.xml.datatype.*;
Duration dur = DatatypeFactory.newInstance().newDuration("PT5H12M36S");
println dur.getHours()
println dur.getMinutes()
println dur.getSeconds()
println dur
println dur.getHours()*60*60 + dur.getMinutes()*60 + dur.getSeconds()
import groovy.util.XmlSlurper
def xml = new XmlSlurper().parseText('''
<issues>
<issue>
<id>1</id>
<priority>1</priority>
</issue>
<issue>
<id>2</id>
@ppazos
ppazos / string_match.groovy
Created April 21, 2018 04:39
Returns true or false if the string matches a regex
//def matcher = ('groovy' ==~ /\w.*/)
//assert matcher instanceof Boolean
def terms = ['EMR', 'EMR.2', 'EMR 2', 'EMR-2', 'EMR.SYSTEM.ID', '<>']
terms.each {
if (it ==~ /[^\s]*/)
{
println "SI: "+ it
}
@ppazos
ppazos / process_coded_binary_tree.groovy
Last active July 26, 2018 03:40
Generates a logical expression from a plain structure, generating an intermediate AST binary tree
class BinaryTree {
def tmp // temporal expression
def value
def left
def right
def parent // null for root
String toString()
{
import java.io.IOException;
import com.pi4j.io.i2c.I2CBus;
import com.pi4j.io.i2c.I2CDevice;
import com.pi4j.io.i2c.I2CFactory;
import com.pi4j.io.i2c.I2CFactory.UnsupportedBusNumberException;
import com.pi4j.platform.PlatformAlreadyAssignedException;
import com.pi4j.util.Console;
public class I2CScanner {
import java.util.concurrent.Callable;
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalInput;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinPullResistance;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;
import com.pi4j.io.gpio.trigger.GpioCallbackTrigger;
@ppazos
ppazos / xmlslurper_size_vs_isempty.groovy
Created May 10, 2018 23:25
Tests about size and isEmpty to check if a XML node is empty or not.
def root = new XmlSlurper().parseText("""<root>
<context>
<start_time>
<value>[[COMPOSITION_DATE:::DATETIME]]</value>
</start_time>
<setting>
<value>[[COMPOSITION_SETTING_VALUE:::STRING]]</value>
<defining_code>
<terminology_id>
<value>openehr</value>
@ppazos
ppazos / uuid_matcher.groovy
Created May 11, 2018 23:40
UUID format matcher in groovy
def uuids = ['a4c0064a-74fc-41e2-a5e0-0492ed2d79a7', '', 'fdgsfgsg', '345']
uuids.each {
def matcher = (it ==~ /([a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12})/)
if (matcher) println it + " OK"
else println it + " NO"
}