2007-01-01から1年間の記事一覧

WWW::Mechanizeのインストール

疑似ブラウザ的にWebサイトを扱えるモジュール。コマンドは、 gem install mechanize番号聞かれたら1を入力した。 Bulk updating Gem source index for: http://gems.rubyforge.org Install required dependency hpricot? [Yn] y Select which gem to instal…

String#sliceの挙動

当たり前っちゃあたりまえだけど、メモ 戻り値は「切り出した値」。これは破壊的メソッドを使ったときも同じ。 line ="0123456" str = line.slice(0, 3) puts str =>012 破壊的メソッドを使ったときの、自分の値は「切り出された残り」 line ="0123456" line…

UTF-8環境で半角英数字前後の半角スペースを除去する方法

Webなどでは見やすさのために英数字の前後に半角スペースを挿入していることがあるが、 そんな文章から半角スペースを取るプログラムを組みたかった。 たとえば 「Java なら Eclipse、.NET なら Visual Studio というツールがあります」なら 「JavaならEclip…

UTF-8でも文字化けさせずにコンソールでデバッグする方法

Eclipseはコンソール出力がOSに依存してしまう(WindowsはSJIS)なので、 Rubyでputsをやると文字化けしてしまう。 デバッグ時は、SJISに変換してやるしかないようだ。 require 'kconv' str = "ほげほげ" puts str.tosjis こうやれば、「ほげほげ」が出力さ…

プライマリーキーを「ID」以外にする方法

def self.up create_table :testsun do |t| t.column :ex_word, :primary_key t.column :ex_word_type, :string end end これではエラー。 「id」という名前を無効にしてやらないといけない。 def self.up create_table :testsun, {:id => false} do |t| t.c…

ディレクトリがなかったら作成する

FileUtils.mkdir_p(path) unless FileTest.exist?(path) ディレクトリの作成はDir.mkdirでもいいんだけど、 FileUtils.mkdir_pを使うと階層化されたパス(/user/hoge/ababa といった形式)も渡せるのでこれが便利。 この場合、「user」「hoge」「ababa」がな…

時間のフォーマット

現在時刻をYYYYMMDDHHMISS形式で表示するには t = Time.new t.strftime("%Y%m%d%H%M%S") puts t

クラスメソッドの書き方

class Foo def Foo.bar puts "hello" end end と定義(ファイル名は「foo.rb」)。これを他のクラスから require "foo" Foo.bar とすると、「hello」が出力される。

File、あるいはDirの存在チェック

たとえば「hoge」というファイルをチェックするときは FileTest.exist?("hoge") で。戻り値はboolean。ファイルもディレクトリも同じ。

 自動選択するセレクトボックス

document.formname.selectname.options.selectedIndex = i;

Wordファイルに埋め込まれている画像の元画像を抜きとる方法

・Wordを1度、「Webページとして保存」する。 ・フォルダができる。 ・その中に画像ファイルがある。元画像と縮小版が手に入る。

逆順ソート

Array#sortを逆順にするには ary.sort{|i| -i } が正解。 Array#reverseは、現在の並び順を真逆にするだけで、ソートはしていない。

スペジェネの表示件数(Special Generator)

Controllerのそれっぽいクラスを開けると「:per_page」という変数がある。ここの数字を変えればOK。 デフォルトは10。表示件数が多いと重くなる。

CSSアドオン

窓の杜 - 【NEWS】スタイルシートのソース表示に特化したFirefox拡張「View formatted source」 http://www.forest.impress.co.jp/article/2007/06/11/vfs.html

Firefoxの場合

