Skip to content
This repository has been archived by the owner on Nov 13, 2023. It is now read-only.

Commit

Permalink
rewiring stuff to not use the database
Browse files Browse the repository at this point in the history
- collections now use static .json files in static/data
  TODO: cache these in local storage via a collection that somehow intercepts the call to fetch()
  TODO: once cache is set up, label it with some sort of version. or just expect ppl to clear their cache every once in a while...?
- all collections use the same model (there is only one model now)
- all collections are very similar now...
  • Loading branch information
rgarcia committed Dec 11, 2011
1 parent 2ddd04e commit ba4b377
Show file tree
Hide file tree
Showing 22 changed files with 59 additions and 446 deletions.
26 changes: 12 additions & 14 deletions README.md
@@ -1,26 +1,24 @@
# Runnning locally # Runnning locally


Make sure you MongoDB running on your system. For example, on Ubuntu, type

apt-get install mongodb

Download the content:

cd scraper
npm install # downloads dependencies for scrapers
(cd css-mdn; ./run.sh)
(cd css-cssinfos; ./run.sh)
(cd html-mdn; ./run.sh)
(cd js-mdn; node scrape.js)
(cd dom-mdn node scrape.js)

Run the server: Run the server:


npm install # downloads dependencies for web server npm install # downloads dependencies for web server
node web.js node web.js


Open http://localhost:5000/ in your browser. Open http://localhost:5000/ in your browser.


# Scraper

The `static/data/` directory contains our scrape of the sites we get content from. Right now we don't update this very often. If you want the most up-to-date content, you can run the scrapers:

cd scraper
npm install # downloads dependencies for scrapers
(cd css-mdn; node scrape.js)
(cd html-mdn; node scrape.js)
(cd js-mdn; node scrape.js)
(cd dom-mdn; node scrape.js)
(cd jquery; node scrape.js)

# Notes # Notes


How to use the r.js optimizer: How to use the r.js optimizer:
Expand Down
20 changes: 10 additions & 10 deletions app.js
@@ -1,11 +1,11 @@
define([ define([
'express', 'express',
'mongoose', // 'mongoose',
'controllers/loader', // 'controllers/loader',
'module', 'module',
'path', 'path',
'./config' './config'
], function (express, mongoose, controllerLoader, module, path, config) { ], function (express,/* mongoose, controllerLoader,*/ module, path, config) {


var app = null; var app = null;


Expand All @@ -20,20 +20,20 @@ define([
app.listen(config.app_port); app.listen(config.app_port);


app.configure(function() { app.configure(function() {
var db = mongoose.connect(config.mongo_uri, function(err) { // var db = mongoose.connect(config.mongo_uri, function(err) {
if (err) // if (err)
throw err; // throw err;
else // else
console.log('connected to ' + config.mongo_uri); // console.log('connected to ' + config.mongo_uri);
}); // });
app.use(express.logger({ format: ':method :url :status' })); app.use(express.logger({ format: ':method :url :status' }));
var filename = module.uri; var filename = module.uri;
var staticDir = path.dirname(filename) + '/static'; var staticDir = path.dirname(filename) + '/static';
console.log('initializing static: ' + staticDir); console.log('initializing static: ' + staticDir);
app.use(express.static(staticDir)); app.use(express.static(staticDir));
app.use(express.bodyParser()); app.use(express.bodyParser());
app.use(express.methodOverride()); app.use(express.methodOverride());
controllerLoader.bootControllers(app); //controllerLoader.bootControllers(app);
console.log('instacss version now running on port ' + config.app_port); console.log('instacss version now running on port ' + config.app_port);
}); });
}, },
Expand Down
3 changes: 1 addition & 2 deletions config.js
Expand Up @@ -9,8 +9,7 @@ define([], function() {
environment: global.process.env.NODE_ENV || 'development', environment: global.process.env.NODE_ENV || 'development',


// MONGOLAB_URI is provided by heroku mongolab add-on // MONGOLAB_URI is provided by heroku mongolab add-on
mongo_uri: global.process.env.MONGOLAB_URI || 'mongodb://127.0.0.1/instacss', //mongo_uri: global.process.env.MONGOLAB_URI || 'mongodb://127.0.0.1/instacss',


}; };
}); });

31 changes: 0 additions & 31 deletions models/cssprop.js

This file was deleted.

17 changes: 0 additions & 17 deletions models/jqentry.js

This file was deleted.

17 changes: 0 additions & 17 deletions models/mdndomobj.js

This file was deleted.

15 changes: 0 additions & 15 deletions models/mdnhtmlelement.js

This file was deleted.

17 changes: 0 additions & 17 deletions models/mdnjsobj.js

This file was deleted.

15 changes: 0 additions & 15 deletions models/mozdevcssprop.js

This file was deleted.

17 changes: 0 additions & 17 deletions models/phpext.js

This file was deleted.

