Skip to content

Instantly share code, notes, and snippets.

@rcy
rcy / insertonlyonce.js
Last active August 29, 2015 14:05
a user can insert a document one time into a collection, after that, the insert is denied
// some random collection
Things = new Meteor.Collection('things');
// collection used to track users who are blocked from inserting
Blocked = new Meteor.Collection('blocked');
if (Meteor.isServer) {
Meteor.startup(function () {
// remove all documents on startup for testing purposes
Blocked.remove({});
@rcy
rcy / bootstrap-3
Created August 26, 2014 23:37
bootstrap 3 meteor 0.9.0
rcy@laird:~/tmp$ meteor --version
Meteor 0.9.0
rcy@laird:~/tmp$ meteor create myapp
myapp: created.
To run your new app:
cd myapp
meteor
rcy@laird:~/tmp$ cd myapp
@rcy
rcy / model.js
Created July 2, 2014 17:10
simple model wrapper for Meteor collections
Model = {
create: function (collection, methods) {
var model = function (doc) {
_.extend(this, doc);
};
_.extend(model.prototype, methods);
collection._transform = function (doc) {
return new model(doc);
};
@rcy
rcy / smart.json
Created April 11, 2014 20:20
smart.json iron-router lock version
"iron-router": {
"git": "https://github.com/EventedMind/iron-router.git",
"tag": "v0.6.4"
}
@rcy
rcy / using settings in meteor
Created March 20, 2014 20:27
simple example of using settings in meteor
settings.json:
```
{"foo": 99}
```
app.js
```
if (Meteor.isServer)
console.log(Meteor.settings.foo);
```
@rcy
rcy / gist:6720157
Last active December 24, 2015 00:59
branch specific deployments to %.meteor.com
PROJECT=myapp
BRANCH=$(shell git branch | sed -n '/\* /s///p')
TAG=deploy-${BRANCH}-$(shell echo -n `date +%Y%m%d%H%M%S`)
ifeq (${BRANCH}, master)
TARGET=${PROJECT}.meteor.com
else
TARGET=${BRANCH}-${PROJECT}.meteor.com
endif
@rcy
rcy / gist:6434088
Created September 4, 2013 08:08
meteor streams demo code
chatStream = new Meteor.Stream('chat');
if(Meteor.isClient) {
sendChat = function(message) {
chatStream.emit('message', message);
console.log('me: ' + message);
};
chatStream.on('message', function(message) {
console.log('user: ' + message);
@rcy
rcy / gist:6433869
Created September 4, 2013 07:44
simple minimongo query
function miniQuery(doc, query) {
var collection = new Meteor.Collection(null);
collection.insert(doc);
return !! collection.findOne(query);
}
@rcy
rcy / keydown.html
Created August 27, 2013 20:02
keydown test
<head>
<title>keydown</title>
</head>
<body>
{{> hello}}
</body>
<template name="hello">
<input type="text">
// key is a string of possibly dotted accessors
function prop(obj, key) {
var keys = key.split('.');
for (var i in keys) {
if (!obj) break;
obj = obj[keys[i]];
}
return obj;
}