17 Mar 2014

引数の*

引数の*がどういう役割をするのか時々分からなくなってしまうのでまとめてみた。

- メソッド内の引数に付ける'*' => 複数の引数をまとめる
- メソッドに渡す引数に付ける'*' => 配列を展開して複数の引数として渡す

```ruby
def caller(*args)
  squash(args)
end
def squash(args)
  puts args.inspect
end
 
caller(:index, :show)
# [:index, :show]
caller(:show)
# [:show]
caller(*[:show])
# [:show]
```

Date.parse と DateTime.parse

DateTime.parseの方はlocal timeになるらしい。to_iするとUTCとJPTの時差が数値で出る。

```ruby
[2] pry(main)> Date.parse("2014-03-12").to_time.to_i
=> 1394550000
[3] pry(main)> DateTime.parse("2014-03-12").to_i
=> 1394582400
```