2013年3月31日日曜日

[CoffeeScript]配列内に値が存在しているかチェック

変数 in 配列を使用して、変数の値が配列に存在しているかのチェックが出来る。


1 # strは、["str", "str2"]に含まれているのでtrue
2 "str" in ["str", "str2"]
3 
4 # strは、["str1", "str2"]に含まれていないのでfalse
5 "str" in ["str1", "str2"]

2013年3月26日火曜日

SQL Serverでダミー表へのアクセス

SQLServerでOracleのdual表のようなダミー表へアクセする方法。
ダミー表は、SQL関数の確認等で簡単に使うことができるので非常に便利です。

SQLServerの場合は、select句だけを定義しfrom句以降を省略することでダミー表へアクセスすることができます。

固定値を取得する場合は、select句に固定値を設定します。
1 select 1

select句に関数を列挙すると関数の呼出結果を確認することができます。
1 select sysdatetime();
2 select len('12345');

2013年3月24日日曜日

[CoffeeScript]switch文

coffeescriptでのswitch文の書き方。

基本的な書き方

 1 month_name = switch month
 2   when 1
 3     'January'
 4   when 2
 5     'February'
 6   when 3
 7     'March'
 8   when 4
 9     'April'
10   else
11     'other'

コンパイルされたJavaScriptはswitch文が即時関数でラップされています。
 1 month_name = (function() {
 2   switch (month) {
 3     case 1:
 4       return 'January';
 5     case 2:
 6       return 'February';
 7     case 3:
 8       return 'March';
 9     case 4:
10       return 'April';
11     default:
12       return 'other';
13   }
14 })();

いずれかにマッチしているかをswitch文で実現する

カンマ区切りで複数の条件を指定すると、switchで指定した値がリスト内に含まれていた場合、そのcase文が実行されます。
 1 season = switch month
 2   when 12, 1, 2
 3     "冬"
 4   when 3, 4, 5
 5     "春"
 6   when 6, 7, 8
 7     "夏"
 8   when 9, 10, 11
 9     "秋"
10   else
11     "不明"
12 console.log(season)

JavaScriptになると、それぞれの条件がcase文に展開されていることがわかります。
 1 season = (function() {
 2   switch (month) {
 3     case 12:
 4     case 1:
 5     case 2:
 6       return "冬";
 7     case 3:
 8     case 4:
 9     case 5:
10       return "春";
11     case 6:
12     case 7:
13     case 8:
14       return "夏";
15     case 9:
16     case 10:
17     case 11:
18       return "秋";
19     default:
20       return "不明";
21   }
22 })();

2013年2月28日木曜日

[CoffeeScript]booleanリテラル

CoffeeScriptでは、下の値をbooleanリテラルとして使うことができます。
  • trueとなるリテラル
    • true
    • on
    • yes
  • falseとなるリテラル
    • false
    • off
    • no

// CoffeeScript
true1 = true
true2 = on
true3 = yes

false1 = false
false2 = off
false3 = yes

// コンパイルされたJavaScript
true1 = true;
true2 = true;
true3 = true;
false1 = false;
false2 = false;
false3 = true;

onやoffを見たりしても、悩んでしまう気がするので積極的に使う必要がない気がしています。

2013年2月23日土曜日

[CoffeeScript]式展開

CoffeeScriptでもRubyと同じように、#{}を使用した式展開ができます。

式展開の例

Rubyと同じように、展開したい式を#{}の中に入れてます。
str = "文字列"
console.log("str = #{str}")
console.log("計算 = #{3 + 4}")
console.log("比較 = #{str == '文字列'}")

上のコードを実行すると、コンソールには以下の結果が出力されます。それぞれ、式の結果が出力されているのがわかります。
str = 文字列
計算 = 7
比較 = true

compileした結果のJavaScriptは下のようになります。
#{}で式展開された箇所は、「+」で文字列連結されているのがわかります。
// Generated by CoffeeScript 1.4.0
(function() {
  var str;

  str = "文字列";

  console.log("str = " + str);

  console.log("計算 = " + (3 + 4));

  console.log("比較 = " + (str === '文字列'));

}).call(this);

2013年2月11日月曜日

play2でhtml5の数値テキスト

input type=numberな入力エリアは以下のコードで生成できる。

@helper.input(bookForm("count")) { (id, name, value, args) =>
  
}

inputNumberとかhelperにあってもよさそうなんだけど。

2013年2月3日日曜日

css3のinvalidとvalid

invalid、validを使用すると、入力要素の形式が無効か有効かによってスタイルを簡単に切り替えることができる。

// 入力要素が不正な場合は背景色を変える。
:invalid {
  background-color: #FFD4D4;
  border: 1px solid maroon;
}

// 入力要素が有効な場合は、スタイルを適用しない
:valid {
}

必須項目で値が入力されていない場合・・・




必須項目で値が入力されている場合・・・