ruby
"012345".gsub(/\d+/) { |num| num.to_i+1 } #=> "123456"
Ruby1.8.7とRails3という環境をRVMを使って作る $ rvm install 1.8.7 #=> Ruby1.8.7をインストール $ rvm use 1.8.7 #=> Ruby1.8.7を使うことにする $ ruby -v ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] $ rvm gemset create rails3 #=> rails…
Ruby東海 Wiki - 第15回勉強会で司会を務めるので、そのメモ Javaなどのコンパイラによる静的型チェックが行われる静的言語に対し、PythonやRubyのような動的言語ではそのようなことは行われない 動的言語では存在しないメソッドを呼び出すようなコードを書…
2011/10/31 参考書籍を追記また習得するころには新しいバージョンになってるんだろうな・・・ これだけ読めば本は要らない Ruby on Rails Guides (edge) 基本的な使い方から、コメント、タグつきのブログアプリケーションを作るまでのチュートリアル Ruby on…
さあ火曜日 「この重複コードを排除するには2つの方法が考えられる」と、ビルは自慢げに言う。 P74 今日もビルは絶好調みたいですね!次のページでは若いころの話とかしちゃってるし 2.2.1 メソッドを動的に呼び出す sendメソッドでメソッドを動的に呼び出す…
使い方をいつも忘れるのでメモ 詳しい使い方は以下のURLが素晴らしい Nokogiri(公式サイト) スクレイピングのためのNokogiri利用メモ - それはそれ。これはこれ。 基本 Nokogiriのノードオブジェクトを得る require 'rubygems' require 'nokogiri' require '…
面白かったところ、知らなかったことなどのメモ Ruby東海でメタプログラミングRubyの読書会が始まるのでその予習 Rubyのクラス宣言 3.times do class C puts "Hellow" end end これがclass Cを3回宣言したということじゃないということ つまりRubyにおけるcl…
メモ irb(main):034:0* class HelloWorld irb(main):035:1> def initialize irb(main):036:2> p "Hello World" irb(main):037:2> end irb(main):038:1> end => nil irb(main):039:0> class_name = "HelloWorld" => "HelloWorld" irb(main):041:0> eval("#{cl…
目的 データベースのテーブルをつくり、CRUD処理ができるようにする。 所要時間 5分 作業 ショッピングモールのようなものを作ることが目的なので、まず商品のマスタを管理できるようにします。 テーブルをつくり、商品のCRUD処理を自動生成する とりあえず…
目標 WindowsXPの環境にRuby1.9.2とRails3をインストールし、Rails3アプリケーションが動作することを確認する。 所要時間 5分ぐらい(RDocのインストール時間による) 目次 Ruby(とrubygems)のインストール SQLite3のDLLのインストール Ruby on Rails3のイ…
RubyKaigi2010にも参加したし、1.9対応のRuby on Rails3も正式リリースされたということなので、1.9に乗り換えることにした。記念にフィボナッチ、FizzBuzzに次ぐ三大非実用関数「竹内関数」で1.9に乗り換えた幸せを確認してみる。 $ rvm use 1.9.2-preview1…
http://www.ruby-lang.org/で利用されており、Railsで作られているというCMS「Radiant」を試してみた。 単純で使いやすそうだが、画像管理などもプラグイン(extension)で行わなければならないのは不便だし、ここまで低機能なものをわざわざRailsで動作させ…
やれば簡単そうだけど、いままでやってなかったRakeについて調べた。 練習としてsubversionのリポジトリからコードをチェックアウトして、シンボリックリンクを張りなおすというcapistranoっぽい作業を自動化する。 やりたいこと ファイル構成はこんな感じ -…
ホワイの(感動的)Rubyガイドオリジナルはこっちにある http://www.aoky.net/articles/why_poignant_guide_to_ruby/chapter-3.html
dRubyで並列処理 - ohacの日記をいう記事を見たのですが 自分の読解力不足だったので時間をかけて読んだ。 面白かったのでコメントをつけて紹介させて頂きます。 なにか このサンプルコードは500万回の疑似乱数の中から最も0に近い実数を見つけだすというプ…
アクセスできなかったら例外 require 'open-uri' loop { open('http://www.yahoo.co.jp'){|f| raise f.status.to_s unless f.status[0] == "200" } sleep(30) } はてなブックマーク数も気になる人用(今の僕) require 'open-uri' uri = "調査したいアドレス…
wget http://rubyforge.org/frs/download.php/69365/rubygems-1.3.6.tgz tar vzxf rubygems-1.3.6.tgz cd rubygems-1.3.6 ruby setup.rb ln -s /usr/local/bin/gem /usr/bin/gem普通はここで終わり。Rubyもソースコードから入れている場合はzlibが入っていな…
RubyのlambdaとProc.newは凄くにてるけど、少し違う 同じ挙動 irb(main):012:0> square = {|x| puts x**2} SyntaxError: compile error irb(main):016:0* square1 = lambda {|x| puts x**2} => #<Proc:0x00002ab8c198d420@(irb):16> irb(main):017:0> square1.call(2) 4 => nil irb(main):021:0</proc:0x00002ab8c198d420@(irb):16>…
Ruby用の人工知能ライブラリ「AI4R」というのがあるのでサンプルを動かしてみた。AI4Rはニューラルネットワークや遺伝的アルゴリズム、決定木などのいくつかのAIアルゴリズムが実装されている人工知能用ライブラリです。 gemで提供されているので gem instal…
CSNagoya3周年記念の発表で使ったネタ言語。 ジョジョ言語 バージョン3です。 タイトルでピンと来なかった人はwikipediaのbrainfuckの項目などをご覧下さい。 賢い人がバージョン6を作って素数をカウントするなどしてくれたらいいと思います。 特徴 バトル風…
チューリング完全って言ってみたかっただけ。Ruby1.8.7から動くはず $KCODE = 'u' class BrainF_ck class ProgramError < StandardError; end def initialize(src) @tokens = src.scan(/./) @jumps = analyze_jumps(@tokens) end def run tape = [] pc = 0 c…
URIというライブラリを使う require 'uri' URI::join('http://example.com/a/b/foo.html','bar.html').to_s #=> http://example.com/a/b/bar.html
$ ruby -v ruby 1.8.5 (2006-08-25) [x86_64-linux] $ rvm use 1.9 <i> Now using ruby 1.9.1 p376 </i> $ ruby -v ruby 1.8.5 (2006-08-25) [x86_64-linux] なんでなの?rvmのバージョンは0.0.999。 ruby 1.8.5はaptitudeでいれたruby 追記(解決) インストール後…
Ruby1.8はメソッド呼出のとき、スーパークラスをたどりながらメソッドの実体を検索するのだが、メソッド呼出のたびに検索するのでは効率が悪いのでメソッドキャッシュというキャッシュを使う。Rubyソースコード完全解説をCSNagoyaで読んでいたときに「キャッ…
windowsで久しぶりにRailsを触ったら激重になっていて驚いた partialを一個レンダリングするのに0.3秒とかかかるようになっていた。 原因はActiveRubyで、とりあえずはp72にすればよいらしい下記ページのコメント欄にp72へのリンクがある L'eclat des jours(…
windowsのruby1.8.7でSQLite3を使っていて、UNIQUE制約に引っかかったときの例外 SQLite3::SQLException: SQL logic error or missing database: INSERT INTO (SQLがつづく) が補足できない。Rubyのコードは begin user.save rescue SQLite3:Exception=> e…