2011-03-08

rubyでipアドレスやらサブネットマスクやらの書式チェックをする

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
rubyでipアドレスやサブネットマスクの書式をチェックをするならば正規表現を使うのが普通な気配なのですが、なんとなくめんどっちい感じの正規表現になるようです。

なので以下のような手段でチェックしてみました。

https://github.com/bluemonk/ipaddress
のipaddressというのを利用します。

インストールは
gem install ipaddress
でOKです。

以下のような感じでチェックして見ました。
require 'ipaddress'

#IPアドレスチェック
def check_ip
  begin
    IPAddress::IPv4.new ip
  rescue
    return false
  end
  true
end

#サブネットマスクチェック
def check_mask
  begin
    IPAddress::IPv4.new "10.0.0.1/#{mask}"
  rescue
    return false
  end
  true
end

#MACアドレスチェック
#これは正規表現を使っています
def check_mac
  if /^([0-9A-F]{2}:){5}[0-9A-F]{2}$/ =~ mac.upcase
    true
  else
    false
  end
end

#ブロードキャストアドレス取得
def get_broadcast(ip,mask)
  ipa = IPAddress::IPv4.new "#{ip}/#{mask}"
  ipa.broadcast.address
end

ブロードキャストアドレス取得以外は、rubyで普通に使えるipaddrでも似たようなことはできるような木はします。

2011-03-07

ActiveScaffoldで独自のリンク

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
RailsのScaffoldをステキにするActiveScaffoldでは、データの追加、変更、削除の他に独自のリンクを作成できます。

リンクを追加するには、action_linksをいろいろいじります。

こんな感じでリンクを追加します。
config.action_links.add 'info', :label => '特別情報表示'
これでコントローラのinfoアクションが呼ばれることになります。
表示場所は、検索や新規追加などと同じ場所に埋め込まれる形で表示されます。

ページの頭ではなく、各レコード毎に表示したい場合は、
config.action_links.add 'info', :label => '特別情報表示', :type => :record
のように
:type => :record
を指定します。

ActiveScaffoldに埋め込まれる形でなく、新規にページを遷移させたい場合は、
config.action_links.add 'info', :label => '特別情報表示', :page => true
のように
:page => true
を指定します。

リンク先をActiveScaffoldを使っているコントローラとは別のコントローラのアクションにしたい場合は、
config.action_links.add 'info', :label => '特別情報表示', :page => true, :controller => 'info', :action => 'index'
のように
:controller => 'info',:action => 'index'
を指定します。

いろいろ便利なActiveScaffoldなのでした。

rubyでping

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
rubyからpingをうって、相手が生きているかどうか確認したいなぁとか思ってみました。

調べてみると
Ping.pingecho
というものがひっかかるのですが、どうも1.9で削除されている模様です。

なので以下のような感じで確認してみることにしました。
def ping
  ret = `ping -c 1 #{ip}`
  if ret =~ /1 received/
    true
  else
    false
  end
end

とりあえず確認できたのでよしとします。

2011-03-04

ブログのタイトルを変えてみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ブログのタイトルを
「SOBARCO」と「ソコニイク」と「図書ぶら」の開発メモ
から
コチョナナバ
に変えてみました。これからもよろしくお願いします。

twitterのアカウントもなんとなく変えたくなってきたりしているのですが、どうしようか悩み中です。

2011-03-03

railsのlink_toでページの途中にリンクさせたいとき

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
railsで都合によりあるページの頭ではなく、途中にリンクさせたいことがありました。

http://aaa/bbb/ccc#ddd

みたいな感じのリンクを作りたいと思ったわけです。

<%= link_to '途中', :controller => :bbb, :action => :ccc, :anchor => 'ddd' %>

こんな感じでanchorを入れればよいようです。

subversionでファイル一覧やら変更履歴やらを出す

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
いまどきはgitなのだと思うのですがsubversionを使っています。

でたまに管理しているファイル一覧やら変更履歴やらが欲しくなります。

ファイル一覧では、ファイルごとの最終変更日時なりがわかるとうれしかったりします。
変更履歴では、リビジョンごとのメッセージだけでなく、そのとき変更されたファイルなども一緒にわかったりするとうれしかったりします。

これらをわかるような資料を作るためには、
TortoiseSVN
を使うとステキです。

それぞれ以下のような感じです。

・ファイル一覧
一覧を出力したトップのところで右クリック
TortoiseSVN-Check for modifications
を選択して、出てきた画面上で
Show ignored file以外にチェックを入れる
そしてファイル一覧が出てくるので全選択して右クリック
Copy all infomation to clipboard
してコピーしておきます。
そして、エクセルに貼り付けて不要カラム除去などを行っていい感じの資料にします。

・変更記録
一覧を出力したトップのところで右クリック
TortoiseSVN-Show log
revisionの最初と最後をシフトを押しながら全選択して右クリック
Copy to clipboard
してコピーしておきます。
エクセルになりなんなりに貼り付けます。

こんな感じです。