├── .gitignore
├── LICENSE
├── README.md
├── chapter-2
├── example1
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── inheritance.js
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ └── components
│ │ │ │ └── .gitkeep
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ ├── robots.txt
│ │ └── test.js
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example10
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── prototype.js
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ └── components
│ │ │ │ └── .gitkeep
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example2
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── inheritance2.js
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ └── components
│ │ │ │ └── .gitkeep
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example3
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── inheritance3.js
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ └── components
│ │ │ │ └── .gitkeep
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example4
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── mixins
│ │ │ ├── focusable.js
│ │ │ └── valid_number.js
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── numeric_box.js
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ └── components
│ │ │ │ └── .gitkeep
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example5
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ └── components
│ │ │ │ └── .gitkeep
│ │ ├── user.js
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example6
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ └── components
│ │ │ │ └── .gitkeep
│ │ ├── user.js
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example7
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ └── components
│ │ │ │ └── .gitkeep
│ │ ├── user.js
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example8
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ └── components
│ │ │ │ └── .gitkeep
│ │ ├── time_manager.js
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
└── example9
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ ├── app.js
│ ├── child.js
│ ├── components
│ │ └── .gitkeep
│ ├── controllers
│ │ └── .gitkeep
│ ├── father.js
│ ├── helpers
│ │ └── .gitkeep
│ ├── index.html
│ ├── models
│ │ └── .gitkeep
│ ├── router.js
│ ├── routes
│ │ └── .gitkeep
│ ├── styles
│ │ └── app.css
│ ├── templates
│ │ ├── application.hbs
│ │ └── components
│ │ │ └── .gitkeep
│ └── views
│ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ └── environment.js
│ ├── package.json
│ ├── public
│ ├── crossdomain.xml
│ └── robots.txt
│ ├── testem.json
│ ├── tests
│ ├── .jshintrc
│ ├── helpers
│ │ ├── resolver.js
│ │ └── start-app.js
│ ├── index.html
│ ├── test-helper.js
│ └── unit
│ │ └── .gitkeep
│ └── vendor
│ └── .gitkeep
├── chapter-3
├── example1
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ ├── .gitkeep
│ │ │ └── index.js
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ ├── .gitkeep
│ │ │ └── index.js
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ ├── components
│ │ │ │ └── .gitkeep
│ │ │ └── index.hbs
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example2
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ ├── .gitkeep
│ │ │ └── index.js
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ ├── .gitkeep
│ │ │ └── index.js
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ ├── components
│ │ │ │ └── .gitkeep
│ │ │ └── index.hbs
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example3
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ ├── .gitkeep
│ │ │ └── index.js
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ ├── components
│ │ │ │ └── .gitkeep
│ │ │ └── index.hbs
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── dist
│ │ ├── assets
│ │ │ ├── ember-data.js.map
│ │ │ ├── example3.css
│ │ │ ├── example3.js
│ │ │ ├── example3.map
│ │ │ ├── failed.png
│ │ │ ├── passed.png
│ │ │ ├── test-loader.js
│ │ │ ├── test-support.css
│ │ │ ├── test-support.js
│ │ │ ├── test-support.map
│ │ │ ├── vendor.css
│ │ │ ├── vendor.js
│ │ │ └── vendor.map
│ │ ├── crossdomain.xml
│ │ ├── index.html
│ │ ├── robots.txt
│ │ ├── testem.js
│ │ └── tests
│ │ │ └── index.html
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example4
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ ├── .gitkeep
│ │ │ └── index.js
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ ├── .gitkeep
│ │ │ └── index.js
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ ├── components
│ │ │ │ └── .gitkeep
│ │ │ └── index.hbs
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example5
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ ├── .gitkeep
│ │ │ ├── application.js
│ │ │ └── index.js
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ ├── .gitkeep
│ │ │ ├── application.js
│ │ │ └── index.js
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ ├── components
│ │ │ │ └── .gitkeep
│ │ │ └── index.hbs
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example6
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ ├── .gitkeep
│ │ │ └── index.js
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ ├── components
│ │ │ │ └── .gitkeep
│ │ │ └── index.hbs
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example7
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ ├── .gitkeep
│ │ │ └── truncate.js
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── application.hbs
│ │ │ ├── components
│ │ │ │ └── .gitkeep
│ │ │ └── index.hbs
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
└── example8
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ ├── app.js
│ ├── components
│ │ └── .gitkeep
│ ├── controllers
│ │ └── .gitkeep
│ ├── helpers
│ │ └── .gitkeep
│ ├── index.html
│ ├── models
│ │ └── .gitkeep
│ ├── router.js
│ ├── routes
│ │ └── .gitkeep
│ ├── styles
│ │ └── app.css
│ ├── templates
│ │ ├── application.emblem
│ │ ├── components
│ │ │ └── .gitkeep
│ │ └── index.emblem
│ └── views
│ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ └── environment.js
│ ├── package.json
│ ├── public
│ ├── crossdomain.xml
│ └── robots.txt
│ ├── testem.json
│ ├── tests
│ ├── .jshintrc
│ ├── helpers
│ │ ├── resolver.js
│ │ └── start-app.js
│ ├── index.html
│ ├── test-helper.js
│ └── unit
│ │ └── .gitkeep
│ └── vendor
│ └── .gitkeep
├── chapter-4
├── example1
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── about.hbs
│ │ │ ├── application.hbs
│ │ │ ├── components
│ │ │ │ └── .gitkeep
│ │ │ └── products.hbs
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── .gitkeep
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example2
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ └── .gitkeep
│ │ ├── styles
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── about.hbs
│ │ │ ├── application.hbs
│ │ │ ├── components
│ │ │ │ └── .gitkeep
│ │ │ ├── products.hbs
│ │ │ └── products
│ │ │ │ └── new.hbs
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── .gitkeep
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
├── example3
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ │ ├── app.js
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── controllers
│ │ │ └── .gitkeep
│ │ ├── helpers
│ │ │ └── .gitkeep
│ │ ├── index.html
│ │ ├── models
│ │ │ └── .gitkeep
│ │ ├── router.js
│ │ ├── routes
│ │ │ ├── .gitkeep
│ │ │ ├── commits
│ │ │ │ ├── commit.js
│ │ │ │ └── index.js
│ │ │ └── index.js
│ │ ├── styles
│ │ │ ├── .gitkeep
│ │ │ └── app.css
│ │ ├── templates
│ │ │ ├── .gitkeep
│ │ │ ├── application.hbs
│ │ │ ├── commits
│ │ │ │ ├── commit.hbs
│ │ │ │ └── index.hbs
│ │ │ └── components
│ │ │ │ └── .gitkeep
│ │ └── views
│ │ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ │ └── environment.js
│ ├── package.json
│ ├── public
│ │ ├── .gitkeep
│ │ ├── crossdomain.xml
│ │ └── robots.txt
│ ├── testem.json
│ ├── tests
│ │ ├── .jshintrc
│ │ ├── helpers
│ │ │ ├── resolver.js
│ │ │ └── start-app.js
│ │ ├── index.html
│ │ ├── test-helper.js
│ │ └── unit
│ │ │ └── .gitkeep
│ └── vendor
│ │ └── .gitkeep
└── example4
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ ├── app.js
│ ├── components
│ │ └── .gitkeep
│ ├── controllers
│ │ ├── .gitkeep
│ │ └── application.js
│ ├── helpers
│ │ └── .gitkeep
│ ├── index.html
│ ├── models
│ │ └── .gitkeep
│ ├── router.js
│ ├── routes
│ │ ├── .gitkeep
│ │ ├── about.js
│ │ └── index.js
│ ├── styles
│ │ └── app.css
│ ├── templates
│ │ ├── about.hbs
│ │ ├── about_sidebar.hbs
│ │ ├── application.hbs
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── index.hbs
│ │ └── sidebar.hbs
│ └── views
│ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ └── environment.js
│ ├── package.json
│ ├── public
│ ├── .gitkeep
│ ├── crossdomain.xml
│ └── robots.txt
│ ├── testem.json
│ ├── tests
│ ├── .jshintrc
│ ├── helpers
│ │ ├── resolver.js
│ │ └── start-app.js
│ ├── index.html
│ ├── test-helper.js
│ └── unit
│ │ └── .gitkeep
│ └── vendor
│ └── .gitkeep
├── chapter-5
└── example1
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ ├── app.js
│ ├── components
│ │ └── .gitkeep
│ ├── controllers
│ │ ├── .gitkeep
│ │ ├── application.js
│ │ ├── product.js
│ │ ├── product
│ │ │ └── reviews.js
│ │ └── products.js
│ ├── helpers
│ │ └── .gitkeep
│ ├── index.html
│ ├── models
│ │ └── .gitkeep
│ ├── router.js
│ ├── routes
│ │ ├── .gitkeep
│ │ ├── product.js
│ │ ├── product
│ │ │ └── reviews.js
│ │ └── products.js
│ ├── styles
│ │ └── app.css
│ ├── templates
│ │ ├── application.hbs
│ │ ├── components
│ │ │ └── .gitkeep
│ │ ├── product.hbs
│ │ ├── product
│ │ │ └── reviews.hbs
│ │ └── products.hbs
│ └── views
│ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ └── environment.js
│ ├── package.json
│ ├── public
│ ├── .gitkeep
│ ├── crossdomain.xml
│ └── robots.txt
│ ├── testem.json
│ ├── tests
│ ├── .jshintrc
│ ├── helpers
│ │ ├── resolver.js
│ │ └── start-app.js
│ ├── index.html
│ ├── test-helper.js
│ └── unit
│ │ └── .gitkeep
│ └── vendor
│ └── .gitkeep
├── chapter-6
└── example1
│ ├── .bowerrc
│ ├── .editorconfig
│ ├── .ember-cli
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── Brocfile.js
│ ├── README.md
│ ├── app
│ ├── adapters
│ │ └── application.js
│ ├── app.js
│ ├── components
│ │ └── .gitkeep
│ ├── controllers
│ │ └── .gitkeep
│ ├── helpers
│ │ └── .gitkeep
│ ├── index.html
│ ├── models
│ │ ├── .gitkeep
│ │ ├── author.js
│ │ ├── book.js
│ │ ├── publisher.js
│ │ └── review.js
│ ├── router.js
│ ├── routes
│ │ ├── .gitkeep
│ │ └── books
│ │ │ ├── book.js
│ │ │ ├── index.js
│ │ │ └── new.js
│ ├── styles
│ │ └── app.css
│ ├── templates
│ │ ├── application.hbs
│ │ ├── books
│ │ │ ├── book.hbs
│ │ │ ├── index.hbs
│ │ │ └── new.hbs
│ │ ├── components
│ │ │ └── .gitkeep
│ │ └── index.hbs
│ └── views
│ │ └── .gitkeep
│ ├── bower.json
│ ├── config
│ └── environment.js
│ ├── package.json
│ ├── public
│ ├── .gitkeep
│ ├── crossdomain.xml
│ └── robots.txt
│ ├── server
│ ├── .jshintrc
│ ├── index.js
│ └── mocks
│ │ ├── authors.js
│ │ ├── books.js
│ │ ├── publishers.js
│ │ └── reviews.js
│ ├── testem.json
│ ├── tests
│ ├── .jshintrc
│ ├── helpers
│ │ ├── resolver.js
│ │ └── start-app.js
│ ├── index.html
│ ├── test-helper.js
│ └── unit
│ │ └── .gitkeep
│ └── vendor
│ └── .gitkeep
└── chapter-7
└── example1
├── .bowerrc
├── .editorconfig
├── .ember-cli
├── .gitignore
├── .jshintrc
├── .travis.yml
├── Brocfile.js
├── README.md
├── app
├── app.js
├── components
│ ├── .gitkeep
│ ├── about-us-intro.js
│ ├── date-picker.js
│ ├── ember-image.js
│ └── long-text.js
├── controllers
│ ├── .gitkeep
│ ├── about-us.js
│ └── index.js
├── helpers
│ └── .gitkeep
├── index.html
├── models
│ └── .gitkeep
├── router.js
├── routes
│ ├── .gitkeep
│ └── index.js
├── styles
│ └── app.css
├── templates
│ ├── about-us.hbs
│ ├── application.hbs
│ ├── components
│ │ ├── .gitkeep
│ │ ├── about-us-intro.hbs
│ │ ├── copyright-footer.hbs
│ │ ├── date-picker.hbs
│ │ ├── long-text.hbs
│ │ └── product-description.hbs
│ └── index.hbs
└── views
│ └── .gitkeep
├── bower.json
├── config
└── environment.js
├── package.json
├── public
├── .gitkeep
├── crossdomain.xml
└── robots.txt
├── testem.json
├── tests
├── .jshintrc
├── helpers
│ ├── resolver.js
│ └── start-app.js
├── index.html
├── test-helper.js
└── unit
│ └── .gitkeep
└── vendor
└── .gitkeep
/.gitignore:
--------------------------------------------------------------------------------
1 | *.log
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | emberjs-essentials
2 | ==================
3 |
4 | Ember.js Essentials Code Repository
5 |
--------------------------------------------------------------------------------
/chapter-2/example1/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "bower_components",
3 | "analytics": false
4 | }
5 |
--------------------------------------------------------------------------------
/chapter-2/example1/.ember-cli:
--------------------------------------------------------------------------------
1 | {
2 | /**
3 | Ember CLI sends analytics information by default. The data is completely
4 | anonymous, but there are times when you might want to disable this behavior.
5 |
6 | Setting `disableAnalytics` to true will prevent any data from being sent.
7 | */
8 | "disableAnalytics": false
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-2/example1/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 |
7 | # dependencies
8 | /node_modules
9 | /bower_components
10 |
11 | # misc
12 | /.sass-cache
13 | /connect.lock
14 | /coverage/*
15 | /libpeerconnection.log
16 | npm-debug.log
17 | testem.log
18 |
--------------------------------------------------------------------------------
/chapter-2/example1/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: node_js
3 |
4 | sudo: false
5 |
6 | cache:
7 | directories:
8 | - node_modules
9 |
10 | before_install:
11 | - "npm config set spin false"
12 | - "npm install -g npm@^2"
13 |
14 | install:
15 | - npm install -g bower
16 | - npm install
17 | - bower install
18 |
19 | script:
20 | - npm test
21 |
--------------------------------------------------------------------------------
/chapter-2/example1/app/app.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import Resolver from 'ember/resolver';
3 | import loadInitializers from 'ember/load-initializers';
4 | import config from './config/environment';
5 | import inheritance from './inheritance';
6 |
7 | Ember.MODEL_FACTORY_INJECTIONS = true;
8 |
9 | var App = Ember.Application.extend({
10 | modulePrefix: config.modulePrefix,
11 | podModulePrefix: config.podModulePrefix,
12 | Resolver: Resolver
13 | });
14 |
15 | loadInitializers(App, config.modulePrefix);
16 | inheritance();
17 |
18 | export default App;
19 |
20 |
--------------------------------------------------------------------------------
/chapter-2/example1/app/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-2/example1/app/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-2/example1/app/controllers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-2/example1/app/controllers/.gitkeep
--------------------------------------------------------------------------------
/chapter-2/example1/app/helpers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-2/example1/app/helpers/.gitkeep
--------------------------------------------------------------------------------
/chapter-2/example1/app/models/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-2/example1/app/models/.gitkeep
--------------------------------------------------------------------------------
/chapter-2/example1/app/router.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import config from './config/environment';
3 |
4 | var Router = Ember.Router.extend({
5 | location: config.locationType
6 | });
7 |
8 | Router.map(function() {
9 | });
10 |
11 | export default Router;
12 |
--------------------------------------------------------------------------------
/chapter-2/example1/app/routes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-2/example1/app/routes/.gitkeep
--------------------------------------------------------------------------------
/chapter-2/example1/app/styles/app.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-2/example1/app/styles/app.css
--------------------------------------------------------------------------------
/chapter-2/example1/app/templates/application.hbs:
--------------------------------------------------------------------------------
1 |
Hi Mr. {{firstName}} {{lastName}}
This Template should contains some information about us
5 |
--------------------------------------------------------------------------------
/chapter-4/example2/app/templates/application.hbs:
--------------------------------------------------------------------------------
1 |
Welcome to Ember.js
2 |
{{#link-to 'about'}}About{{/link-to}}
3 |
{{#link-to 'products'}}Products{{/link-to}}
4 |
{{#link-to 'products.new'}}Create a new product{{/link-to}}
5 | {{outlet}}
6 |
--------------------------------------------------------------------------------
/chapter-4/example2/app/templates/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example2/app/templates/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example2/app/templates/products.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Products Template
4 | {{outlet}}
5 |
--------------------------------------------------------------------------------
/chapter-4/example2/app/templates/products/new.hbs:
--------------------------------------------------------------------------------
1 |
2 |
Create a New Product
3 |
4 | Product name:
5 | {{input value=name }}
6 |
7 | Product Description:
8 | {{textarea value=description }}
9 |
10 |
Create
11 |
--------------------------------------------------------------------------------
/chapter-4/example2/app/views/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example2/app/views/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example2/public/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example2/public/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example2/public/robots.txt:
--------------------------------------------------------------------------------
1 | # http://www.robotstxt.org
2 | User-agent: *
3 |
--------------------------------------------------------------------------------
/chapter-4/example2/testem.json:
--------------------------------------------------------------------------------
1 | {
2 | "framework": "qunit",
3 | "test_page": "tests/index.html",
4 | "launch_in_ci": [
5 | "PhantomJS"
6 | ],
7 | "launch_in_dev": [
8 | "PhantomJS",
9 | "Chrome"
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/chapter-4/example2/tests/helpers/resolver.js:
--------------------------------------------------------------------------------
1 | import Resolver from 'ember/resolver';
2 | import config from '../../config/environment';
3 |
4 | var resolver = Resolver.create();
5 |
6 | resolver.namespace = {
7 | modulePrefix: config.modulePrefix,
8 | podModulePrefix: config.podModulePrefix
9 | };
10 |
11 | export default resolver;
12 |
--------------------------------------------------------------------------------
/chapter-4/example2/tests/test-helper.js:
--------------------------------------------------------------------------------
1 | import resolver from './helpers/resolver';
2 | import {
3 | setResolver
4 | } from 'ember-qunit';
5 |
6 | setResolver(resolver);
7 |
8 | document.write('
');
9 |
10 | QUnit.config.urlConfig.push({ id: 'nocontainer', label: 'Hide container'});
11 | var containerVisibility = QUnit.urlParams.nocontainer ? 'hidden' : 'visible';
12 | document.getElementById('ember-testing-container').style.visibility = containerVisibility;
13 |
--------------------------------------------------------------------------------
/chapter-4/example2/tests/unit/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example2/tests/unit/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example2/vendor/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example2/vendor/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "bower_components",
3 | "analytics": false
4 | }
5 |
--------------------------------------------------------------------------------
/chapter-4/example3/.ember-cli:
--------------------------------------------------------------------------------
1 | {
2 | /**
3 | Ember CLI sends analytics information by default. The data is completely
4 | anonymous, but there are times when you might want to disable this behavior.
5 |
6 | Setting `disableAnalytics` to true will prevent any data from being sent.
7 | */
8 | "disableAnalytics": false
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-4/example3/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 |
7 | # dependencies
8 | /node_modules
9 | /bower_components/*
10 |
11 | # misc
12 | /.sass-cache
13 | /connect.lock
14 | /coverage/*
15 | /libpeerconnection.log
16 | npm-debug.log
17 | testem.log
18 |
--------------------------------------------------------------------------------
/chapter-4/example3/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: node_js
3 |
4 | sudo: false
5 |
6 | cache:
7 | directories:
8 | - node_modules
9 |
10 | install:
11 | - npm install -g bower
12 | - npm install
13 | - bower install
14 |
15 | script:
16 | - npm test
17 |
--------------------------------------------------------------------------------
/chapter-4/example3/app/app.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import Resolver from 'ember/resolver';
3 | import loadInitializers from 'ember/load-initializers';
4 | import config from './config/environment';
5 |
6 | Ember.MODEL_FACTORY_INJECTIONS = true;
7 |
8 | var App = Ember.Application.extend({
9 | modulePrefix: config.modulePrefix,
10 | podModulePrefix: config.podModulePrefix,
11 | Resolver: Resolver
12 | });
13 |
14 | loadInitializers(App, config.modulePrefix);
15 |
16 | export default App;
17 |
--------------------------------------------------------------------------------
/chapter-4/example3/app/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/app/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/app/controllers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/app/controllers/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/app/helpers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/app/helpers/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/app/models/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/app/models/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/app/router.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import config from './config/environment';
3 |
4 | var Router = Ember.Router.extend({
5 | location: config.locationType
6 | });
7 |
8 | Router.map(function() {
9 | this.resource("commits",function(){
10 | this.route("commit",{path:":sha"});
11 | });
12 | });
13 |
14 | export default Router;
15 |
--------------------------------------------------------------------------------
/chapter-4/example3/app/routes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/app/routes/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/app/routes/commits/commit.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.Route.extend({
4 | model: function(params){
5 | console.log("model hook called");
6 | var url = 'https://api.github.com/repos/emberjs/ember.js/commits/'+ params.sha;
7 | return Ember.$.getJSON(url);
8 |
9 | },
10 | serialize: function(model){
11 | return {sha: model.sha};
12 | }
13 | });
14 |
15 |
--------------------------------------------------------------------------------
/chapter-4/example3/app/routes/commits/index.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.Route.extend({
4 | model: function() {
5 | var url = 'https://api.github.com/repos/emberjs/ember.js/commits';
6 | return Ember.$.getJSON(url);
7 | }
8 | });
--------------------------------------------------------------------------------
/chapter-4/example3/app/routes/index.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.Route.extend({
4 | redirect: function(){
5 | this.transitionTo("commits.index");
6 | }
7 | });
--------------------------------------------------------------------------------
/chapter-4/example3/app/styles/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/app/styles/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/app/styles/app.css:
--------------------------------------------------------------------------------
1 | html, body {
2 | margin: 20px;
3 | }
4 |
5 | #logo img{
6 | width:200px;
7 | height:200px;
8 | }
--------------------------------------------------------------------------------
/chapter-4/example3/app/templates/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/app/templates/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/app/templates/application.hbs:
--------------------------------------------------------------------------------
1 |
Ember.js Repo
2 | {{outlet}}
3 |
--------------------------------------------------------------------------------
/chapter-4/example3/app/templates/commits/commit.hbs:
--------------------------------------------------------------------------------
1 | {{#link-to 'commits.index'}}Back To Commits {{/link-to}}
2 | Commit {{model.sha}} detail
3 |
4 |
5 |
6 | Author : {{model.commit.author.name}}
7 | Message : {{model.commit.message}}
8 |
--------------------------------------------------------------------------------
/chapter-4/example3/app/templates/commits/index.hbs:
--------------------------------------------------------------------------------
1 | Commits
2 | {{#each c in model}}
3 | Sha : {{#link-to 'commits.commit' c}}{{c.sha}}{{/link-to}}
4 | Author : {{c.commit.author.name}}
5 | Message : {{c.commit.message}}
6 |
7 | {{/each}}
--------------------------------------------------------------------------------
/chapter-4/example3/app/templates/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/app/templates/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/app/views/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/app/views/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/public/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/public/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/public/robots.txt:
--------------------------------------------------------------------------------
1 | # robotstxt.org/
2 |
3 | User-agent: *
4 |
--------------------------------------------------------------------------------
/chapter-4/example3/testem.json:
--------------------------------------------------------------------------------
1 | {
2 | "framework": "qunit",
3 | "test_page": "tests/index.html",
4 | "launch_in_ci": [
5 | "PhantomJS"
6 | ],
7 | "launch_in_dev": [
8 | "PhantomJS",
9 | "Chrome"
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/chapter-4/example3/tests/helpers/resolver.js:
--------------------------------------------------------------------------------
1 | import Resolver from 'ember/resolver';
2 | import config from '../../config/environment';
3 |
4 | var resolver = Resolver.create();
5 |
6 | resolver.namespace = {
7 | modulePrefix: config.modulePrefix,
8 | podModulePrefix: config.podModulePrefix
9 | };
10 |
11 | export default resolver;
12 |
--------------------------------------------------------------------------------
/chapter-4/example3/tests/unit/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/tests/unit/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example3/vendor/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example3/vendor/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example4/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "bower_components",
3 | "analytics": false
4 | }
5 |
--------------------------------------------------------------------------------
/chapter-4/example4/.ember-cli:
--------------------------------------------------------------------------------
1 | {
2 | /**
3 | Ember CLI sends analytics information by default. The data is completely
4 | anonymous, but there are times when you might want to disable this behavior.
5 |
6 | Setting `disableAnalytics` to true will prevent any data from being sent.
7 | */
8 | "disableAnalytics": false
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-4/example4/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 |
7 | # dependencies
8 | /node_modules
9 | /bower_components
10 |
11 | # misc
12 | /.sass-cache
13 | /connect.lock
14 | /coverage/*
15 | /libpeerconnection.log
16 | npm-debug.log
17 | testem.log
18 |
--------------------------------------------------------------------------------
/chapter-4/example4/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: node_js
3 |
4 | sudo: false
5 |
6 | cache:
7 | directories:
8 | - node_modules
9 |
10 | before_install:
11 | - "npm config set spin false"
12 | - "npm install -g npm@^2"
13 |
14 | install:
15 | - npm install -g bower
16 | - npm install
17 | - bower install
18 |
19 | script:
20 | - npm test
21 |
--------------------------------------------------------------------------------
/chapter-4/example4/app/app.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import Resolver from 'ember/resolver';
3 | import loadInitializers from 'ember/load-initializers';
4 | import config from './config/environment';
5 |
6 | Ember.MODEL_FACTORY_INJECTIONS = true;
7 |
8 | var App = Ember.Application.extend({
9 | modulePrefix: config.modulePrefix,
10 | podModulePrefix: config.podModulePrefix,
11 | Resolver: Resolver
12 | });
13 |
14 | loadInitializers(App, config.modulePrefix);
15 |
16 | export default App;
17 |
--------------------------------------------------------------------------------
/chapter-4/example4/app/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example4/app/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example4/app/controllers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example4/app/controllers/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example4/app/controllers/application.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.Controller.extend({
4 | actions:{
5 | toggleMenu: function(){
6 | $("#wrapper").toggleClass("active");
7 | }
8 |
9 | }
10 |
11 | });
--------------------------------------------------------------------------------
/chapter-4/example4/app/helpers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example4/app/helpers/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example4/app/models/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example4/app/models/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example4/app/router.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import config from './config/environment';
3 |
4 | var Router = Ember.Router.extend({
5 | location: config.locationType
6 | });
7 |
8 | Router.map(function() {
9 | this.route('about');
10 | });
11 |
12 | export default Router;
13 |
--------------------------------------------------------------------------------
/chapter-4/example4/app/routes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example4/app/routes/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example4/app/routes/about.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.Route.extend({
4 | renderTemplate: function(){
5 | this.render('about_sidebar',{
6 | outlet: "sidebar"
7 | });
8 | this.render('about');
9 | }
10 | });
--------------------------------------------------------------------------------
/chapter-4/example4/app/routes/index.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.Route.extend({
4 | renderTemplate: function(){
5 | this.render('sidebar',{
6 | outlet: "sidebar"
7 | });
8 | this.render('index');
9 | }
10 | });
--------------------------------------------------------------------------------
/chapter-4/example4/app/templates/about.hbs:
--------------------------------------------------------------------------------
1 | This is the about template and contains some bit of information about us
2 |
{{#link-to 'index'}}Click here to go back .{{/link-to}}
--------------------------------------------------------------------------------
/chapter-4/example4/app/templates/about_sidebar.hbs:
--------------------------------------------------------------------------------
1 |
Link3
2 |
link4
--------------------------------------------------------------------------------
/chapter-4/example4/app/templates/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example4/app/templates/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example4/app/templates/index.hbs:
--------------------------------------------------------------------------------
1 |
This example demonstrate how to render different templates in different outlets. Click on the Menu to Toggle Sidebar.
2 |
Click{{#link-to 'about'}} Here{{/link-to}} to Go To About Page Which has Different Sidebar Menu Items
--------------------------------------------------------------------------------
/chapter-4/example4/app/templates/sidebar.hbs:
--------------------------------------------------------------------------------
1 |
link1
2 |
link2
--------------------------------------------------------------------------------
/chapter-4/example4/app/views/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example4/app/views/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example4/public/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example4/public/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example4/public/robots.txt:
--------------------------------------------------------------------------------
1 | # http://www.robotstxt.org
2 | User-agent: *
3 |
--------------------------------------------------------------------------------
/chapter-4/example4/testem.json:
--------------------------------------------------------------------------------
1 | {
2 | "framework": "qunit",
3 | "test_page": "tests/index.html",
4 | "launch_in_ci": [
5 | "PhantomJS"
6 | ],
7 | "launch_in_dev": [
8 | "PhantomJS",
9 | "Chrome"
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/chapter-4/example4/tests/helpers/resolver.js:
--------------------------------------------------------------------------------
1 | import Resolver from 'ember/resolver';
2 | import config from '../../config/environment';
3 |
4 | var resolver = Resolver.create();
5 |
6 | resolver.namespace = {
7 | modulePrefix: config.modulePrefix,
8 | podModulePrefix: config.podModulePrefix
9 | };
10 |
11 | export default resolver;
12 |
--------------------------------------------------------------------------------
/chapter-4/example4/tests/test-helper.js:
--------------------------------------------------------------------------------
1 | import resolver from './helpers/resolver';
2 | import {
3 | setResolver
4 | } from 'ember-qunit';
5 |
6 | setResolver(resolver);
7 |
8 | document.write('
');
9 |
10 | QUnit.config.urlConfig.push({ id: 'nocontainer', label: 'Hide container'});
11 | var containerVisibility = QUnit.urlParams.nocontainer ? 'hidden' : 'visible';
12 | document.getElementById('ember-testing-container').style.visibility = containerVisibility;
13 |
--------------------------------------------------------------------------------
/chapter-4/example4/tests/unit/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example4/tests/unit/.gitkeep
--------------------------------------------------------------------------------
/chapter-4/example4/vendor/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-4/example4/vendor/.gitkeep
--------------------------------------------------------------------------------
/chapter-5/example1/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "bower_components",
3 | "analytics": false
4 | }
5 |
--------------------------------------------------------------------------------
/chapter-5/example1/.ember-cli:
--------------------------------------------------------------------------------
1 | {
2 | /**
3 | Ember CLI sends analytics information by default. The data is completely
4 | anonymous, but there are times when you might want to disable this behavior.
5 |
6 | Setting `disableAnalytics` to true will prevent any data from being sent.
7 | */
8 | "disableAnalytics": false
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-5/example1/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 |
7 | # dependencies
8 | /node_modules
9 | /bower_components
10 |
11 | # misc
12 | /.sass-cache
13 | /connect.lock
14 | /coverage/*
15 | /libpeerconnection.log
16 | npm-debug.log
17 | testem.log
18 |
--------------------------------------------------------------------------------
/chapter-5/example1/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: node_js
3 |
4 | sudo: false
5 |
6 | cache:
7 | directories:
8 | - node_modules
9 |
10 | before_install:
11 | - "npm config set spin false"
12 | - "npm install -g npm@^2"
13 |
14 | install:
15 | - npm install -g bower
16 | - npm install
17 | - bower install
18 |
19 | script:
20 | - npm test
21 |
--------------------------------------------------------------------------------
/chapter-5/example1/app/app.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import Resolver from 'ember/resolver';
3 | import loadInitializers from 'ember/load-initializers';
4 | import config from './config/environment';
5 |
6 | Ember.MODEL_FACTORY_INJECTIONS = true;
7 |
8 | var App = Ember.Application.extend({
9 | modulePrefix: config.modulePrefix,
10 | podModulePrefix: config.podModulePrefix,
11 | Resolver: Resolver
12 | });
13 |
14 | loadInitializers(App, config.modulePrefix);
15 |
16 | export default App;
17 |
--------------------------------------------------------------------------------
/chapter-5/example1/app/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-5/example1/app/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-5/example1/app/controllers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-5/example1/app/controllers/.gitkeep
--------------------------------------------------------------------------------
/chapter-5/example1/app/controllers/application.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.Controller.extend({
4 | actions:{
5 | toggleMenu: function(){
6 | $("#wrapper").toggleClass("active");
7 | }
8 |
9 | }
10 |
11 | });
--------------------------------------------------------------------------------
/chapter-5/example1/app/controllers/product/reviews.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.ArrayController.extend({
4 | needs:["product"],
5 | product: Ember.computed.alias("controllers.product")
6 | });
--------------------------------------------------------------------------------
/chapter-5/example1/app/controllers/products.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.ArrayController.extend({
4 | sortProperties: ['name'],
5 | sortAscending: true,
6 | itemController: 'product'
7 | });
--------------------------------------------------------------------------------
/chapter-5/example1/app/helpers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-5/example1/app/helpers/.gitkeep
--------------------------------------------------------------------------------
/chapter-5/example1/app/models/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-5/example1/app/models/.gitkeep
--------------------------------------------------------------------------------
/chapter-5/example1/app/router.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import config from './config/environment';
3 |
4 | var Router = Ember.Router.extend({
5 | location: config.locationType
6 | });
7 |
8 | Router.map(function() {
9 | this.resource("products");
10 | this.resource("product",{path: "/:id"},function(){
11 | this.route("reviews");
12 | });
13 |
14 | });
15 |
16 | export default Router;
17 |
--------------------------------------------------------------------------------
/chapter-5/example1/app/routes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-5/example1/app/routes/.gitkeep
--------------------------------------------------------------------------------
/chapter-5/example1/app/routes/product.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.Route.extend({
4 | model: function(params){
5 | return {"id": 1, "name" : "Leather Jacket" , "description" : "A very long jacket desction which cannot be shown inside a table and will have to be shortened",
6 | "currency": "USD" , "symbol": "$" , "price":"1999.999" , "dimensions": {"length": 7.0,"width": 12.0,"height": 9.5}}
7 | }
8 | });
--------------------------------------------------------------------------------
/chapter-5/example1/app/routes/product/reviews.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 |
3 | export default Ember.Route.extend({
4 | model: function(){
5 | return ["This is a great jaket","Another Review","Awesome Jacket","Too pricy"];
6 | }
7 | });
--------------------------------------------------------------------------------
/chapter-5/example1/app/templates/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-5/example1/app/templates/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-5/example1/app/templates/product.hbs:
--------------------------------------------------------------------------------
1 |
{{name}}
2 |
3 |
4 |
5 | Item
6 |
7 |
8 | {{name}}
9 | {{description}}
10 | {{formattedDimension}}
11 | {{formattedPrice}}
12 |
13 | {{outlet}}
--------------------------------------------------------------------------------
/chapter-5/example1/app/templates/product/reviews.hbs:
--------------------------------------------------------------------------------
1 |
Reviews for {{product.name}}
2 |
3 |
4 |
5 | Reviews
6 |
7 | {{#each review in controller}}
8 | {{review}}
9 | {{/each}}
10 |
11 |
--------------------------------------------------------------------------------
/chapter-5/example1/app/views/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-5/example1/app/views/.gitkeep
--------------------------------------------------------------------------------
/chapter-5/example1/public/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-5/example1/public/.gitkeep
--------------------------------------------------------------------------------
/chapter-5/example1/public/robots.txt:
--------------------------------------------------------------------------------
1 | # http://www.robotstxt.org
2 | User-agent: *
3 |
--------------------------------------------------------------------------------
/chapter-5/example1/testem.json:
--------------------------------------------------------------------------------
1 | {
2 | "framework": "qunit",
3 | "test_page": "tests/index.html",
4 | "launch_in_ci": [
5 | "PhantomJS"
6 | ],
7 | "launch_in_dev": [
8 | "PhantomJS",
9 | "Chrome"
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/chapter-5/example1/tests/helpers/resolver.js:
--------------------------------------------------------------------------------
1 | import Resolver from 'ember/resolver';
2 | import config from '../../config/environment';
3 |
4 | var resolver = Resolver.create();
5 |
6 | resolver.namespace = {
7 | modulePrefix: config.modulePrefix,
8 | podModulePrefix: config.podModulePrefix
9 | };
10 |
11 | export default resolver;
12 |
--------------------------------------------------------------------------------
/chapter-5/example1/tests/test-helper.js:
--------------------------------------------------------------------------------
1 | import resolver from './helpers/resolver';
2 | import {
3 | setResolver
4 | } from 'ember-qunit';
5 |
6 | setResolver(resolver);
7 |
8 | document.write('
');
9 |
10 | QUnit.config.urlConfig.push({ id: 'nocontainer', label: 'Hide container'});
11 | var containerVisibility = QUnit.urlParams.nocontainer ? 'hidden' : 'visible';
12 | document.getElementById('ember-testing-container').style.visibility = containerVisibility;
13 |
--------------------------------------------------------------------------------
/chapter-5/example1/tests/unit/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-5/example1/tests/unit/.gitkeep
--------------------------------------------------------------------------------
/chapter-5/example1/vendor/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-5/example1/vendor/.gitkeep
--------------------------------------------------------------------------------
/chapter-6/example1/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "bower_components",
3 | "analytics": false
4 | }
5 |
--------------------------------------------------------------------------------
/chapter-6/example1/.ember-cli:
--------------------------------------------------------------------------------
1 | {
2 | /**
3 | Ember CLI sends analytics information by default. The data is completely
4 | anonymous, but there are times when you might want to disable this behavior.
5 |
6 | Setting `disableAnalytics` to true will prevent any data from being sent.
7 | */
8 | "disableAnalytics": false
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-6/example1/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 |
7 | # dependencies
8 | /node_modules
9 | /bower_components
10 |
11 | # misc
12 | /.sass-cache
13 | /connect.lock
14 | /coverage/*
15 | /libpeerconnection.log
16 | npm-debug.log
17 | testem.log
18 |
--------------------------------------------------------------------------------
/chapter-6/example1/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: node_js
3 |
4 | sudo: false
5 |
6 | cache:
7 | directories:
8 | - node_modules
9 |
10 | before_install:
11 | - "npm config set spin false"
12 | - "npm install -g npm@^2"
13 |
14 | install:
15 | - npm install -g bower
16 | - npm install
17 | - bower install
18 |
19 | script:
20 | - npm test
21 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/adapters/application.js:
--------------------------------------------------------------------------------
1 | import DS from 'ember-data';
2 | export default DS.RESTAdapter.extend({
3 | namespace: 'api'
4 | });
5 |
6 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/app.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import Resolver from 'ember/resolver';
3 | import loadInitializers from 'ember/load-initializers';
4 | import config from './config/environment';
5 |
6 | Ember.MODEL_FACTORY_INJECTIONS = true;
7 |
8 | var App = Ember.Application.extend({
9 | modulePrefix: config.modulePrefix,
10 | podModulePrefix: config.podModulePrefix,
11 | Resolver: Resolver
12 | });
13 |
14 | loadInitializers(App, config.modulePrefix);
15 |
16 | export default App;
17 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-6/example1/app/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-6/example1/app/controllers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-6/example1/app/controllers/.gitkeep
--------------------------------------------------------------------------------
/chapter-6/example1/app/helpers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-6/example1/app/helpers/.gitkeep
--------------------------------------------------------------------------------
/chapter-6/example1/app/models/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-6/example1/app/models/.gitkeep
--------------------------------------------------------------------------------
/chapter-6/example1/app/models/author.js:
--------------------------------------------------------------------------------
1 | import DS from "ember-data";
2 |
3 | export default DS.Model.extend({
4 | firstName: DS.attr('string'),
5 | lastName: DS.attr('string'),
6 | fullName: function() {
7 | return this.get('firstName') + ' ' + this.get('lastName');
8 | }.property('firstName', 'lastName'),
9 | bio: DS.attr('string'),
10 | books: DS.hasMany('book')
11 | });
12 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/models/book.js:
--------------------------------------------------------------------------------
1 | import DS from "ember-data";
2 |
3 | export default DS.Model.extend({
4 | title: DS.attr('string'),
5 | isbn: DS.attr('string'),
6 | pages: DS.attr('number'),
7 | description: DS.attr('string'),
8 | authors: DS.hasMany('author',{ async: true }),
9 | publisher: DS.belongsTo('publisher',{ async: true }),
10 | reviews: DS.hasMany("review",{ async: true })
11 | });
12 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/models/publisher.js:
--------------------------------------------------------------------------------
1 | import DS from "ember-data";
2 |
3 | export default DS.Model.extend({
4 | name: DS.attr("string"),
5 | organizationName: DS.attr("string"),
6 | address: DS.attr("string"),
7 | books: DS.hasMany("book")
8 | });
9 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/models/review.js:
--------------------------------------------------------------------------------
1 | import DS from "ember-data";
2 |
3 | export default DS.Model.extend({
4 | name: DS.attr("string"),
5 | comment:DS.attr("string"),
6 | book: DS.belongsTo("book")
7 | });
8 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/router.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import config from './config/environment';
3 |
4 | var Router = Ember.Router.extend({
5 | location: config.locationType
6 | });
7 |
8 | Router.map(function() {
9 | this.resource('books', function(){
10 | this.route('book',{path: "/:id"});
11 | this.route('new');
12 | });
13 | });
14 |
15 | export default Router;
16 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/routes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-6/example1/app/routes/.gitkeep
--------------------------------------------------------------------------------
/chapter-6/example1/app/routes/books/book.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | model: function(params){
5 | return this.store.find('book',params.id);
6 | }
7 | });
8 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/routes/books/index.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | model: function(){
5 | return this.store.find('book');
6 | }
7 | });
8 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/styles/app.css:
--------------------------------------------------------------------------------
1 | html, body {
2 | margin: 20px;
3 | }
4 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/templates/application.hbs:
--------------------------------------------------------------------------------
1 |
Welcome to Ember.js Essentials Chapter 6 On Ember Data
2 | {{outlet}}
3 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/templates/books/index.hbs:
--------------------------------------------------------------------------------
1 |
2 | Here Are The List Of Books Fetched From The Server
3 |
4 | {{#each book in model}}
5 | {{#link-to 'books.book' book}}{{{book.title}}}{{/link-to}}
6 | {{/each}}
7 |
8 |
--------------------------------------------------------------------------------
/chapter-6/example1/app/templates/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-6/example1/app/templates/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-6/example1/app/templates/index.hbs:
--------------------------------------------------------------------------------
1 |
2 | {{#link-to "books.index"}}Fetch All the Books From Server{{/link-to}}
3 | {{#link-to "books.new"}}Create a new book{{/link-to}}
4 |
5 |
6 |
7 |
8 | {{outlet}}
--------------------------------------------------------------------------------
/chapter-6/example1/app/views/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-6/example1/app/views/.gitkeep
--------------------------------------------------------------------------------
/chapter-6/example1/public/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-6/example1/public/.gitkeep
--------------------------------------------------------------------------------
/chapter-6/example1/public/robots.txt:
--------------------------------------------------------------------------------
1 | # http://www.robotstxt.org
2 | User-agent: *
3 |
--------------------------------------------------------------------------------
/chapter-6/example1/server/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "node": true
3 | }
4 |
--------------------------------------------------------------------------------
/chapter-6/example1/testem.json:
--------------------------------------------------------------------------------
1 | {
2 | "framework": "qunit",
3 | "test_page": "tests/index.html",
4 | "launch_in_ci": [
5 | "PhantomJS"
6 | ],
7 | "launch_in_dev": [
8 | "PhantomJS",
9 | "Chrome"
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/chapter-6/example1/tests/helpers/resolver.js:
--------------------------------------------------------------------------------
1 | import Resolver from 'ember/resolver';
2 | import config from '../../config/environment';
3 |
4 | var resolver = Resolver.create();
5 |
6 | resolver.namespace = {
7 | modulePrefix: config.modulePrefix,
8 | podModulePrefix: config.podModulePrefix
9 | };
10 |
11 | export default resolver;
12 |
--------------------------------------------------------------------------------
/chapter-6/example1/tests/test-helper.js:
--------------------------------------------------------------------------------
1 | import resolver from './helpers/resolver';
2 | import {
3 | setResolver
4 | } from 'ember-qunit';
5 |
6 | setResolver(resolver);
7 |
8 | document.write('
');
9 |
10 | QUnit.config.urlConfig.push({ id: 'nocontainer', label: 'Hide container'});
11 | var containerVisibility = QUnit.urlParams.nocontainer ? 'hidden' : 'visible';
12 | document.getElementById('ember-testing-container').style.visibility = containerVisibility;
13 |
--------------------------------------------------------------------------------
/chapter-6/example1/tests/unit/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-6/example1/tests/unit/.gitkeep
--------------------------------------------------------------------------------
/chapter-6/example1/vendor/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-6/example1/vendor/.gitkeep
--------------------------------------------------------------------------------
/chapter-7/example1/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "bower_components",
3 | "analytics": false
4 | }
5 |
--------------------------------------------------------------------------------
/chapter-7/example1/.ember-cli:
--------------------------------------------------------------------------------
1 | {
2 | /**
3 | Ember CLI sends analytics information by default. The data is completely
4 | anonymous, but there are times when you might want to disable this behavior.
5 |
6 | Setting `disableAnalytics` to true will prevent any data from being sent.
7 | */
8 | "disableAnalytics": false
9 | }
10 |
--------------------------------------------------------------------------------
/chapter-7/example1/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # compiled output
4 | /dist
5 | /tmp
6 |
7 | # dependencies
8 | /node_modules
9 | /bower_components
10 |
11 | # misc
12 | /.sass-cache
13 | /connect.lock
14 | /coverage/*
15 | /libpeerconnection.log
16 | npm-debug.log
17 | testem.log
18 |
--------------------------------------------------------------------------------
/chapter-7/example1/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: node_js
3 |
4 | sudo: false
5 |
6 | cache:
7 | directories:
8 | - node_modules
9 |
10 | before_install:
11 | - "npm config set spin false"
12 | - "npm install -g npm@^2"
13 |
14 | install:
15 | - npm install -g bower
16 | - npm install
17 | - bower install
18 |
19 | script:
20 | - npm test
21 |
--------------------------------------------------------------------------------
/chapter-7/example1/app/app.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import Resolver from 'ember/resolver';
3 | import loadInitializers from 'ember/load-initializers';
4 | import config from './config/environment';
5 |
6 | Ember.MODEL_FACTORY_INJECTIONS = true;
7 |
8 | var App = Ember.Application.extend({
9 | modulePrefix: config.modulePrefix,
10 | podModulePrefix: config.podModulePrefix,
11 | Resolver: Resolver
12 | });
13 |
14 | loadInitializers(App, config.modulePrefix);
15 |
16 | export default App;
17 |
--------------------------------------------------------------------------------
/chapter-7/example1/app/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-7/example1/app/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-7/example1/app/components/about-us-intro.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Component.extend({
4 | tagName: "p",
5 | classNames: ["static-class","another-static-class"],
6 | classNameBindings: ["intro","text","trueClass","falseClass"],
7 | attributeBindings: ["dataUrl:data-url"],
8 | dataUrl: "http://emberjs.com/",
9 | intro: "intro-css-class",
10 | text: "text-css-class",
11 | trueClass: function(){
12 | //Do Some logic
13 | return true;
14 | }.property(),
15 | falseClass: false
16 | });
--------------------------------------------------------------------------------
/chapter-7/example1/app/components/date-picker.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Component.extend({
4 | actions:{
5 | submit: function(){
6 | var date = this.$("input").val();
7 | this.sendAction('action',date);
8 | }
9 | }
10 | });
--------------------------------------------------------------------------------
/chapter-7/example1/app/components/ember-image.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Component.extend({
4 | tagName: "img",
5 | attributeBindings: ["src","height","width","dataURL:data-url"],
6 | src: "http://emberjs.com/images/logos/ember-logo.png",
7 | height:"80px",
8 | width:"200px",
9 | dataURL: "http://emberjs.com/images/logos/ember-logo.png"
10 | });
--------------------------------------------------------------------------------
/chapter-7/example1/app/components/long-text.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Component.extend({
4 | showMoreText: false,
5 | actions:{
6 | toggleMore: function(){
7 | this.toggleProperty("showMoreText");
8 | }
9 | }
10 | });
--------------------------------------------------------------------------------
/chapter-7/example1/app/controllers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-7/example1/app/controllers/.gitkeep
--------------------------------------------------------------------------------
/chapter-7/example1/app/controllers/about-us.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 | export default Ember.ObjectController.extend({
3 | tagName: function(){
4 | //do some computation logic here
5 | return "p";
6 | }.property()
7 | });
--------------------------------------------------------------------------------
/chapter-7/example1/app/controllers/index.js:
--------------------------------------------------------------------------------
1 | import Ember from "ember";
2 | export default Ember.ObjectController.extend({
3 | manufactoringDate: "",
4 | expiryDate:"",
5 | actions: {
6 | saveMaufactoringDate: function(date){
7 | this.set("manufactoringDate",date);
8 | },
9 | saveExpiryDate: function(date){
10 | this.set("expiryDate",date);
11 | }
12 | }
13 | });
--------------------------------------------------------------------------------
/chapter-7/example1/app/helpers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-7/example1/app/helpers/.gitkeep
--------------------------------------------------------------------------------
/chapter-7/example1/app/models/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-7/example1/app/models/.gitkeep
--------------------------------------------------------------------------------
/chapter-7/example1/app/router.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 | import config from './config/environment';
3 |
4 | var Router = Ember.Router.extend({
5 | location: config.locationType
6 | });
7 |
8 | Router.map(function() {
9 | this.route("about-us");
10 | });
11 |
12 | export default Router;
13 |
--------------------------------------------------------------------------------
/chapter-7/example1/app/routes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-7/example1/app/routes/.gitkeep
--------------------------------------------------------------------------------
/chapter-7/example1/app/routes/index.js:
--------------------------------------------------------------------------------
1 | import Ember from 'ember';
2 |
3 | export default Ember.Route.extend({
4 | model: function(){
5 | return { MRP:"$ 100",price:"$80",sale:"$20"};
6 | }
7 | });
8 |
--------------------------------------------------------------------------------
/chapter-7/example1/app/styles/app.css:
--------------------------------------------------------------------------------
1 | html, body {
2 | margin: 20px;
3 | }
4 | footer {
5 | position: relative;
6 | margin-top: 200px;
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/chapter-7/example1/app/templates/about-us.hbs:
--------------------------------------------------------------------------------
1 | {{ember-image}}
2 |
3 |
4 | {{about-us-intro tagName=tagName}}
5 |
6 | {{long-text}}
--------------------------------------------------------------------------------
/chapter-7/example1/app/templates/application.hbs:
--------------------------------------------------------------------------------
1 |
Welcome to Ember.js
2 |
3 | {{outlet}}
4 | {{copyright-footer}}
5 |
--------------------------------------------------------------------------------
/chapter-7/example1/app/templates/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-7/example1/app/templates/components/.gitkeep
--------------------------------------------------------------------------------
/chapter-7/example1/app/templates/components/about-us-intro.hbs:
--------------------------------------------------------------------------------
1 | This is the about us introduction.Everything that is present here will be enclosed within a <p> tag.
--------------------------------------------------------------------------------
/chapter-7/example1/app/templates/components/copyright-footer.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 | © 20014-2015 Ember.js Essentials by Packt Publishing
4 |
5 |
6 | Content is available under MIT license
7 |
8 |
--------------------------------------------------------------------------------
/chapter-7/example1/app/templates/components/date-picker.hbs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chapter-7/example1/app/templates/components/long-text.hbs:
--------------------------------------------------------------------------------
1 |
2 | This is a long text and we intend to show only this much unless the user presses the show more button below.
3 |
4 | {{#if showMoreText}}
5 | This is the remaining text that should be visible when we press the show more button. Ideally this should contain a lot more text, but for example's sake this should be enough.
6 |
7 |
8 |
Show Less
9 | {{else}}
10 |
Show More
11 | {{/if}}
--------------------------------------------------------------------------------
/chapter-7/example1/app/templates/components/product-description.hbs:
--------------------------------------------------------------------------------
1 |
2 | {{name}}
3 |
4 |
5 |
6 |
7 | M.R.P
8 | {{MRP}}
9 |
10 |
11 | Price
12 | {{price}}
13 |
14 |
15 | You Save
16 | {{sale}}
17 |
18 |
19 |
20 | {{yield}}
21 |
22 |
23 |
--------------------------------------------------------------------------------
/chapter-7/example1/app/views/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-7/example1/app/views/.gitkeep
--------------------------------------------------------------------------------
/chapter-7/example1/public/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-7/example1/public/.gitkeep
--------------------------------------------------------------------------------
/chapter-7/example1/public/robots.txt:
--------------------------------------------------------------------------------
1 | # http://www.robotstxt.org
2 | User-agent: *
3 |
--------------------------------------------------------------------------------
/chapter-7/example1/testem.json:
--------------------------------------------------------------------------------
1 | {
2 | "framework": "qunit",
3 | "test_page": "tests/index.html",
4 | "launch_in_ci": [
5 | "PhantomJS"
6 | ],
7 | "launch_in_dev": [
8 | "PhantomJS",
9 | "Chrome"
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/chapter-7/example1/tests/helpers/resolver.js:
--------------------------------------------------------------------------------
1 | import Resolver from 'ember/resolver';
2 | import config from '../../config/environment';
3 |
4 | var resolver = Resolver.create();
5 |
6 | resolver.namespace = {
7 | modulePrefix: config.modulePrefix,
8 | podModulePrefix: config.podModulePrefix
9 | };
10 |
11 | export default resolver;
12 |
--------------------------------------------------------------------------------
/chapter-7/example1/tests/test-helper.js:
--------------------------------------------------------------------------------
1 | import resolver from './helpers/resolver';
2 | import {
3 | setResolver
4 | } from 'ember-qunit';
5 |
6 | setResolver(resolver);
7 |
8 | document.write('
');
9 |
10 | QUnit.config.urlConfig.push({ id: 'nocontainer', label: 'Hide container'});
11 | var containerVisibility = QUnit.urlParams.nocontainer ? 'hidden' : 'visible';
12 | document.getElementById('ember-testing-container').style.visibility = containerVisibility;
13 |
--------------------------------------------------------------------------------
/chapter-7/example1/tests/unit/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-7/example1/tests/unit/.gitkeep
--------------------------------------------------------------------------------
/chapter-7/example1/vendor/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/suchitpuri/emberjs-essentials/baa757720b10ce26ba2c13662d2820d26ea9cab3/chapter-7/example1/vendor/.gitkeep
--------------------------------------------------------------------------------