Skip to content

Instantly share code, notes, and snippets.

View Vintharas's full-sized avatar
👶
Parenting

Jaime Vintharas

👶
Parenting
View GitHub Profile
@Vintharas
Vintharas / knockout-observables-with-object-values.js
Last active December 18, 2015 00:09
By default knockout notifies subscribers of a change when an object value is written, even if it is identical to the old one
// spec/observableBehaviors.js
it('Should notify subscribers of a change when an object value is written, even if it is identical to the old value', function() {
// Because we can't tell whether something further down the object graph has changed, we regard
// all objects as new values. To override this, set an "equalityComparer" callback
var constantObject = {};
var instance = new ko.observable(constantObject);
var notifiedValues = [];
instance.subscribe(notifiedValues.push, notifiedValues);
instance(constantObject);
expect(notifiedValues).toEqual([constantObject]);
@Vintharas
Vintharas / knockout-subscribables.js
Created June 2, 2013 19:33
Subscribers to knockout observables are notified as soon as the observable changes
// src/subscribables/subscribable.js
"notifySubscribers": function (valueToNotify, event) {
event = event || defaultEvent;
if (this._subscriptions[event]) {
ko.dependencyDetection.ignore(function() {
ko.utils.arrayForEach(this._subscriptions[event].slice(0), function (subscription) {
// In case a subscription was disposed during the arrayForEach cycle, check
// for isDisposed on each subscription before invoking its callback
@Vintharas
Vintharas / sublime_text_windows.json
Created November 15, 2014 16:27
Sublime text preferences windows
{
"bold_folder_labels": true,
"caret_style": "phase",
"color_scheme": "Packages/Dayle Rees Color Schemes/sublime/hyrule.tmTheme",
"draw_white_space": "all",
"fade_fold_buttons": false,
"font_face": "Inconsolata",
"font_size": 14.0,
"highlight_line": true,
"highlight_modified_tabs": true,
[user]
name = Jaime González García
email = someemail@company.com
[alias]
st = status
ci = commit
co = checkout
lo = log
br = branch
lol = log --graph --decorate --pretty=oneline --abbrev-commit --all
@Vintharas
Vintharas / gist:bfa5709746f9dbea3794
Created January 28, 2015 13:55
Mocking IDBSet IQueryable with Moq
using System.Data.Entity;
using System.Linq;
using Moq;
namespace Platform.Domain.Tests.Helpers
{
public class QueryableDbSetMock
{
public static IDbSet<T> GetQueryableMockDbSet<T>(params T[] sourceList) where T : class
{
@Vintharas
Vintharas / test
Created February 13, 2015 13:22
ReSharper NUnit Test live template
[Test]
public void $methodName$_When$context$_Should$expectedResult$()
{
// Arrange
$END$
// Act
// Assert
}
@Vintharas
Vintharas / gist:aaa4d760308d0b9af177
Created March 2, 2015 13:46
MVC, ModelState Helpers, HasErrors
public static class ModelStateTestHelpers
{
public static bool HasError(this ModelStateDictionary modelState, string errorMessage)
{
return modelState.Any(ms => ms.Value.Errors.Any(e => e.ErrorMessage == errorMessage));
}
}
@Vintharas
Vintharas / gist:f0d29f39662f282d6ca0
Created March 2, 2015 13:46
AutoFixture MVC Controller Customization
public static class ModelStateTestHelpers
{
public static bool HasError(this ModelStateDictionary modelState, string errorMessage)
{
return modelState.Any(ms => ms.Value.Errors.Any(e => e.ErrorMessage == errorMessage));
}
}
@Vintharas
Vintharas / ngDirective.js
Last active September 24, 2015 13:20
Angular directive ReSharper Live Template
/*
* $description$ directive.
*
* Usage:
* <vtf-$directiveName$></vtf-$directiveName$>
*
*/
(function () {
'use strict';
@Vintharas
Vintharas / memoize.js
Last active January 22, 2016 17:11
Memoize using a promise (angular $q)
/*
*
* Memoizes call to a service using a promise
*
*/
function memoizeWithPromise(getFn) {
let memoizedCalls = new Map();
return function(...args) {
let serializedArgs = JSON.stringify(args);