This domain may be for sale!
This domain may be for sale!
前回 はコンテキストの概念を眺めて、klassを理解することが必要だという話になったのであった。 klass class文の中では構築しようとしているクラスに対応するClassオブジェクトがselfとなっている。それに、class文の中でのクラスメソッド定義をみると、なんとなく、「デフォルトではselfに、指定すればそのオブジェクトに」というメソッド呼び出しにおけるレシーバー解決に似ている。 class Foo def self.class_method_hoge p :hoge end end class Bar def Foo.class_method_huga p :huga end def self.class_method_huga_of_bar p :huga end end このことを考えるとRubyでは、メソッドはselfに定義されると考えたくなるが、そうではない。実はこれ
前回 は各オブジェクトの基本的な特徴を見ただけで終わってしまった。今回はこれらをコンテキストという観点から見てみたい。 前回のまとめ 呼び出し外側のscopeblock中身戻り値 __send____send__不可能(そもそもコンテキストを保存していない)可能保持しないメソッドの戻り値 Method[],call参照不可能可能メソッド本体とselfメソッドの戻り値 UnboundMethod不能参照不可能-本体メソッドの戻り値 Proc[],call,yield参照可能不可能closureProcの最後の値 Continuation[],call-不可能「続き」戻らない Proc#callにおいてブロック付きの呼び出しが不可能であることは前回は記述しなかった。 sshiさんにご指摘いただいた 。 Procを作成するときに指定するブロック仮引数の記述は、メソッド定義の際の仮引数の記述にとて
Rubyにはコード片を表すオブジェクトが複数ある。 Method , UnboundMethod , Proc である。 Continuation は少し違うけど、実行コンテキストを記憶しているオブジェクトという意味では近いものがあるか。『 Ruby Way 』にはこういういろいろがあることについて「驚くほどのことではありません」と書いてあるけれども私は驚いた。で、これらが微妙に違うのだ。困ったもんだ。いや、便利なのかもしれないが。 それで今回はこれらの概要を眺めてみたいと思う。 普通のメソッド defでメソッドを定義するのが一番普通だやな。 class C def greeting(arg) puts "C#greeting reveived #{arg}" end def iterator yield 'iterator 1st' yield 'iterator 2nd' yield
asFlex3 リファレンスガイドを HTML ヘルプ化する Ruby スクリプトがちょっと前に公開された。flex3.chm - × - ogijunグループけど、完成した CHM を見たら目次が手抜き風…。ソースを見たら # FIXME:unko と書いてあったので、FIX しておいた。Ruby は慣れてないので手探り。誰かがさらに Fix してくれたら嬉しいな。修正後はこんな感じ。パッケージからクラス一覧にアクセスしやすくなるので、知らないクラスを探しやすくなったよ。Coderepos にうpしておいたので、入手はそちらから。/lang/actionscript/htmlhelp/flex3/lang/actionscript/htmlhelp/flex3 - CodeRepos::Share - TracCHMを公開したらすごく便利なんだろうけど、権利的にびみょーなので悲しいところ
Ruby2008/8/7にやんわり修正しました。 ソースコードsvnは svn co http://svn.coderepos.org/share/lang/ruby/nario Codereposにあげているので自由に触ってください。 環境設定Windowsであれば、ファイル内のrskit/game.exeで、フルスクリーンで動作します。linuxであればruby/sdlを動く環境を作成して、 ruby nario.rb で大丈夫です。 Ubuntuで動作確認していただきました。 SUPER NARIOをプレイしてみた(最速レビューをめざして) - きみのハートを8ビットキャスト 操作方法十字キー ←↑→↓Aボタン ABボタン B終了 ESC(フルスクリーンで動かすときは特に覚えておいたほうがいいです) Todoきのことか成長系、他のマップ、BGM、SEただ、1-1を作って非常に疲れたの
思いは言葉に。 はてなブログは、あなたの思いや考えを残したり、 さまざまな人が綴った多様な価値観に触れたりできる場所です。
Perl での print debug の方法の紹介がブーム(?)だったので、自分がよく行ってる Ruby での debug 方法7つについて書いてみます。 p ご存じの人も多い Kernel#p メソッド。これを使うとオブジェクトの内容を見やすい形で出力してくれます。 >> p ({:foobar => :baz}) {:foobar=>:baz}Object#inspect を使うと、p で出力するときと同じ文字列を String として取得できます。 >> puts ({:foobar => :baz}).inspect {:foobar=>:baz}初心者の頃この p での出力を使う方法がわからなくて困った記憶が…。 pp pp というライブラリを使うと、p より、より見やすい形式で出力してくれます。たとえば >> a = Array.new(10) { {:foobar => :
Rubyで今実行中のメソッド名を知る - 2nd life callerを使うと例外を投げなくてもバックトレースの情報を取得できます。これを使うともう少し簡単になりそうです。こんな感じでしょうか。 #!/usr/bin/env ruby class Object def current_method caller.first.scan(/`(.*)'/).to_s end end def foo p current_method end def bar foo p current_method end bar # => "foo" # "bar" p current_method # => ""参照: プログラミング言語 Ruby リファレンスマニュアル 実は僕もid:ha-tan:20050816:1124154888でなかださんに教えてもらいました。
Index of /~ohai/diary/../
第4回 Rubyインタプリタの組み込み(2) 前田修吾 VIM 今回はVIM(参考文献[1])というテキストエディタへのRubyの組み込みに ついて紹介します。 VIMはviクローンの一つですが、viを忠実的に再現するというよりは、多段 undoやマルチウィンドウ、GUIをサポートするなど、より高機能なエディタを 目指しています。ちなみにVIMは"Vi IMproved"の略で、「改良されたvi」とい う意味を持ちます。 このVIMの開発版には実はすでにRuby用のインタフェイスが組み込まれており、 Fig1のような手順でインストールすることで利用可能になります。 筆者が以前PerlやPythonなどしかサポートされていなかったのを見て、Rubyイ ンタフェイスを作成してパッチを送ったのですが、最初の反応は「Rubyなんて 知らない。もうちょっと有名になったら考えるから、しばらくはパッチで
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。
なんでrubyには - 'hceT'.sub(/\Z/,'bus').reverse Enumerable#shuffle - 満足せる豚。眠たげなポチ。 確かにあると便利ですよねぇ。僕も勝手に定義して使ってます。うちのはこんな感じです。 module Enumerable def shuffle() return self.to_a().dup().shuffle!() end end class Array def shuffle!() for i in 0...self.size j= i + rand(self.size-i) self[j], self[i]= self[i], self[j] end return self end end最近教えてもらったアルゴリズムだったり。
● [Rails] GoogleCalendar を使う 〜 データ登録編 〜 データの更新や private なカレンダーへアクセスするには Google へのログインおよびセッション維持が必要になるが、gcalapi では GoogleCalendar::Service がセッション周りの面倒を全て見てくれる。 Serviceオブジェクトの作成 Serviceオブジェクトは、カレンダー用の Gmail のアカウント情報から簡単に作成できる。 srv = GoogleCalendar::Service.new('xxxxxx@gmail.com', 'password') # (※ メアドとパス) Calendarオブジェクトの作成(その1) カレンダーへのアクセスには、Calendarオブジェクトを利用する。これは、先ほどのServiceオブジェクトと参照先するカレンダーのFEED情報
Home On The Range http://codegolf.com/home-on-the-range 問題別のTop10入りは結構難しいので、10,000pointでランクインするのはとても嬉しい。 http://jp.rubyist.net/magazine/?0022-RubiMaGolf 21BだけどASCIIじゃないのでややインチキ。 っと思ったら22Bでした。スマソ 続きを読む http://www.darrenks.com/golfscript/index.html すげー http://golf.shinh.org/lranking.rb 68問しか解いてないのに2位です。Avg.がエラいことになってます(;´Д`)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く