11 changes: 5 additions & 6 deletions static/js/collections/jqentries.js
Expand Up @@ -2,18 +2,18 @@ define([
'jQuery', 'jQuery',
'Underscore', 'Underscore',
'Backbone', 'Backbone',
'models/jqentry' 'models/sectionscrape'
], function($, _, Backbone, JQEntry) { ], function($, _, Backbone, SectionScrape) {


var jqEntryPattern = new RegExp("^(\\W*)(.+)$"); var jqEntryPattern = new RegExp("^(\\W*)(.+)$");


var JQEntry = Backbone.Collection.extend({ var JQEntry = Backbone.Collection.extend({
url: '/jqentry', url: '/data/jquery.json',
model: JQEntry, model: SectionScrape,




comparator: function(model) { comparator: function(model) {
var title = model.get('fullTitle'); var title = model.get('title');
var results = jqEntryPattern.exec(title); var results = jqEntryPattern.exec(title);
var prefix = results[1]; var prefix = results[1];
var name = results[2]; var name = results[2];
Expand All @@ -30,4 +30,3 @@ define([


return JQEntry; return JQEntry;
}); });

11 changes: 5 additions & 6 deletions static/js/collections/mdndomobjs.js
Expand Up @@ -2,18 +2,17 @@ define([
'jQuery', 'jQuery',
'Underscore', 'Underscore',
'Backbone', 'Backbone',
'models/mdndomobj' 'models/sectionscrape'
], function($, _, Backbone, MDNDomObj) { ], function($, _, Backbone, SectionScrape) {


var MDNDomObj = Backbone.Collection.extend({ var MDNDomObj = Backbone.Collection.extend({
url: '/mdndomobj', url: '/data/dom-mdn.json',
model: MDNDomObj, model: SectionScrape,


comparator: function(model) { comparator: function(model) {
return model.get('fullTitle'); return model.get('title');
}, },
}); });


return MDNDomObj; return MDNDomObj;
}); });

8 changes: 4 additions & 4 deletions static/js/collections/mdnhtmlelements.js
Expand Up @@ -2,16 +2,16 @@ define([
'jQuery', 'jQuery',
'Underscore', 'Underscore',
'Backbone', 'Backbone',
'models/mdnhtmlelement' 'models/sectionscrape'
], function($, _, Backbone, MDNHtmlElement) { ], function($, _, Backbone, SectionScrape) {


// Handle the following cases: // Handle the following cases:
// <xyz> // <xyz>
var htmlElementPattern = new RegExp("^(\\W*)(.+)$"); var htmlElementPattern = new RegExp("^(\\W*)(.+)$");


var MDNHtmlElemnts = Backbone.Collection.extend({ var MDNHtmlElemnts = Backbone.Collection.extend({
url: '/mdnhtmlelement', url: '/data/html-mdn.json',
model: MDNHtmlElement, model: SectionScrape,


comparator: function(model) { comparator: function(model) {
var title = model.get('title'); var title = model.get('title');
Expand Down
12 changes: 6 additions & 6 deletions static/js/collections/mdnjsobjs.js
Expand Up @@ -2,18 +2,18 @@ define([
'jQuery', 'jQuery',
'Underscore', 'Underscore',
'Backbone', 'Backbone',
'models/mdnjsobj' 'models/sectionscrape'
], function($, _, Backbone, MDNJsObj) { ], function($, _, Backbone, SectionScrape) {


var MDNJsObj = Backbone.Collection.extend({ var MDNJsObj = Backbone.Collection.extend({
url: '/mdnjsobj', url: '/data/js-mdn.json',
model: MDNJsObj, model: SectionScrape,


comparator: function(model) { comparator: function(model) {
return model.get('fullTitle'); return model.get('title');
}, },

}); });


return MDNJsObj; return MDNJsObj;
}); });

22 changes: 11 additions & 11 deletions static/js/collections/mozdevcssprops.js
Expand Up @@ -2,8 +2,8 @@ define([
'jQuery', 'jQuery',
'Underscore', 'Underscore',
'Backbone', 'Backbone',
'models/mozdevcssprop' 'models/sectionscrape'
], function($, _, Backbone, MozDevCSSProp) { ], function($, _, Backbone, SectionScrape) {


// Handle the following cases: // Handle the following cases:
// -xyz // -xyz
Expand All @@ -15,17 +15,17 @@ define([
var cssPropsPattern = new RegExp("^(\\W*)(.+)$"); var cssPropsPattern = new RegExp("^(\\W*)(.+)$");


var MozDevCSSProps = Backbone.Collection.extend({ var MozDevCSSProps = Backbone.Collection.extend({
url: '/mozdevcssprop', url: '/data/css-mdn.json',
model: MozDevCSSProp, model: SectionScrape,


comparator: function(model) { comparator: function(model) {
var title = model.get('title'); var title = model.get('title');
var results = cssPropsPattern.exec(title); var results = cssPropsPattern.exec(title);
var prefix = results[1]; var prefix = results[1];
var name = results[2].toLowerCase(); var name = results[2].toLowerCase();


return prefix ? ('1' + title) : ('0' + name); return prefix ? ('1' + title) : ('0' + name);
}, },


}); });


Expand Down
11 changes: 5 additions & 6 deletions static/js/collections/phpexts.js
Expand Up @@ -2,18 +2,17 @@ define([
'jQuery', 'jQuery',
'Underscore', 'Underscore',
'Backbone', 'Backbone',
'models/phpext' 'models/SectionScrape'
], function($, _, Backbone, PhpExt) { ], function($, _, Backbone, SectionScrape) {


var PhpExt = Backbone.Collection.extend({ var PhpExt = Backbone.Collection.extend({
url: '/phpext', url: '/data/php.json',
model: PhpExt, model: SectionScrape,


comparator: function(model) { comparator: function(model) {
return model.get('fullTitle').toLowerCase(); return model.get('title').toLowerCase();
}, },
}); });


return PhpExt; return PhpExt;
}); });

1 comment on commit ba4b377

@vecter
Copy link
Collaborator

@vecter vecter commented on ba4b377 Dec 11, 2011

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jzus love commits that remove code

Please sign in to comment.