Skip to content

Instantly share code, notes, and snippets.

Juan María Hernández jmhdez

Block or report user

Report or block jmhdez

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@jmhdez
jmhdez / analytics.cs
Created Mar 19, 2012 — forked from gregoryyoung/analytics.cs
Usage Tracking with Google Analytics
View analytics.cs
public class TrackingService
{
// Sample usage:
// service.TrackEvent("customers/add");
// service.TrackEvent("order/discount-applied");
public void TrackEvent(string path)
{
ThreadPool.QueueUserWorkItem(x => TrackPageView("/events/" + path));
}
View Post_tweet.cs
public void UpdateStatus(string message)
{
// Application tokens
const string CONSUMER_KEY = "YOUR_CONSUMER_KEY";
const string CONSUMER_SECRET = "YOUR_CONSUMER_SECRET";
// Access tokens
const string ACCESS_TOKEN = "YOUR_ACCESS_TOKEN";
const string ACCESS_TOKEN_SECRET = "YOUR_ACCESS_TOKEN_SECRET";
// Common parameters
@jmhdez
jmhdez / GetTweets.cs
Created Jun 13, 2012
Get twitter's home timeline
View GetTweets.cs
// Related code: https://gist.github.com/2905028
public IEnumerable<string> GetTimeline(int count)
{
// Application tokens
const string CONSUMER_KEY = "YOUR_CONSUMER_KEY";
const string CONSUMER_SECRET = "YOUR_CONSUMER_SECRET";
// Access tokens
const string ACCESS_TOKEN = "YOUR_ACCESS_TOKEN";
const string ACCESS_TOKEN_SECRET = "YOUR_ACCESS_TOKEN_SECRET";
@jmhdez
jmhdez / GoToPlugin.java
Created Jun 22, 2012
Sample Cordova Plugin for Android
View GoToPlugin.java
package koalite.cordova;
import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;
import org.apache.cordova.api.PluginResult.Status;
import org.json.JSONArray;
import android.content.Intent;
import android.net.Uri;
public class GoToPlugin extends Plugin {
@jmhdez
jmhdez / DuckType.cs
Created Dec 8, 2012
Duck Typing con C#
View DuckType.cs
// Required libs
// - NUnit
// - Castle.DynamicProxy
using System;
using System.Linq;
using System.Reflection;
using Castle.DynamicProxy;
using NUnit.Framework;
@jmhdez
jmhdez / DuckType.cs
Created Dec 16, 2012
Duck typing con C# preparado para realizar implementaciones de interfaces con objetos anónimos
View DuckType.cs
// Required libs
// - NUnit
// - Castle.DynamicProxy
using System;
using System.Linq;
using System.Reflection;
using Castle.DynamicProxy;
using NUnit.Framework;
@jmhdez
jmhdez / Id.cs
Created Apr 14, 2013
Id implementation using phantom types
View Id.cs
public struct Id<T>
{
public readonly int Value;
public Id(int value)
{
this.value = value;
}
public static implicit operator Id<T>(int value)
@jmhdez
jmhdez / Sample.cs
Last active Dec 19, 2015
Unas cuantas opciones para refactorizar un método a la hora de testearlo
View Sample.cs
// Situación inicial
public class OrderStatsCalculator
{
// Inyectado por constructor. En todos los casos lo hago igual.
private IOrderRepository repository;
// Esto se puede testear con un mock/stub/fake/etc. que inyectes por
// el constructor
public int Calculate()
{
@jmhdez
jmhdez / Elements.cs
Last active Dec 20, 2015
Compartiendo elementos en posiciones dependientes del contenedor
View Elements.cs
public interface IElement
{
IEnumerable<ChildElement> Children { get; }
}
public class ChildElement
{
public readonly IElement Value;
public readonly Point Point;
@jmhdez
jmhdez / AsDict.cs
Last active Dec 22, 2015
Extension Method para convertir un objeto anónimo en un IDictinary
View AsDict.cs
public static class Extensions
{
public IDictionary<string, object> AsDict(this object obj)
{
return obj.GetType().GetProperties().ToDictionary(x => x.Name, x => x.GetValue(obj, null))
}
}
var obj = new { Name = "Lucas", Age = 14 }.AsDict();
You can’t perform that action at this time.