Skip to content

Instantly share code, notes, and snippets.

View lukejagodzinski's full-sized avatar

Łukasz Jagodziński lukejagodzinski

View GitHub Profile
if (Meteor.isServer) {
// Get connection object.
var connection = Meteor.server;
// Get connection constructor.
var Connection = connection.constructor;
// Get the original "apply" method.
var originalMethod = Connection.prototype.apply;
// Override the "apply" method.
Connection.prototype.apply = function(name, args, options, callback) {
if (!callback && typeof options === 'function') {
@lukejagodzinski
lukejagodzinski / sorting-with-relations-6.js
Created January 5, 2016 11:57
Article: Sorting with Relations in Meteor
defineRelation(Posts, Users, 'author', 'userId');
Template.Users.helpers({
posts: function() {
return Posts.find({}, {
sort: {
'author.name': 1
}
});
}
@lukejagodzinski
lukejagodzinski / sorting-with-relations-5.js
Created January 5, 2016 11:57
Article: Sorting with Relations in Meteor
var defineRelation = function(
Collection, RelatedCollection, relationName, relatedFieldName
) {
Collection._computations = Collection._computations || {};
var comps = Collection._computations[relationName] = {};
var stop = function(doc) {
if (comps[doc._id]) {
comps[doc._id].stop();
}
@lukejagodzinski
lukejagodzinski / sorting-with-relations-4.js
Created January 5, 2016 11:56
Article: Sorting with Relations in Meteor
Template.Users.helpers({
// Fetch posts and corresponding authors
var posts = Posts.find().fetch();
posts.forEach(function(post) {
post.author = Users.findOne(post.userId);
});
// Sort posts by a give field
posts.sort(function(a, b) {
if (a.get('author.name') < b.get('author.name')) {
@lukejagodzinski
lukejagodzinski / sorting-with-relations-3.js
Created January 5, 2016 11:56
Article: Sorting with Relations in Meteor
Template.Users.helpers({
posts: function() {
return Posts.find({}, {
sort: {
'author.name': 1
}
});
}
});
@lukejagodzinski
lukejagodzinski / sorting-with-relations-2.js
Created January 5, 2016 11:55
Article: Sorting with Relations in Meteor
User = Astro.Class({
name: 'User',
fields: {
name: 'string'
}
});
Posts = new Mongo.Collection('posts');
Post = Astro.Class({
@lukejagodzinski
lukejagodzinski / sorting-with-relations-1.js
Last active January 5, 2016 11:54
Article: Sorting with Relations in Meteor
Users = new Mongo.Collection('users');
User = Astro.Class({
name: 'User',
collection: Users,
fields: {
name: 'string'
}
});
@lukejagodzinski
lukejagodzinski / auto_inc_save.js
Last active June 26, 2016 04:07
Auto increment field using Astronomy
var autoIncSave = function(doc, fieldName) {
while (true) {
var Class = doc.constructor;
var Collection = Class.getCollection();
var sort = {};
var fields = {};
sort[fieldName] = -1;
fields[fieldName] = 1;