Skip to content

Instantly share code, notes, and snippets.

View thefringeninja's full-sized avatar
🍿

João Bragança thefringeninja

🍿
View GitHub Profile
@thefringeninja
thefringeninja / bus.coffee
Created June 10, 2014 04:03
Undo with Knockout and Eventing
class window.Bus
constructor: ->
@dispatcher = {}
subscribe: (pattern, handler) ->
handlers = @dispatcher[pattern] || []
handlers.push handler
@dispatcher[pattern] = handlers
publish: (e) ->
@thefringeninja
thefringeninja / gist:1860325ad6dcf490795b
Created May 27, 2014 16:47
MessagingAcceptanceTests
public interface MessageFormatter
{
byte[] Serialize(object message);
object Deserialize(byte[] data, Type type);
}
public class NetDataContractMessageFormatter : MessageFormatter
{
private readonly NetDataContractSerializer serializer;
[DataContract] public class SomethingHappened : Event
{
[DataMember(Order = 1)] public readonly string Sku;
[DataMember(Order = 2)] public readonly string UPC;
[DataMember(Order = 3)] public readonly string Description;
public SomethingHappened(string sku, string upc, string description)
{
Sku = sku;
UPC = upc;
public class ValidationErrorsViewModel : IEnumerable<ValidationErrorViewModel>
{
private readonly IEnumerable<ValidationErrorViewModel> errors;
public ValidationErrorsViewModel(ModelValidationResult model)
{
errors = from error in model.Errors
from member in error.MemberNames
select new ValidationErrorViewModel(member, error.GetMessage);
}
@thefringeninja
thefringeninja / why.cs
Created October 22, 2013 18:35
Words fail.
private static IEnumerable<string> AreYouSerious(UserPrincipal identity)
{
var enumerator = identity.GetAuthorizationGroups().GetEnumerator();
while (enumerator.MoveNext())
{
Principal authorizationGroup = null;
try
{
authorizationGroup = enumerator.Current;
@thefringeninja
thefringeninja / RavenProfilerModule.cs
Created August 15, 2013 17:50
Profiling RavenDB with Nancy
public class RavenProfilerModule : NancyModule
{
private readonly IEnumerable<IDocumentStore> documentStores;
public RavenProfilerModule(IEnumerable<IDocumentStore> documentStores)
: base("/_raven-profiler")
{
this.documentStores = documentStores;
Get["/"] = p =>
{
public class MyAccount{
public string UserName{get;set;}
public Guid Id{get;set;}
public IEnumerable<MyBullShitClaimEntity> Claims{get;set;}
public int EPenisSize{get;set;}
}
public class MyUserIdentity : IUserIdentity {
public string UserName{get;set; }
public IEnumerable<string> Claims{get;set;}
class window.Ajaxinator
constructor: (document) ->
@document = document
serialize = (form) ->
return if not form or form.nodeName isnt "FORM"
q = []
i = form.elements.length - 1
while i >= 0
element = form.elements[i]
@thefringeninja
thefringeninja / web..config
Created August 5, 2013 15:21
Regular nancy razor config
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false"/>
</sectionGroup>
<section name="razor" type="Nancy.ViewEngines.Razor.RazorConfigurationSection, Nancy.ViewEngines.Razor"/>
</configSections>
<appSettings>
<add key="webPages:Enabled" value="false"/>
public class CommandBinder : IModelBinder
{
private readonly IEnumerable<ITypeConverter> typeConverters;
private readonly IEnumerable<IBodyDeserializer> bodyDeserializers;
private readonly IFieldNameConverter fieldNameConverter;
private readonly BindingDefaults defaults;
public CommandBinder(
IEnumerable<ITypeConverter> typeConverters, IEnumerable<IBodyDeserializer> bodyDeserializers,
IFieldNameConverter fieldNameConverter, BindingDefaults defaults)