2014年6月21日土曜日

2014年7月(夏)開始アニメ新番組私的録画メモ

新しく始まるアニメの個人的な録画予約のメモ。
チェックしている放送局は在京キー局とBS、AT-X、TOKYO MX、チバテレビ。

曜日 タイトル 初回放送日時 放送局
人生相談テレビアニメーション「人生」 7月6日(日) 22:00 TOKYO MX
さばげぶっ! 7月6日(日) 22:30 TOKYO MX
スペース☆ダンディ シーズン2 7月6日(日) 23:00 TOKYO MX
ハナヤマタ 7月7日(月) 25:35 テレビ東京
ヤマノススメ セカンドシーズン 7月9日(水) 22:00 TOKYO MX
まじもじるるも 7月9日(水) 24:00 TOKYO MX
Fate/kaleid liner プリズマ☆イリヤ 2wei(ツヴァイ)! 7月9日(水) 25:35 TOKYO MX
グラスリップ 7月3日(木) 22:30 TOKYO MX
RAIL WARS! 7月3日(木) 25:46 TBS
普通の女子校生が【ろこどる】やってみた。 7月3日(木) 26:16 TBS
六畳間の侵略者!? 7月11日(金) 25:05 TOKYO MX
ばらかもん 7月5日(土) 26:20 日本テレビ

P.A.WORKSの新作グラスリップに期待しています。
true tearsの西村純二監督という事もあり楽しみです。
それ以外は、適当に視聴できるときに見るという感じ。

最後に、情報源は以下のサイトです。ありがとうごとうございます。

GIGZAZINE 2014年春季開始の新作アニメ一覧

楽描喜堂

JavaでjQueryで扱うIDをエスケープする

Webアプリケーションフレームワークの都合上、動的に生成されるIDをjQueryで処理する必要があり、
そのIDを予めjQueryでも扱えるようエスケープした状態のIDを作成する必要がありました。
そこで、以下のようなユーティリティークラスを作成しました。

jQueryのエスケープに関しては、下記にあります。
jQuery API Documentation Category: Selectors

package util;

/**
 * jQueryユーティリティー
 * @author @michigawi
 */
public final class JQueryUtil {

 /** エスケープ対象文字 */
 private static final char[] META_CHARACTERS = new char[]{' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '`', '{', '|', '}', '~'};

 /** jQueryのエスケープ文字 */
 private static final String ESCAPE_META = "\\\\";

 /**
  * エスケープします。

  * http://api.jquery.com/category/selectors/
  * @param target ターゲットの文字
  * @return エスケープ後の文字列
  */
 public static final String escape(String target) {
  if (target == null) {
   return null;
  }

  StringBuilder escaped = new StringBuilder(target.length() * 2);

  for (char character : target.toCharArray()) {
   if (findEscapeTarget(character)) {
    escaped.append(ESCAPE_META);
   }

   escaped.append(character);
  }

  return escaped.toString();
 }

 /**
  * 文字列がエスケープ対象か判別します。
  * @param target ターゲットの文字
  * @return エスケープ対象の場合、true
  */
 private static boolean findEscapeTarget(char target) {
  for (char meta : META_CHARACTERS) {
   if (target == meta) {
    return true;
   }
  }

  return false;
 }
}

テストコード
package util;

import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import org.junit.Test;

/**
 * {@link util.JQueryUtilTest}のテスト
 * @author @michigawi
 */
public class JQueryUtilTest {

 @Test
 public void 半角スペースをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery selector"), is("jQuery\\\\ selector"));
 }

 @Test
 public void 半角エクスクラメーションマークをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery!selector"), is("jQuery\\\\!selector"));
 }

 @Test
 public void ダブルクウォートをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery\"selector"), is("jQuery\\\\\"selector"));
 }

 @Test
 public void シャープをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery#selector"), is("jQuery\\\\#selector"));
 }

 @Test
 public void ダラーをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery$selector"), is("jQuery\\\\$selector"));
 }

 @Test
 public void パーセントをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery%selector"), is("jQuery\\\\%selector"));
 }

 @Test
 public void アンドをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery&selector"), is("jQuery\\\\&selector"));
 }

 @Test
 public void シングルクォートをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery'selector"), is("jQuery\\\\'selector"));
 }

 @Test
 public void 左丸カッコをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery(selector"), is("jQuery\\\\(selector"));
 }

 @Test
 public void 右丸カッコをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery)selector"), is("jQuery\\\\)selector"));
 }

 @Test
 public void アスタリスクをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery*selector"), is("jQuery\\\\*selector"));
 }

 @Test
 public void プラスをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery+selector"), is("jQuery\\\\+selector"));
 }

 @Test
 public void カンマをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery,selector"), is("jQuery\\\\,selector"));
 }

 @Test
 public void ピリオドをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery.selector"), is("jQuery\\\\.selector"));
 }

 @Test
 public void スラッシュをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery/selector"), is("jQuery\\\\/selector"));
 }

 @Test
 public void コロンをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery:selector"), is("jQuery\\\\:selector"));
 }

 @Test
 public void セミコロンをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery;selector"), is("jQuery\\\\;selector"));
 }

 @Test
 public void 小なり記号をエスケープする() {
  assertThat(JQueryUtil.escape("jQueryselector"), is("jQuery\\\\>;selector"));
 }

 @Test
 public void クエッションをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery?selector"), is("jQuery\\\\?selector"));
 }

 @Test
 public void アットマークをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery@selector"), is("jQuery\\\\@selector"));
 }

 @Test
 public void 左大カッコをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery[selector"), is("jQuery\\\\[selector"));
 }

 @Test
 public void バックスラッシュをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery\\selector"), is("jQuery\\\\\\selector"));
 }

 @Test
 public void 右大カッコをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery]selector"), is("jQuery\\\\]selector"));
 }

 @Test
 public void キャレットをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery^selector"), is("jQuery\\\\^selector"));
 }

 @Test
 public void グレイヴアクセントをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery`selector"), is("jQuery\\\\`selector"));
 }

 @Test
 public void 左中カッコをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery{selector"), is("jQuery\\\\{selector"));
 }

 @Test
 public void 縦線をエスケープする() {
  assertThat(JQueryUtil.escape("jQuery|selector"), is("jQuery\\\\|selector"));
 }

 @Test
 public void 右中カッコをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery}selector"), is("jQuery\\\\}selector"));
 }

 @Test
 public void チルダをエスケープする() {
  assertThat(JQueryUtil.escape("jQuery~selector"), is("jQuery\\\\~selector"));
 }
}