Ruby

メールアドレスの正規表現はこれで良いよね?

なんとなくメールアドレスの正規表現。トップレベルドメインってアルファベットのみだったよね??@右側はガチガチに制限入れられるけど、@左側はポリシーによって違うだろうしガチガチには出来ないかな。 /\A[a-z0-9][\w\-\.]+[a-z0-9]@([a-z0-9][a-z0-9\-]…

なんとなくRubyでエクセルファイルをいじってみたいと思ったよぉ。

最近CSV書き出しが欲しいってクライアントがやけに多い。何に使うんだ?管理画面にちゃんと専用のインターフェースあるんだぞ?わからん。 みんな大好きエクセルどうにかならんかいやw どうせCSVにしても結局エクセルでしか開かないんだからエクセルで書き…

テキストを指定桁数抜き出す?切り取る?やーーーつ

ブログやrssなんかでよくあるテキストの先頭から50文字だけ切り取るみたいなやつ、結構使えるのでStringクラスにぶっコム。scanで細切れにするってのも考えたけど、文字数が多くなると遅くなりそうなのでヤメ。長文用にstrscanも考えたが結局正規表現でポジ…

Enumrable#count に気づかず・・・

1.8.7からこんなメソッドが増えたのね・・・気づかなかったorz 1.8.6から1.8.7にアップデートしたらおかしな事になったので調べて見たらそういうことだった。単純にmethod_missingなんって使ってはいけないね。バグの元ですわ あーあほらし。

複合キーで昇順降順ソートできるsort_byて良い

1.7系から?かな使えるようになったのは。 [[5,2],[1,2],[9,8],[5,9],[3,5],[3,4],[5,3]] こんな配列があって、0番目を降順、1番目を昇順でソートしたいって時が多々ある。SQLだと簡単なんだが・・・。と言いつつもrubyでも簡単にできるこの素晴らしさ。 irb…

hpricotの互換性が・・・

結構前にhpricotを使って書いたコードがエラーで動かない・・・。どうもおかしなバージョンの時に作ってしまったらしい。今更コードを書き換えるのも何なのでそのままに・・・当時と同じバージョンでインストールしておきましょ。 $ gem install --remote -v…

CentOS5.3にrubygemsでpostgresインターフェースを入れたい

PostgreSQL8.4.xを自前でインストールした体でのこと。※インストール先/usr/local/pgsql #yumでPostgreSQLを入れた場合は、もっと簡単に進むと思われる。rubygemsで検索すると、ruby-postgresとかpostgresとか色々ある。使い慣れたpostgresを使う事にする。…

CentOS5.3でrubygemsを使いたい

何にでもrubyを入れたいんだぁ!!それはそれ。さて、千都君にrubygemsを。yumでインストール出来るかなと期待したが駄目なので、自前。rubygemsはアップデート機能があるので、rpmにしないでそのまま入れてしまう事にした。 $ wget http://rubyforge.org/fr…

CentOS5.3でmod_rubyが使いたい

れいによって、mod_rubyを使いたい。もはや病気か・・・それはそれ。早速ruby ./configure.rbを実行する。そしてmake。エラー。 $ make gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -ma…

共有ホスティングでruby-postgresを使いたい

某、共有ホスティングサービスでruby-postgresを利用したいと要求が。どうも、sshも使えるしPostgreSQLも入っているらしい。今時だとrubyのモジュールを使うときはgems経由だなとおもい、rubygemsをインストール(前に日記で書いたので省略)。・・・つかrub…

バックスラッシュと円記号

テキストエディタによっては、キーボードの円記号を押すとそのまま円記号¥が入力されるが、そんなエディタでプログラムを書いているとハマる事になる可能性が大。正規表現でバックスラッシュと円記号を同じに考えてコードを書いてしまう事があるが、ちゃん…

Macでもkakasiを使いたい

例によってMacで開発環境を整備している次第だが、インストールするたびちょいちょいエラーがでる。 kakasi自体はmacportsから拝借。さて、rubyでkakasiを利用する為のライブラリを入れてみた。 $ wget http://www.notwork.org/~gotoken/ruby/p/kakasi/kakas…

MacPortsでmod_ruby入れようかなと

なんかいちいちvm立ち上げたりsshでスクリプト書いたりするのさすがに面倒なので、ローカルでやろうと思った。 $ sudo port install mod_ruby > Fetching mod_ruby > Verifying checksum(s) for mod_ruby > Extracting mod_ruby > Configuring mod_ruby Erro…

MacOSXでrubygemsを使ってpostgresqlインターフェースを入れる

せっかくMacでもrubygemsが使えるので、rubyからPostgreSQLが操作出来るインターフェースを入れてみた。PostgreSQLはportを使ってインストールしたので、gemコマンドでインストールする際にコンパイルに失敗する。configureする際のオプションを付けてインス…

Uconvでコケ対策

携帯サイトやってるとどうしてもShift_JISで表示しないとうまくない.今のところ・・・と言うことでUconvをありがたく使わせてもらってUTF-8からShift_JISへ変換する.・・・がコケる.こればかりはどうしようもない.コケたらNKFに頼ろう.ダメな時はまとめ…

Ruby的には「format」「sprintf」どっち?

ふと思ったのだが,プログラムをRubyで学んだ人はformatを使う人,C言語など他の言語から学んだ人は,sprintfを使う人が多いように思う.統計を取れるほどサンプルは無いのだが・・・.実際身近な人たちはそんな感じ.皆さんはいったいどっちを使っているん…

「RubyのHashが生成順を保障しない」

MLで久々に盛り上がった内容だった. http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/43857Hashに順番が保存されるのはどうなの?というやつ.保存されると,メモリの問題が出てくる.との反論.確かにそうだが,そんなシビアな状況でrubyを…

irbついでに,MD5がまずいのでSHA2を使ってみる.

最近APOPの話題でMD5がまずいと.(結構前から良くないという話は・・・)コマンドプロンプトを起動して C:\>irb irb(main):001:0> require "digest/sha2" => true irb(main):002:0> password = ("a".."z").to_a.join => "abcdefghijklmnopqrstuvwxyz" irb(m…

Windowsでもrubyのirbを使いたいよ

Windowsにrubyを入れるには,インストーラを使うか自分で何とか入れるかで迷う. 迷った末に必ず自分で何とかしている. まずはhttp://ftp.ruby-lang.org/pub/ruby/binaries/cygwin/1.8/から最新のバイナリを(有難く)頂いてくる. ※現時点では,ruby-1.8.4…

auのコンテンツダウンロードに苦戦

なんだかうまくいかない. 高々ダウンロードがだ.なぜだ.なんか,決まったサイズ以下しかダウンロードがうまくいかない.こまった. どの機種でやっても結果は同じ.うーん.仕様書にもそんなこと書いてないし.と悩みながらaccessログを見てたら. 「HTTP…

ついでだからRubyでもSHA256

たまに使うので. require "digest/sha2" string = "さーーーーこいっ!" puts Digest::SHA256::hexdigest(string) puts Digest::SHA512::hexdigest(string)

Time#usecをstrftimeで使いたい

strftimeでusecが使いたいときがある. class Time alias replace_strftime strftime def strftime(fmt=nil) if fmt self.replace_strftime(fmt).gsub(/%#U/, self.usec.to_s) else self.to_s end end end t = Time::now puts t.strftime("%Y-%m-%d %H:%M:%S…

使い道不明だがなんだか便利に使えるかも

class Object; attr_accessor :tag; end hash = Hash::new hash.tag = Array::new p hash.tag arr = Array::new arr.tag = 1 p arr.tag でもこの方がスマートかな #使うときにinclude module Object::Tag attr_accessor :tag end include Object::Tag #また…

なんとなく四捨五入したい気持ち

小数点ほにゃららで四捨五入したい class Numeric def roundoff(d=0) x = 10**d if self