albatrosary's blog

UI/UXとエンタープライズシステム

YEOMAN Advent Calendar 8日目:generator-ember を紹介します

ジェネレータ generator-ember を紹介します。このエントリーは「YEOMAN Advent Calendar 2014」12月8日の記事です。

YEOMAN Advent Calendar 2014 - Adventar

EmberJSは「A framework for creating ambitious web application」だそうで「野心的?」なんでしょうか…

Ember.js - A framework for creating ambitious web applications.

インストールから実行まで

インストール

いつものようにジェネレータをインストールしてプロジェクトディレクトリを作りyoとgruntの実行です。

$ npm install -g generator-ember
$ mkdir ember && cd $_
$ yo ember
$ grunt serve

実行

実行結果は次の通りです:

f:id:albatrosary:20141208115815p:plain

f:id:albatrosary:20141208115823p:plain

サブジェネレータ

サブジェネーレも幾つか定義されています:

  • ember-model
  • ember-view
  • ember-controller
  • ember-component

チュートリアル

YEOMAN/Emberのチュートリアルがありますので少し触ってみます:

Day 24: Yeoman Ember--The Missing Tutorial – OpenShift Blog

$ yo ember:model Story

を実行し story_model.js を若干修正します:

/*global Ember*/
Getbookmarks.Story = DS.Model.extend({
  url : DS.attr('string'),
    tags : DS.attr('string'),
    fullname : DS.attr('string'),
    title : DS.attr('string'),
    excerpt : DS.attr('string'),
    submittedOn : DS.attr('date')
});

// probably should be mixed-in...
Getbookmarks.Story.reopen({
  attributes: function(){
    var model = this;
    return Ember.keys(this.get('data')).map(function(key){
      return Em.Object.create({ model: model, key: key, valueBinding: 'model.' + key });
    });
  }.property()
});

// delete below here if you do not want fixtures
Getbookmarks.Story.FIXTURES = [
  
  {
    id: 0,
    
  },
  
  {
    id: 1,
    
  }
  
];

URL「http://localhost:9000/#/stories」を表示すると stories のCRUD が生成されます。

f:id:albatrosary:20141208120439p:plain

f:id:albatrosary:20141208120445p:plain

f:id:albatrosary:20141208120450p:plain

f:id:albatrosary:20141208120454p:plain

続きのチュートリアルもありますがここまでにします。

最後に

Ember は積極的に新しい技術を取り込んでいます。チュートリアルもありYEOMANジェネレータもありますので時間を作りハンズオンしてみようかと。