Atomのパッケージを作る(3)
続き...
Counting the Words
では、実際にコードを修正して、ワードカウントを表示する小さなモーダルボックスを作っていく。
ダイアログが切り替えられた時、モーダルを表示する直前に文字数をカウントするように、toggle
コマンドにコードを加える。
toggle: -> if @modalPanel.isVisible() @modalPanel.hide() else #エディタの定義:アクティブなエディタ editor = atom.workspace.getActiveTextEditor() #wordsの定義:エディタのテクストを取得し、ホワイトスペースで分割、その配列の長さ words = editor.getText().split(/\s+/).length #View上でsetCountを呼び出し、ワード数を表示 @wordcountView.setCount(words) @modalPanel.show()
追加した3行を見てみる。はじめに、atom.workspace.getActiveTextEditor()
を呼び出すことで、現在のエディタオブジェクトのインスタンスを取得している。
次にその新しいエディタオブジェクト上でgetText()
を呼び出し、正規表現を使いホワイトスペースで分割、その配列の長さを取得することでワードカウントを取得する。
最後にview上でsetCount()
メソッドを呼び出し、モーダルを再度表示することでワードカウントを表示する。wordcount-view.coffee
ファイルの最後に次のコードを追加して、このメソッドを定義する。
setCount: (count) -> displayText = "There are #{count} words." @element.children[0].textContent = displayText
渡されたカウント数を引数に取り、文字列の中に置き、それをviewが扱うエレメントに渡している。
デバッグ
コードの中に幾つかconsole.log
がある。AtomにはChromiumが使われており、ウェブデベロップメントと同じデバッグツールを使うことができる。
alt-cmd-I
を打つ、あるいはView > Developer > Toggle Developer Tools
を選ぶとデベロッパーコンソールが開く。
テスト
specディレクトリにテストが置かれる。Jasmineによって実行される。
テストの実行
cmd-alt-ctrl-p
あるいはDeveloper > Run Package Specsから実行する。
コマンドラインからapm test
コマンドを使うことでも実行できる。
公開
パッケージの準備
- package.jsonファイルの
name
,description
,repository
フィールドは埋めたか? - package.jsonファイルの
version
フィールドは0.0.0
か? - package.jsonファイルの
engine
フィールドは"engines": {"atom": ">=0.50.0"}
のようになっているか? README.md
はルートにあるか?- パッケージはGitHubのリポジトリとして存在するか?
パッケージの公開
同名のパッケージがないか調べる。https://atom.io/packages/my-package
にアクセスすることができれば、同名のパッケージが存在するので、名前を変える必要がある。
次のコマンドでパッケージが公開される
cd ~/github/my-package apm publish minor
また、バージョンの更新もできる
atom publish <version-type>
<version-type>
にはmajor
,minor
,patch
が引数として取られる。
major
はデフォルトの変更や特徴の削除など、後方互換性のない場合。minor
は機能の追加や既存のコードの改良などの場合。patch
はバグ修正の場合に用いられる。
パッケージの公開が成功すれば、atom.io上にパッケージページが公開され、誰でもインストールすることが可能になる。