eventではなくeを使うのがみそ。 また、e.keyCodeとe.charCodeがある。IMEを効かせていると取れる値が違うので注意。 <script type="text/javascript"> document.onkeypress = key_Press function key_Press(e){ keycode = e.which; alert(keycode); keychar = String.fromCharCode(keycode)</script>…

キーボード入力文字を表示するJavaScript

<html> <script type="text/javascript"> document.onkeypress = key_Press function key_Press(e){ alert(String.fromCharCode(event.keyCode)); } </script> <body bgcolor="#ffffff"> </body> </html>

メモ

aaa = text_info.text[i] p aaa if (/\W\s+\.?\w/ =~ aaa) aaa.scan(/\W\W\s+\.?\w/){ |matched| puts matched buf = matched.gsub(/\s+/, "") aaa = aaa.sub(matched, bur) } end if (/\w\s+\W/ =~ aaa) aaa.scan(/\w\s+\W\W/){ |matched| puts matched buf…

中国語で表示させる方法

「eclipse/configuration/config.ini」を開き、 「# End of file marker - must be here」とコメントされている行の上に、 「osgi.nl=zh」と追加する。http://127.0.0.1:53186/help/topic/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html…

全角文字を半角文字に変換するプログラム

require 'jcode' aaa = ("ABC") puts aaa.tr('A-Z', 'A-Z') ただし、エディタならびにRubyの文字コードを統一(UTF-8など)しておく必要あり。

テキストファイルを固定文字数で切って、行番号をつけるプログラム

抜粋 #!ruby -Ks head_figure = 3 text_length = 80 - head_figure - 2 while line = gets do line.chomp! lines = Array.new while line.gsub!( /^.{#{text_length}}/, '' ) do lines << $& end lines << line # 行番号をつけて出力 result = '' lines.each…

google-code-prettifyのメモ

http://code.google.com/p/google-code-prettify/ ショート版だとバグった。nullが出る MTかつFirefoxの場合、妙な改行が含まれることがある。pタグが混入してしまうのが原因。preタグの前に改行を入れると回避できる。

Outlookで、別の送信者アドレスでメールを送りたいとき

Outlookアカウントを追加するしかなかった。 追加後は、メールを新規作成し、ツールバーにある「アカウント」から瞬間的に切り替えられる。 ただし、パスワードが違うと何度も聞かれる。Outlook explessファイル→ユーザの管理で強引に切り替え可能。 なんか…

DOSコマンドでドライブを変えるとき

CドライブからDドライブに変えるとき C:\>d:

Apache + Windows + Ruby on Railsの設定がわからない。

3時間近くやったけど結局わからず。 とりあえず、ここの設定通りにやったら動いた。それだけでもOK。 http://www.syssupo.co.jp/net_hal/ror.html Apache2.2を使ったらmod_ruby.soのロードができないと言われて、起動できず。リリースノートを見ると2.2に対…

Subversionを導入してみよう

Windowsでのやり方。1.本体のダウンロード「svn-1.4.4-setup.exe」 http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 実行。 場所はCドライブ直下にした。 「Apache」うんぬんのチェックは外す。 これでインストール完了。 2.リポ…

DailymotionのRSS

YouTubeはWeb APIがあるけど、Dailymotionはない。 だけどもRSSがその代わりになっている。 以下、オプション。http://www.dailymotion.com/rss/mychannel/userneme/sort-op/page sortオブション 指定なし (mostrecent,AllTime(マイチェネル検索)) popular c…

rails plugin installがわからない

というか、DOSからinstallコマンドを打ってみたけど反応がなかった。 C:\>ruby c:/eclipse\workspace\hoge\script\pluguin install http://〜 というコマンドじゃダメなのかな? エラーは出ないけど、フリーズする。

Aptana eclipseプラグインで、rails pluginを追加する方法

Special Generationを追加しようと思ったらリストになかったので追加した。 場所: eclipse/workspace/.metadata/.plugins/org.radrails.rails.core/rails_plugins.xml一応バックアップをとって、適当な位置にソースを追加。 repository以外は適当 <plugin> <rating>4.5</rating> <name>Spec</name></plugin>…

ここまで使って

ようやくはてダの使い方がわかった。

render :actionで複数遷移わけしたいとき

render :actionは1度しか呼べない。 複数遷移わけしたいときはif文などで、変数として遷移先を持っておき、 最後にrender :actionをする。 if @text_info.finish render_action = 'finish' elsif @text_info.ex_word == nil render_action = 'convert' else …