Skip to content

Instantly share code, notes, and snippets.

@thefringeninja
thefringeninja / Probability.cs
Created October 5, 2012 19:13
Greg Young Probability Kata - Simple Testing Style
public class Probability : IEquatable<Probability>
{
#region Equality members
public bool Equals(Probability other)
{
return EqualsWithin(other, 5);
}
public override bool Equals(object obj)
@thefringeninja
thefringeninja / gist:3924680
Created October 20, 2012 20:29
Double Click with Reactive UI
public MyUserControlView()
{
InitializeComponent();
var mouseUp = Observable.FromEventPattern<
MouseButtonEventHandler,
MouseButtonEventArgs>
(h => MouseLeftButtonUp += h, h => MouseLeftButtonUp -= h);
var doubleClick = mouseUp.SelectMany(
public class Item {
public ReactiveCommand Remove{ get; protected set; }
}
public class MyModel {
public ObservableCollection<Item> Items { get; protected set; }
}
MyModel model = new MyModel{Items = { new Item(), new Item() }};
this.Items = model.Items.CreateDerivedCollection(projectFunction);
// how to wire existing Item's RemoveIt command here?
@thefringeninja
thefringeninja / gist:5701817
Created June 3, 2013 21:57
When you know you've taken it too far..
bus.Register(new LoggedAttribute().Apply<SendEmail>(message =>
{
using (var client = new SmtpClient())
{
client.Send(message);
}
}));
public interface ICheckRequests
{
bool IsLocal();
}
public class ProductionRequestChecker : ICheckRequests
{
public bool IsLocal()
{
return HttpContext.Current.Request.IsLocal;
public class CassetteBundleConfiguration : IConfiguration<BundleCollection>
{
public void Configure(BundleCollection bundles)
{
bundles.Add<StylesheetBundle>("content/bootstrap/metro-bootstrap", new[] {"metro-bootstrap.less"});
bundles.Add<StylesheetBundle>("content/bootstrap", new[] {"bootstrap.less"});
bundles.Add<StylesheetBundle>("content/css/app", new[] {"main.less"});
bundles.AddPerIndividualFile<StylesheetBundle>("content/css/lib", new FileSearch
{
public class ClaimsModuleSpecifications
{
public Specification list_of_existing_claims()
{
return new ModuleSpecification<ClaimsModule>
{
Bootstrap = bootstrapper => { },
When = () => UserAgent.Get("/claims"),
Expect =
{
public static class CriteriaExtensions
{
public static string IsEqualTo(this string criteria)
{
return String.Format("= '{0}'", criteria ?? string.Empty);
}
}
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)
@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"/>