diff --git a/index.html b/index.html index 0043fc2..9adc1b3 100644 --- a/index.html +++ b/index.html @@ -1,9 +1,11 @@ - Backbone Starter + Super Special Awesome Stock Ticker + + @@ -13,9 +15,9 @@ - + - + diff --git a/src/main.js b/src/main.js index a63a7c7..3872b23 100644 --- a/src/main.js +++ b/src/main.js @@ -1,3 +1,40 @@ +(function () { -// Remove this line when you start working -alert('Hello World!'); + // Create our stocks + var yhoo = new Stock({ name: 'YHOO' }); + var aapl = new Stock({ name: 'AAPL' }); + var goog = new Stock({ name: 'GOOG' }); + var msft = new Stock({ name: 'MSFT' }); + + // Store in a variable for convenience + var stocks = [yhoo, aapl, goog, msft]; + + // Create a view for each stock and render its element to the page + // Since view start with a blank div, we can do this no problem + _.each(stocks, function (stock) { + var view = new StockView({ model: stock }); + $('.stocks').append(view.el); + }); + + // ---- + // Get realtime stock data + // It's not required that you understand the code. + + window.updateStocks = function (data) { + + _.each(data.query.results.quote, function (quote) { + var stock = _.find(stocks, function (s) { return s.get('name') == quote.symbol }); + stock.updatePrice(quote.AskRealtime); + }); + setTimeout(updateLoop, 3000); + } + + var updateLoop = function () { + $.ajax({ + url: 'http://mks-cacher.nodejitsu.com/', + dataType: 'jsonp' + }); + }; + updateLoop(); + +})(); diff --git a/src/models/.gitkeep b/src/models/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/models/dummy.js b/src/models/dummy.js deleted file mode 100644 index a82d49f..0000000 --- a/src/models/dummy.js +++ /dev/null @@ -1,9 +0,0 @@ -(function () { - - window.Dummy = Backbone.Model.extend({ - defaults: { - foo: 'default val' - } - }); - -})(); diff --git a/src/models/stock.js b/src/models/stock.js new file mode 100644 index 0000000..d05bcda --- /dev/null +++ b/src/models/stock.js @@ -0,0 +1,10 @@ +(function () { + + window.Stock = Backbone.Model.extend({ + updatePrice: function (newPrice) { + console.log('Updating', this.get('name'), 'price to:', newPrice); + // TODO + } + }); + +})(); diff --git a/src/views/.gitkeep b/src/views/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/views/dummy.js b/src/views/dummy.js deleted file mode 100644 index b61d1f0..0000000 --- a/src/views/dummy.js +++ /dev/null @@ -1,9 +0,0 @@ -(function () { - - window.DummyView = Backbone.View.extend({ - initialize: function (options) { - this.bar = 'init val'; - } - }); - -})(); diff --git a/src/views/stock-view.js b/src/views/stock-view.js new file mode 100644 index 0000000..faa5795 --- /dev/null +++ b/src/views/stock-view.js @@ -0,0 +1,8 @@ +(function () { + + window.StockView = Backbone.View.extend({ + className: 'stock' + // TODO + }); + +})();