Pistolfly のすべての投稿

Software Engineer in Tokyo, Japan

emacsにナビゲーションペインを追加する「emacs-nav」

emacs-nav - Google Code
emacsにファイル・フォルダブラウズするペインを追加する。
使い方(nav.elのコメントから抜粋)

;; To use this file, put something like the following in your
;; ~/.emacs:
;;
;; (add-to-list 'load-path "/directory/containing/nav/")
;; (require 'nav)
;;
;; Type M-x nav to open the navigation window. It should show up as a
;; 30-character wide column on the left, showing the contents of the
;; current directory. If there are multiple windows open, all but one
;; will be closed to make sure the nav window shows up correctly.
;;; Key Bindings
;;
;;   Enter/Return: Open file or directory under cursor.
;;
;;   1: Open file under cursor in 1st other window.
;;   2: Open file under cursor in 2nd other window.
;;
;;   c: Copy file or directory under cursor.
;;   d: Delete file or directory under cursor (asks to confirm first).
;;   e: Edit current directory in dired.
;;   f: Recursively find files whose names or contents match some regexp.
;;   g: Recursively grep for some regexp.
;;   j: Jump to another directory.
;;   m: Move or rename file or directory.
;;   n: Make new directory.
;;   p: Pop directory stack to go back to the directory where you just were.
;;   q: Quit nav.
;;   r: Refresh.
;;   s: Start a shell in an emacs window in the current directory.
;;   t: Start a terminal in an emacs window in the current directory.
;;      This allows programs like vi and less to run. Exit with C-d C-d.
;;   u: Go up to parent directory.
;;   !: Run shell command.
;;   [: Rotate non-nav windows counter clockwise.
;;   ]: Rotate non-nav windows clockwise.
;;
;;   :: Go into debug mode (should only be needed if you are hacking nav.el).

Mantisの変更履歴(Change Log)を表示する

「システム管理」>「プロジェクト管理」でプロジェクトを選択して、「バージョン」を登録する。
すると、チケット登録で「製品バージョン」を選択できるようになる。
そして、そのチケットのステータス更新時(解決済みにしたり完了するとき)の画面で、「修正済みバージョン」を選択できるようになる。
検索結果や印刷画面、CSV出力では、以下のようにconfig_inc.phpで、表示するカラムを設定する変数に、'fixed_in_version'を追加すれば、表示されるようになる。

<?php
...
$g_view_issues_page_columns = array ( 'selection', 'edit', 'priority', 'id', 'reporter_id', 'sponsorship_total', 'bugnotes_count', 'attachment', 'category', 'severity', 'status', 'fixed_in_version', 'last_updated', 'summary' );
$g_print_issues_page_columns = array ( 'selection', 'priority', 'id', 'reporter_id', 'sponsorship_total', 'bugnotes_count', 'attachment', 'category', 'severity', 'status', 'fixed_in_version', 'last_updated',  'summary' );
$g_csv_columns = array ( 'id', 'project_id', 'reporter_id', 'handler_id', 'priority', 'severity', 'reproducibility', 'version', 'projection', 'category', 'date_submitted', 'eta', 'os', 'os_build', 'platform', 'view_state', 'last_updated', 'summary', 'status', 'resolution', 'fixed_in_version', 'duplicate_id' );
...

acts_as_taggable_on

Announcing 'acts_as_taggable_on' - Intridea Development Blog
acts_as_taggableにタグのコンテキストを持つよう拡張したプラグイン。
基本的な使い方はREADMEを見ると分かる。
READMEに書いていないことを以下に補足しておく。

class Post < ActiveRecord::Base
  acts_as_taggable_on :tags, :skills, :categories
end

モデルに関連付けられているタグを取得する。

>> Post.tag_counts
=> [#<Tag id: 1, name: "programming">, #<Tag id: 2, name: "network">, #<Tag id: 3, name: "foolish">]
>> Post.tag_counts_on("tags")
=> [#<Tag id: 1, name: "programming">, #<Tag id: 2, name: "network">, #<Tag id: 3, name: "foolish">]
>> Post.tag_counts_on("skills")
=> [#<Tag id: 4, name: "ruby">, #<Tag id: 5, name: "rails">]