Ruby

UNIXタイムスタンプからlocaltimeへの変換(shell/perl/ruby)

UNIXタイムスタンプ(1970-01-01からの秒数)から日付への変換。ワンライナーな方向け。 shell(BSDのdateコマンドの場合) $ date +%s 1377292293 $ date -r 1377292293 +'%Y-%m-%d %H:%M:%S' 2013-08-24 06:11:33 $ shell(GNU dateコマンドの場合) $ date +%s …

メールアドレス正規表現

メールアドレスの完璧な正規表現はないのだが、以下のもので「おおまか」に表現できるはず。 /^[a-zA-Z0-9_.-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}$/ 正規表現オプション"i"を付けられる言語であれば、"A-Z"の表記はいらないはず。元ネタは以下。 http://befi…

rubyのtips(ランダム文字列生成とcgi.rbのオフラインモード)

ランダム文字列の生成 def random_string(len = 8) arr = (0..9).to_a + ('A'..'Z').to_a + ('a'..'z').to_a + ['-', '_', '.'] key = '' len.times {key += arr[rand(arr.size)].to_s} key end cgi.rbのオフラインモードの回避・抑制 ARGV.replace(%W(name0…

redirect 301 permanent (永久的なリダイレクト)

PHPでredirect 301 (permanent)する方法。 perlでredirect 301 (permanent)する方法。 #!/usr/bin/perl use strict; use warnings; my $redirect_location = "http://www.example.jp/"; print <

演算子と改行

foo = long_text + long_text No Method Errorになる。 foo = long_text + long_text のようにする。 演算子の位置が大事。ちょっとハマった。お恥ずかしい。

テキスト中の自動リンク (簡易版)

URLっぽいやつ、メールアドレスっぽいやつがテキスト中にある場合に、自動でa要素を付加するメソッド。 # == 自動href def auto_href(s) uniform = '(https?|ftp|gopher):' mailto = 'mailto:' domain = '(([-a-zA-Z\d]+\.)+[a-zA-Z]+|\d+\.\d+\.\d+\.\d+)' …

rdocスタイルドキュメント変換ツール

rdocスタイル*1のテキストドキュメント変換スクリプトを作成しました。 http://www.miyagino.net/my/rdoc-text/generate.rb rdocとはrubyのソースからのドキュメント生成スクリプトです。筆者はrdocの出力htmlが結構気に入っていて、通常のテキストファイル…

RubyのStringクラス

rubyの公式サイトが更新され、そのトップページに、あるサンプルプログラムが表示されていた。おおよそこんな感じ。 # Output "I love Ruby" say = "I love Ruby" puts say # Output "I *LOVE* RUBY" say['love'] = "*love*" puts say.upcase # Output "I *l…

HikiのHack

add_body_enter_proc ボディ部を表示する前に評価させたいものをProcインスタンスで追加 add_plugin_command 上部メニューに追加。引数は、 コマンド名(c=コマンド名) メニューに表示されるテキスト オプション(省略可) add_header_proc htmlヘッダ部への追…

Hikiの修正

管理者のみにadminmenuを表示 template/view.htmlにて、 <% if @plugin.admin? %> <div class="adminmenu">.... <% end %>とする。 認証ユーザのみにadminmenuを表示 template/view.htmlにて、 <% if @plugin.auth? %> <div class="adminmenu">.... <% end %>とし、管理ツールからedit_userプラグインを有効</div></div>…

RSS on Ruby

rubyでRSSを解析したいと思って、手元にある、リファレンスマニュアル(Windows chm版)を見て標準では添付されていないと思っていた。しかし、どうも、1.8.2あたりから、標準添付されているようで、本家サイトのリファレンスマニュアルにはちゃんとある。まあ…

rubyでUTF-8

kconv.rbを読み込んでいると、Stringクラスにメソッドが追加される。 #!/usr/local/bin/ruby # Stringクラスにtoeucやtoutf8が追加される。 require 'kconv' while gets print $_.toutf8 end

perlからrubyへ

ずっとperlやっていて、ちょっとrubyを書いたときには、 行末にセミコロン(;)をつけてしまう(個人的にはセミコロン症候群と言っています) 変数を$からはじめてしまう。 String#to_i,Integer#to_sを忘れてしまう。 ことがある。とくにString#to_iは、perlでは…

WindowsでEOF

ActiveScriptRuby 1.8.4.1をWindowsXPに入れてスクリプトを書いているのだが、CGIクラスをコマンドライン上で動作確認すると、自動的に標準入力からGET/POSTのパラメータ(name=value)を受け取るようになる。 C:\> type test.cgi #!/usr/local/bin/ruby requi…