2016年12月18日日曜日

jQueryで前後の要素を入れ替えるシンプルな書き方

動きのイメージ




コード

<section class="main container">
    <section>
        要素1
    </section>
    <section>
        要素2
    </section>
    <section>
        要素3
    </section>
</section> 
<script>
$(function() {
    $('下へのセレクタ').click(function() {
        var section = $('section.main > section').has(this);
        section.next().after(section);
    });
    $('上へのセレクタ').click(function() {
        var section = $('section.main > section').has(this);
        section.prev().before(section);
    });
});
</script>

解説

一つ下へ移動する場合、該当の要素を次の要素`next()`の後`after()`に置く
一つ上へ移動する場合、該当の要素を前の要素`prev()`の後`before()`に置く

要素の個数や順番を計算するなどを最初に考えたがプロトタイプ作る上ではこれで十分だったのでメモ



2016年12月6日火曜日

リリース前に文法チェックを差分実行して確認する


コード(bach)

git fetch origin
for FILE in `git diff --name-status origin/master -- | grep -E '^[AUM].*\.php$'| cut -c3-`; do
  if php -l $FILE; then
    echo "OK"
  else
    exit 1
  fi
done

解説


まずfetchして最新のmasterを取得します
diffを取得してA: 追加、M: 更新、U: 競合しているファイルを抽出
必要な場所だけ取得してループを回します

$FILEを用いてphp -lで文法チェックする

2016年12月5日月曜日

複数のgzファイルを一気にgrepする方法

コード

find ./ -name "*.gz" -exec zgrep '正規表現' {} \;

解説

-execは引数を受け取って後続の処理に受け渡すオプション。{}の位置に受け取ったファイル名を渡す\;で終わらせるのがルール