Ruby 初心者スレッド Part 22 at TECH
[2ch|▼Menu]
1:730
08/09/15 17:25:21
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

   【Ruby1.9 は不安定な開発版であり初心者には全く向きません】
   【最新安定版の Ruby1.8.7 の使用をお勧めします】
    ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。
      1.9 の新機能の一部が利用可能なので初学者にお勧めです。
    ※ただし十分安定しているとは言えないので
      プロダクション環境での利用にはお勧めしません。

関連スレやURLは>>2-8あたりを見てください。Ruby on Railsの質問はRailsスレへ。

■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
 ・モジュール名やエラーメッセージでググる
 ・マニュアルで引っかかったクラスの記述を探す URLリンク(www.ruby-lang.org)
 ・FAQを一応読む URLリンク(www.ruby-lang.org)
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・エラーメッセージ(自力で訳さずなるべくそのままで)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。
■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

2:730
08/09/15 17:27:18
【よくあるしつもん】
Q:
いちからRubyを始める初心者向けのRuby入門書は何がおすすめでしょうか?

A:
プログラム作成の初心者だったら
「たのしいRuby 第2版 Rubyではじめる気軽なプログラミング」
URLリンク(www.amazon.co.jp)

他の言語経験があるんだったら
「プログラミングRuby 第2版 言語編」
URLリンク(www.amazon.co.jp)
「初めてのRuby」
URLリンク(www.amazon.co.jp)


3:730
08/09/15 17:31:36
■前スレ
Ruby 初心者スレッド Part 21
スレリンク(tech板)

■関連スレ
Rubyについて Part 32
スレリンク(tech板)

Rubyの宿題教えてください。2限目
スレリンク(tech板)

RubyCocoa 初心者質問【Leopardバンドル記念】
スレリンク(mac板)

【ActiveScript】RubyをWindowsで使うスレ【GUI】
スレリンク(tech板)

Ruby on Rails のスレ が
スレリンク(php板)

デザパタ + Python/Ruby/Smalltalk part2
スレリンク(tech板)

魁け! Ruby 1.9.X
スレリンク(tech板)

Rubyについて(アンチ専用) Part003
スレリンク(tech板)

4:730
08/09/15 17:33:59
■公式/非公式関連リンク
Ruby Home Page
URLリンク(www.ruby-lang.org)

Rubyリファレンス(よくサーバーエラーになります)
URLリンク(www.ruby-lang.org)
URLリンク(www.ruby-doc.org) (英語)

リファレンスのHTMLヘルプ版配布
URLリンク(elbereth-hp.hp.infoseek.co.jp)
# Windowsで便利

Ruby FAQ
URLリンク(ruby-lang.org)

Programming Ruby - The Pragmatic Programmer's Guide
URLリンク(www.ruby-doc.org)
# 好評書籍をWebで公開中、ただし英語

逆引きRuby
URLリンク(www.namaraii.com)


5:730
08/09/15 17:35:01
RAA - Ruby Application Archive
URLリンク(raa.ruby-lang.org)

RubyForge
URLリンク(www.rubyforge.org)
# Rubyのアプリやライブラリが検索できる

GitHub RubyGems
URLリンク(gems.github.com)
URLリンク(github.com)
# 最近は RubyForge より GitHub が人気

日本Rubyの会 公式Wiki
URLリンク(jp.rubyist.net)
# メニューに表示されていない埋もれた情報ページ多数

Rubyist Magazine - るびま
URLリンク(jp.rubyist.net)
# コードレビューが好評

Ruby hotlinks 五月雨版(日記やblogのアンテナ)
URLリンク(www.rubyist.net)

Rubyの本一覧
URLリンク(www.ruby-lang.org)

<rubyXML/>
URLリンク(www.rubyxml.com)

Matzにっき(Ruby作者の日記)
URLリンク(www.rubyist.net)


6:730
08/09/15 17:36:20
■最近できたWiki
Ruby 初心者スレッド Hiki
URLリンク(starlet.s145.xrea.com)

Ruby Portal
URLリンク(ruby.morphball.net)

■プレゼンテーション
Ruby会議2008
URLリンク(jp.rubyist.net)
URLリンク(www.nicovideo.jp)

Ruby会議2007
URLリンク(jp.rubyist.net)
URLリンク(www.nicovideo.jp)

日本 Ruby カンファレンス 2006
URLリンク(jp.rubyist.net)
URLリンク(jp.rubyist.net)


7:730
08/09/15 17:40:14
■他板の関連スレ

【カルト】Ruby開発者Matz【モルモン】
スレリンク(prog板)

【Ruby/SDL他】Rubyでゲーム制作・総合スレッド
スレリンク(gamedev板)

RubyによるWebプログラミングについての質問
スレリンク(php板)

8:デフォルトの名無しさん
08/09/15 21:36:40
1乙
ただいま

9:デフォルトの名無しさん
08/09/15 21:40:43
スレ立て乙です
いきなり質問していいですか?
プロパティファイルの扱いのようにメッセージや設定を管理したい場合の
実装について一般的にどうするのかが知りたいです

定数クラスを作るべきかなと考えたんですが
パラメータを渡して組み合わせたものをメッセージとして表示させる場合に
警告が出て気になります。みなさんはこういう場合どう実装していますか?

10:デフォルトの名無しさん
08/09/15 22:48:07
>>9
>定数クラスを作るべきかなと考えたんですが
それでいいと思うけど。Configクラスとか。

>パラメータを渡して組み合わせたものをメッセージとして表示させる場合に
>警告が出て気になります。みなさんはこういう場合どう実装していますか?
どんな警告?


11:デフォルトの名無しさん
08/09/15 23:08:38
>>10
ああ、それで良かったんですか

警告は定数の値を変更しようとすると出るアレです

12:デフォルトの名無しさん
08/09/15 23:16:52
>パラメータを渡して組み合わせたものをメッセージとして表示させる場合に



>警告は定数の値を変更しようとすると出る

との間に1万光年の距離がある。



13:デフォルトの名無しさん
08/09/15 23:21:00
>>9

class Config
 attr_accessor :host, :user, :password
end
CONFIG = Config.new

と定義しておき、user-config.rb とかなんとかで

CONFIG.host = 'localhost;
CONFIG.user = 'root'
CONFIG.password = 'naisyo'

とかすればいいんじゃね?知らんけど。



14:デフォルトの名無しさん
08/09/15 23:27:51
最近はYAMLがいいんじゃないかね。


15:デフォルトの名無しさん
08/09/16 01:32:31
ネットのWEB上のテキストから
文字列を取得してきて、
変数aに格納するのってできる?
どうやるの?

URLリンク(www.abc.com)

に「あいうえお」って書いてあって、
その「あいうえお」を変数aに入れたい。

16:デフォルトの名無しさん
08/09/16 01:46:58
open-uri

17:デフォルトの名無しさん
08/09/16 02:05:09
>>15
require 'open-uri'
a = open('URLリンク(www.abc.com)') {|f| f.read }
これでいいんだっけ?間違ってたら教えて。

18:デフォルトの名無しさん
08/09/16 09:07:25
open-uriのブロックはわりと無意味

19:730
08/09/16 15:00:47
質問です

ActiveRecordってスレッドセーフなんですか?

20:デフォルトの名無しさん
08/09/16 19:04:42
>>19
多分違うけど、2.2からはthread safeになるかもしれない
ただRuby1.8だとthread safeにしてもあんまりうれしくない

21:デフォルトの名無しさん
08/09/16 21:37:01
今、RubyでiPhone用Webメーラーを作りたいんだけど

#!/usr/local/bin/ruby
require 'net/imap'

HOST = "imap.softbank.jp"
USERID = "takeshi_h"
PASSWORD = "take924"

imap = Net::IMAP.new(HOST)
imap.login(USERID, PASSWORD)
imap.select("INBOX")

まで書いてみたもののその先が分からず挫折中・・・
ここからsubjectだけ抜き出すにはどうすればいいのか詳しい人いたら教えてくださいorz

22:デフォルトの名無しさん
08/09/16 23:07:20
なあ、マシン名、ユーザーID、パスワードはマジなのか?
ここまで露骨だと釣りっぽい気もするが。

23:デフォルトの名無しさん
08/09/16 23:41:58
すみません、書き込んだ瞬間気付いてパス変えました;;

誰かのサンプルを参考にしちゃろうとググってみても全くヒットしないですね・・・
もしかするとRubyでimapっていうのがあまりお勧めできないのかしら
公式マニュアルだけでは何とも理解に時間がかかるので、書籍を買った方が良さそうですね

24:デフォルトの名無しさん
08/09/16 23:44:44
本なんて買うだけ無駄

25:デフォルトの名無しさん
08/09/16 23:51:13
>>23
ぐぐったらこんなのあったけど。ダメかな。
URLリンク(www.caliban.org)

26:デフォルトの名無しさん
08/09/17 00:15:04
use the source >>21


27:デフォルトの名無しさん
08/09/17 00:15:52
IMAPについての知識はあるんだよね

28:デフォルトの名無しさん
08/09/17 02:47:45
rubyって自分のパスワード2ちゃんに
書くようなマヌケが多いの?

29:デフォルトの名無しさん
08/09/17 07:23:00
Rubyなんて使ってるとアホになるよ

30:デフォルトの名無しさん
08/09/17 12:42:52
自動プロクシ設定スクリプト環境でのrubygemsの使い方を教えて下さい

31:デフォルトの名無しさん
08/09/17 13:36:39
パソコンのハードディスクに
「a.txt」
ってファイルを作る。


↑これってできる?

32:デフォルトの名無しさん
08/09/17 15:16:56
>>31
できる

33:デフォルトの名無しさん
08/09/17 16:21:04
>>31

File.open("a.txt", "w"){|f|
# ここでゆっくり好きな処理していってね!
}


34:デフォルトの名無しさん
08/09/17 18:00:02
ruby -rfileutils -e "FileUtils.touch('a.txt')"


35:デフォルトの名無しさん
08/09/17 20:53:08
ruby -e "(/mswin32|mingw|cygwin/===RUBY_PLATFORM)? `echo off > a.txt` : `touch a.txt`"

36:デフォルトの名無しさん
08/09/17 23:11:17
手続きに手続きを渡して実行させたいです。
具体的には
def funcall(fun,x)
return fun(x)
end

def inc(x)
return x+1
end

>> funcall(inc,4) #=>5
というような結果が欲しいです。
lambdaやProcで包んで.callすればできるというのはわかるのですが、
もっと簡単に行う方法ってないものでしょうか。

37:デフォルトの名無しさん
08/09/17 23:14:14
send(:symbol, args...)じゃ簡単にしたことにならないん?


38:デフォルトの名無しさん
08/09/17 23:25:23
>>37
サンクス!!

39:デフォルトの名無しさん
08/09/18 08:22:27
>>33-35

どれが正しいの?
なんでコードだけ張って
日本語の解説が無いの?

40:デフォルトの名無しさん
08/09/18 08:34:19
どれも正しい、>>35はちょっとイタダケナイけど
日本語の解説はリファレンスマニュアルでも読んどけ

41:デフォルトの名無しさん
08/09/18 10:49:11
>>36
Ruby的には
def funcall(x)
return yield(x)
end

x = 10
funcall(x) { x + 1 }
なんだよね。
でも関数合成的に使うには向いてないかも。

42:デフォルトの名無しさん
08/09/18 17:52:57
Enumerable#all? と Enumerable#any? について質問です。
要素が空の場合はどういう結果になるのでしょうか?

手元のrubyでは all? が true 、any? が false を返すようですが
マニュアルには要素が空の場合については書かれていないので
要素が空の場合は処理を分けた方が無難でしょうか?

43:デフォルトの名無しさん
08/09/18 19:14:28
>>42
数学的にはその挙動であってるはずだから、マニュアルに書いてなくても、その挙動を信じていいと思うよ


44:デフォルトの名無しさん
08/09/18 19:16:10
あ、これはマニュアルの不備だね
論理的な動作ではなく、Enumerable の内部処理に依存してる






って 1.8 でそれかよ

45:デフォルトの名無しさん
08/09/18 22:39:17
rubyの勉強をはじめてみたいのですが、
まず、なにとなにとなにを
ダウンロードしてインストールすればいいでしょうか?

OSはWindowsです

46:デフォルトの名無しさん
08/09/18 22:59:48
「ruby windows インストール」でぐぐるといいとおもうよ

47:sage
08/09/18 23:41:06
1.8.7にしたら
[BUG] object allocation during garbage collection phase
などというものがでるようになってしもうた。

GC と win32ole あたりに原因がありそうなんだけど
再現するコンパクトなコードがつくれませんの。

48:デフォルトの名無しさん
08/09/19 00:04:07
スレッド使ってるとよく出ますな

49:デフォルトの名無しさん
08/09/19 01:51:19
>43-44
ありがとうございます。そのまま行きます。

50:デフォルトの名無しさん
08/09/19 03:30:54
FAQだったらすみませんが、質問です。

Rubyのprivateメソッドやインスタンス変数は、Java や C++ のような完全な
隠蔽ではないようです。親クラスのprivateメソッドやインスタンス変数を、
子クラスで知らずに上書きしてしまう可能性があります。

この上書きを避けるには、どのようにしたら良いのでしょうか?親クラスの
privateなメソッドやインスタンス変数の名前をすべて把握する以外にないの
でしょうか?

特に、トップレベルで関数を定義することが、Objectクラスにメソッドを追加
することと同じなので、気づかずに既存のメソッドを上書きしてしまいそうで
不安です。


51:デフォルトの名無しさん
08/09/19 03:33:16
開発者同士でしっかり話し合う

52:50
08/09/19 04:18:50
Rubyの言語仕様や、コーディングの定石による対処法をお願いします。

特に不慣れなフレームワークを使っているときなどに、既存の関数の誤った上
書きによってトラブルが起こるのを避けたいのです。


53:デフォルトの名無しさん
08/09/19 08:21:08
適当に思いついたのを書いてみる

インスタンス変数の上書きは継承ではなく委譲を使うことで回避
フレームワークの都合等で継承せざるを得ない場合は、できるだけ
特殊な変数名を使う
> @HOGE @___hoge___ @projNo_hoge ...
これらの変数もHashや構造体等で入れ子にする事で定義数を減らす
> @projVar[:item] @projVar.item ...

メソッドの上書きはデバッグモード(ruby -d)の出力を確認
独自クラス定義前と定義後のclass#methods(等)の結果を比較

54:デフォルトの名無しさん
08/09/19 08:34:32
Win2000でrubyをはじめたいんだけど、
なんでパッケージが6つもあるの?

どれを入れたらいいのか、
わからないじゃん

55:デフォルトの名無しさん
08/09/19 08:45:37
言語仕様が無いのでいろんなものができてしまいました。

56:デフォルトの名無しさん
08/09/19 09:10:02
rubyでCGIゲーム作るって
イバラの道?

57:デフォルトの名無しさん
08/09/19 09:18:01
てか>>50のやり方はスクリプトの書き方(ライブラリの利用の仕方)としてなんか間違ってね?という気はするんだが

58:デフォルトの名無しさん
08/09/19 09:20:47
>>56
どんなゲーム作りたいかにもよるが、CGIべったりなPHPとかで作るよりはめんどくさい

59:デフォルトの名無しさん
08/09/19 10:06:20
>>58
だとしたらCGIゲーム部分(ブラウザで見る部分)はPHPで作って、
専用ブラウザはruby(RPGツクールVX)ってしたほうがいいかな。

でもそれだと2つの言語を覚えないといけないんだよね。

60:50
08/09/19 11:05:33
>>53
丁寧なご説明、ありがとうございます。ですが、結局「気をつける」以外に無
いようで、少々残念です。

アンダースコアで始まるなどの特殊な変数名は、逆にフレームワーク側も衝突
回避を意図して多用している可能性があり、結局、変数名にプロジェクトごと
のprefixをつけたり、 instance_variables でこまめに確認したりするしかな
いように見えます。

しかしこれでは、グローバル変数しかなかった時代と変わらないと思います。
むしろ、メタプログラミングによって変数名やメソッド名がgrep検索できなく
なったRubyコードでは、名前の衝突の危険性は増しているとすら思います。

PHP5には完全なprivateがあり、Pythonにはマングリングという仕組みがあり
ます。Rubyにそれに類するものがないのは意外でした。

しかしRuby1.9でも変更される予定は無いようなので、実用的にはさほど困ら
ないものなのかもしれません。

ruby -d は知りませんでした。活用させていただきます。


>>57
53さんもおっしゃるとおり、フレームワークに継承を強制される場合をお考え
ください。
URLリンク(www.gesource.jp)
> フレームワークを使っていると、知らないうちに基底クラスのメソッドをオー
> バーライドしてしまい、予期せぬバグに悩まされたりします。


61:デフォルトの名無しさん
08/09/19 11:05:54
rubyインストールしてみた。
ActiveRuby1.8.7いれてみた。

次、エディタは何使えばいい?

62:デフォルトの名無しさん
08/09/19 11:16:11
>>61
RDE

63:デフォルトの名無しさん
08/09/19 11:35:29
ActiveRubyっていうのをいれたんだけど、
本当はOne-Click Rubyっていうのもあったの?

どっちがよかったの?
なんで統一しないの?
なんでインストーラーがいっぱいあるの??

64:デフォルトの名無しさん
08/09/19 11:41:03
One-Click RubyのほうがPATHもセットしてくれるからいいと思う

65:デフォルトの名無しさん
08/09/19 11:41:48
>>60
不味いよね〜という話にはなっていて、いくつかの解決策も検討されているようだが
まだ手が回ってないっぽい
URLリンク(www.rubyist.net)

66:デフォルトの名無しさん
08/09/19 11:42:57
1.9は大きな変更しないってことになったから

67:デフォルトの名無しさん
08/09/19 11:55:21
>>63
ActiveScriptRubyは元々の目的が違うからじゃないかな
そもそも、本来は初心者向けのセットじゃないし

68:デフォルトの名無しさん
08/09/19 11:55:27
>>62
RDEいれてみた。abcって表示できた。
これでいいのかな。

69:デフォルトの名無しさん
08/09/19 12:24:08
URLリンク(kazato.run.buttobi.net)

RDE
文字が重なるんだけど、どこの設定を見ればいい?

70:50
08/09/19 12:27:01
>>65
ありがとうございます。なるほど、問題視はされているのですね。

私自身はRailsを業務で半年ほど使った経験があるのですが、クラス継承にお
いて名前空間が独立していないことを途中で知って、たいへん怖くなりました。
自分の書いてきたコードが安全かどうか、確証がないと思ったからです。

しかし、「初めてのRuby」にはこのことは何も書いてありませんでした。ネッ
トでもそれほど多くの声は見つかりません。Ruby コミュニティでこれはあま
り重大な問題だとは考えられていないということなのでしょうか?

しかし、>>53さんのおっしゃるようなことに絶えず注意し続けなければならな
いなら、コーディングに手間がかかって大変だと思うのですが。

ほかにも、クラスが通常はオープンで、requireによってどんどん書き換えら
れていくなど、Rubyは名前空間についてはきわめて楽観的な言語だという印象
があります。できる限り名前空間を独立させるPythonとは、まったく逆の方針
に見えて興味深いです。


71:デフォルトの名無しさん
08/09/19 12:32:55
>>50
local visibilityとかいう新機能とは違うのかな。
ぶっちゃけ1.9使ったことないから適当だけど。。

あと、最近気付いた妙な事例。
URLリンク(www.ruby-lang.org)
> Matrix#[i, j] = x
> (i,j)要素をxに変更する。
> このメソッドは、matrix.rbに定義されていない。以下に、その定義と使用例を示す。

なんて書いてあるけど、実は
URLリンク(svn.ruby-lang.org)
> alias set_element []=
> alias set_component []=
> private :[]=, :set_element, :set_component
なぜかprivateで定義してあり、、でも使われていなくて、、、みたいな謎が

72:デフォルトの名無しさん
08/09/19 12:35:51
>>69
そのテキストエリアで右クリック - [設定] - [フォント]を適当にいじる
大きくするなり、変えるなり

73:デフォルトの名無しさん
08/09/19 13:08:58
>>71
Rubyの数学モジュールは存在が適当
マトモな人は使わない

74:デフォルトの名無しさん
08/09/19 13:12:34
>>70
実行時にほぼ全てをevalで改変できるのはRubyの特徴
だからこそ、初期モックアップに向いていて、大規模開発に向かない

75:デフォルトの名無しさん
08/09/19 13:15:01
「○○ができる」という長所と、「○○ができてしまう」という短所に関しては、
どうしても共存していく以外無いものなぁ。

76:デフォルトの名無しさん
08/09/19 13:15:59
>>74
だよなあ
まあ、制御できたら用途によっては便利だろうなとは思う

というより、そういうのは単にそのフレームワークが行儀悪くてマニュアル不足で邪悪なだけなのでは…
「普通」は、トップレベルにメソッドを定義したりしないし、自身を継承させることを是としない

77:デフォルトの名無しさん
08/09/19 13:20:28
>自身を継承させることを是としない
どんなアホ設計だよ

78:デフォルトの名無しさん
08/09/19 13:21:18
>>76
> 自身を継承させることを是としない
あ、やっぱそうだよね、「カスタマイズは継承で」っていうモジュール設計はよくないよな

79:デフォルトの名無しさん
08/09/19 13:22:35
>>73
実用性の面ではそんな雰囲気を感じるけど、
まあ検討材料としてはw

80:デフォルトの名無しさん
08/09/19 13:23:07
c++のほうがまともだな

81:デフォルトの名無しさん
08/09/19 13:25:02
>>73
別に誰も損しないんだから、もうちょっと良くなってもいいのにね、あれ

82:デフォルトの名無しさん
08/09/19 13:51:21
ちなみにMatrix#[]=云々はこのスレから

URLリンク(thread.gmane.org)
> You can't even divide a Vector by a scalar quantity (you have to v*1/a instead. :/).

いやまあそれはどうでもいいようなw

83:デフォルトの名無しさん
08/09/19 14:21:45
>>72
できた。

84:デフォルトの名無しさん
08/09/19 14:26:59
rubyをインストールして、
エディタも動くようになったんで、
初心者向けのWEB上の入門サイトを
読みたいんだけど、どれを読めばいい?

85:デフォルトの名無しさん
08/09/19 14:30:44
URLリンク(www1.tf.chiba-u.jp)

86:デフォルトの名無しさん
08/09/19 15:24:16
URLリンク(kazato.run.buttobi.net)

ここのフォントの大きさを、
最初から大きくしたいのですが、
どこの設定をいじればいいですか?

いまは、エディタを起動するたびに
設定しなおしてます。

これを、最初からというか
設定を保存したいのです。

一回ごとに毎回、毎回設定するの
めんどいですからね。

87:デフォルトの名無しさん
08/09/19 15:33:45
RDEで「こんにちは」って打ったら、
めちゃめちゃに文字化けするんですけど??

それでいて、実行すると、ちゃんと表示されるんですけど??

88:デフォルトの名無しさん
08/09/19 15:37:13
RDEってもしかしてPerlでも使えるの?

89:デフォルトの名無しさん
08/09/19 15:47:14
>>87-88
聞くよりもまず自分で模索するようにしてください

文字化けはたぶんエディタのフォント設定のせい。perlでも一応使える

90:デフォルトの名無しさん
08/09/19 15:48:14
>>87
は自分で調べたら解決したのでもういいや

91:デフォルトの名無しさん
08/09/19 15:48:55
>>89
perlで使うときは、perlのexeはどこに設定するの?
もしかして、rubyのexeのところにいれるの?
キモー

92:デフォルトの名無しさん
08/09/19 16:40:15
a = open('URLリンク(www.2ch.net)') {|f| f.read }

これが動きません。
ひょっとして、ウチだけ???

93:デフォルトの名無しさん
08/09/19 16:41:34
require 'open-uri'
a = open('URLリンク(www.2ch.net)') {|f| f.read }
print a;



↑これで動きました。

マジで感動。

94:デフォルトの名無しさん
08/09/19 17:46:17
長い行で改行入っちゃうときはどうしたらいいの?

print
"a";

95:デフォルトの名無しさん
08/09/19 18:06:34
>>94
ここはあなたの質問場ではありません

96:デフォルトの名無しさん
08/09/19 18:51:05
RGSS2なんですけど、requireが使えなくて、
必ず、
Kernel.require("C:\\1.rb")

とかって書かないといけないんです。それで、
open-uri.rbを開くと、その中で、また
require uri
とかって書いてあるじゃないですか。またrequireです。
ここでエラーが出るので(requierは使えないよっていう)
すべてのライブラリの中のrequireをKernel.requireに
置き換えないといけないのかな、、、って今思ってますけど、
どう思いますか。

97:デフォルトの名無しさん
08/09/19 19:02:19
RGSSは内部動作が独自改変されたRubyなので、普通のRubyの知識では太刀打ちできない
RGSSのマニュアルなりなんなりを読んでくれ

98:21
08/09/19 20:33:30
出張のため返信が遅れてしまいすみません
>>25
おお!ありがとうございます!
しかし見てみましたがかなり複雑な感じなんですね・・・
やっぱ色んな状況を想定したり文字コードなんかの処理等でこんなになってしまうんでしょうか
とりあえず俺のような初心者には無理っぽいですのでiPhoneで同じようなこと考えている人がいないか聞いてみることにします

ありがとうございましたおまいら

99:デフォルトの名無しさん
08/09/19 20:53:37
>>96
def require(file)
Kernel.require file
end
ってしておけばKernelいらないと思う。
あとRGSSなら同人ゲ板のツクール質問スレのほうがよさそう。

100:デフォルトの名無しさん
08/09/19 21:21:47
windowsでrailsをテスト的に使って見ていますが、
"ruby script/generate ..."とか"rake db:migrate ..."
とかスクリプトを実行すると、とんでもなく長い間待たされます。
どうしてこんなに遅いんでしょうか?
Core2Duoを使っていますが、20秒以上も待たされるので。。。。

何かよい解決策はないでしょうか?



101:デフォルトの名無しさん
08/09/19 21:42:18
>>100
windowsとrubyの相性が悪いから。
ruby script/generate をすると、
1. 新しいrubyプロセスを起動し、
2. railsと関連ライブラリをすべて読み込んでから
3. scaffoldを実行するから、
そりゃ遅い。とくに 2. が。

102:デフォルトの名無しさん
08/09/19 21:42:25
>>94
明らかに文が終わらないことが分かる場合、たとえば
開いたカッコがまだ閉じてないとか、二項演算子の第2項をまだ書いてないとか
の場合は語句(トークン)の間で行を変えていい。
そうでない場合(そこまでが文として正当に解釈しうる場合)は
¥ (円記号またはバックスラッシュ)を書いてから改行。


103:デフォルトの名無しさん
08/09/19 21:42:53
>>98
>>21のあとに

require 'kconv'
fetch_result = imap.fetch(1..-1, "BODY[HEADER.FIELDS (SUBJECT)]")
print fetch_result[0].attr["BODY[HEADER.FIELDS (SUBJECT)]"].tosjis

ってしたら一通目のメールの件名がSJISで表示された。
公式マニュアル内をsubjectで検索かけたらすぐわかったので
落ち着いてじっくり読めば大抵のことは解決するのでは。
つーかnet/imapの本なんてなくね?

104:デフォルトの名無しさん
08/09/19 21:48:36
>>>103
そもそもIMAPについての知識がロクに無いんだろ
IMAPについての知識があるならnet/imapだけでできるはず
そういう場合は「めんどくさいけどどうすればいいですか」という聞き方になる

メール関連は簡単に扱って欲しくないから、これくらいでいいと思う

105:デフォルトの名無しさん
08/09/20 01:17:39
>>101
開発に使っているマシンは圧倒的にwinが多い
そのwinでまともに動かないrailsは、
やはり個人の趣味サイト作りでしか使ないのか?

海外では非常によく利用されているpythonのdjangoは、
winでもストレス無く使える。


106:デフォルトの名無しさん
08/09/20 01:38:14
運用にwinなんて使わないだろ?


107:デフォルトの名無しさん
08/09/20 01:40:59
>>105
>開発に使っているマシンは圧倒的にwinが多い

Railsだと、世界的にはMacかもしれんぞ。(要調査)



108:デフォルトの名無しさん
08/09/20 01:59:53
>>107
わざわざRailsを使うためにMacを買うか?
しかも会社ならなおさらだ。
だからRailsは圧倒的に個人しか使わないんだろうー
やはりちょっとしたサイトはPHP、
中規規模以上はJavaに落ち着いているんじゃない。


109:デフォルトの名無しさん
08/09/20 03:35:19
個人 →   rails
数人 →   PHP
中規模 → JAVA

110:デフォルトの名無しさん
08/09/20 07:16:22
>>105
>開発に使っているマシンは圧倒的にwinが多い
Rails使いはMacのほうが多い
RailsConf行ってみな、冗談じゃなくてほぼ全員Macだから。
いまだWindows使っているのはJava屋さんだろう

111:デフォルトの名無しさん
08/09/20 07:37:09
MacBookとかよくあんな重くて高いマシン持ち歩けるよな・・・
無印 2.27kg       ¥129,800〜¥179,800 ←重すぎ!
Air  1.36kg       ¥229,800〜¥325,400 ←高すぎ!
Pro  2.45kg〜3.08kg ¥249,800〜¥329,800 ←重すぎ高すぎ!

もっと実用的なモデル出してくれたら考えるわ

112:デフォルトの名無しさん
08/09/20 07:42:08
RGSSなんだけど、
ツクールXPがRGSS1で
ツクールVXがRGSS2なのね。

そんで、RGSS1はrequire の使用がOKで、
RGSS2はKernel.require って書かないとだめなのね。

そんで、rubyに付属のライブラリ見ると、
中味が全部、require 'uri'
こういう形式で書いてあるのね。

そんで、そのままRGSSで書くと、エラーになるの。

113:デフォルトの名無しさん
08/09/20 07:44:04
require 'uri'    ←(1)
↑この形式だとエラーが出る。

require("C:\\uri.rb")  ←(2)
↑この形式だとエラーが出ない。

絶対指定だとエラーがでない。
相対指定?だとエラーがでる。
(2)で書いても、その1行だけはエラーにならないけど、
その行で呼び出したライブラリの中味は
(1)の形式で書いてあるので、そこでエラーになる。

どうしたらいいかな?

114:デフォルトの名無しさん
08/09/20 07:46:14
もうプログラミング辞めたほうがいいな

115:デフォルトの名無しさん
08/09/20 07:58:10
URLリンク(questionbox.jp.msn.com)

一応ここにも書いてあるけど
いったいどうしたらいいかな。

116:デフォルトの名無しさん
08/09/20 08:06:06
RGSSでのライブラリrequireの方法

   $: << File.expand_path(".")
   require "ファイル名"
   Game.exeを起動したディレクトリにあるライブラリをロードする
   "."を相対パスに変更すれば、好きなディレクトリを指定できる


↑あとこれをよくみかけるんだが、
どういうことなんだろう??

117:デフォルトの名無しさん
08/09/20 08:16:18
>>112
上でも書いている人がいるが、RGSSはRubyを改造したもので、
改造部分に関するエラーは俺たちには全くわからない

エラーが出る理由も、わざわざそうしている理由もわからない
売り物なんだし、改造した人に聞け

118:デフォルトの名無しさん
08/09/20 08:29:19
RDE

出力をDOSプロンプトにするのってどうやるの?

119:デフォルトの名無しさん
08/09/20 08:48:23
puts 'abcde ' * 20000

たかがこれだけの出力するのに何秒かかってんだよ

perlだったら3秒で出るのに。

120:デフォルトの名無しさん
08/09/20 08:50:20
Rubyに早さを求めるやつなんて初めて見た

121:デフォルトの名無しさん
08/09/20 08:50:25
>>119
まあそのへんはコマンドプロンプトに文句言ってくれ
Rubyの処理自体は3秒くらいで終わってる

122:デフォルトの名無しさん
08/09/20 09:05:04
RDEで出力を下でなくて
DOSプロンプトに出すにはどうしたらいいの?

123:デフォルトの名無しさん
08/09/20 09:12:05
Windowsではirbとかでもイライラするな
irbは返り値の表示の設定ができるが

124:デフォルトの名無しさん
08/09/20 09:19:25
最初からDOSプロンプト立ち上げて、
そこから直接コマンドラインで実行したら
3秒でできた。
でもRDEから実行したいんよ。
どうしたらいいかな?
DOSプロンプトに出力する方法ね。

125:デフォルトの名無しさん
08/09/20 09:33:56
>>110
東京Ruby会議で「主にMac使ってる人」って質問で6〜7割手をあげてたような気が

126:デフォルトの名無しさん
08/09/20 09:38:12
MacというかMacOSXとUNIX系開発言語(って何?)との親和性の高さはガチ
Windowsでもプログラミング環境エディションとか出せばいいのに

127:デフォルトの名無しさん
08/09/20 09:45:10
まあみんなカッコよく安楽にプログラミングしたいんだよ
でなけりゃあどべ使い以外にMacが売れる理由がないし、Emacsが死なない理由がないし、Rubyが支持される理由もない

128:デフォルトの名無しさん
08/09/20 11:32:09
TextMateだっけ?あれが人気あるらしいね。開発に。
Windowsにも E Text EditorとかIntypeとしてクローン作られてるっぽいけど。

129:デフォルトの名無しさん
08/09/20 11:56:29
>>128
クローンはどいつもこいつもシェアウェアでな

いや、別にいいんだが、入金めんどい
成功したら安価版とか作ってくれ

130:デフォルトの名無しさん
08/09/20 11:59:26
日本はベクターにないと買うの面倒でかなわん

131:デフォルトの名無しさん
08/09/20 13:42:29
str = 'hoge'

これを説明するのって、「ローカル変数 str に 文字列 'hoge' を

   代 入 す る



でいい? 厳密には代入ではなくて他の表現が妥当だとかそういうのはない?

132:デフォルトの名無しさん
08/09/20 13:48:28
…めんどくさいので代入でOK
最近の議論とか空気とかを元にしてる初めてのRubyではどう書いてある?

とりあえず、誰も文句は言わないと思うよ
束縛するとか言う言い方してる奴がいたら鼻糞ほじっとけ

133:デフォルトの名無しさん
08/09/20 13:51:57
オブジェクトとインスタンスってRubyではどう使い分けますか?

134:デフォルトの名無しさん
08/09/20 13:59:47
>>131
つうか代入ってなによ?

135:デフォルトの名無しさん
08/09/20 14:06:38
>>134
データと名称の関連付け。なまえをつけること。Naming convention。
Rubyでは初期化宣言と同時に行われるのでちょっとわかりにくい。

というのでどう

136:デフォルトの名無しさん
08/09/20 14:23:59
なら「名前をつける」って説明の方が通りがいいんじゃねえか、とおもた。

137:デフォルトの名無しさん
08/09/20 14:27:35
RDEで実行を途中で止めるのってどうすればいいの?
ctrl+C押しても止まんないんだけど。

138:デフォルトの名無しさん
08/09/20 14:37:30
止めるボタンあります

139:デフォルトの名無しさん
08/09/20 14:38:26
緑△アイコンの実行ボタンの隣に、
□アイコンの強制終了ってあるでしょ

140:デフォルトの名無しさん
08/09/20 15:22:28
他の言語で代入という概念を知ってるなら代入でいいだろ。

a = Hoge みたいな表現が、名前付けなのは Haskell とかだけど、
そっちとは明らかに違うし。

141:デフォルトの名無しさん
08/09/20 16:59:07
RDEはうだつが上がらないし
RDTは糞重いし
もうEmacsしかないじゃないか!

142:デフォルトの名無しさん
08/09/20 17:20:29
>>133
クラスをインスタンス化したものがインスタンス

143:デフォルトの名無しさん
08/09/20 19:22:08
NetBeans使えば。

144:デフォルトの名無しさん
08/09/20 19:35:57
NetBeans以上に重いものなんてこの宇宙に存在するの?

145:デフォルトの名無しさん
08/09/20 19:36:51
責任,ですかね.

146:デフォルトの名無しさん
08/09/20 20:57:24
>140
他の言語っつってもCの代入とは明らかに違うだろうに。
Haskellの代入とも違うけどさ。

147:デフォルトの名無しさん
08/09/20 22:32:07
str = 'hoge'
のように代入された状態で str を使うと 'hoge' という情報を取り出せるという点では
どの言語もだいたい一緒だわな

148:デフォルトの名無しさん
08/09/20 23:27:20
Rubyだけしか使えないのはかっこ悪いのでphpを勉強する

if strpos('ABCDE', 'ABC'){
echo 'true';
}else{
echo 'false';
};

とか書いてみたんだが、どうやらelse部が実行されるらしい
strposは'ABCDE'の中から'ABC'の位置を探して返すんだが、整数の 0 が返ってて、0 はPHPでは偽なんだそうな
なんとなくがっかりさんだ
というか、Perl4 を勉強してたころは真偽判定ってどう書いてたんだっけ、覚えてないな

149:デフォルトの名無しさん
08/09/20 23:31:42
…そういうのはチラ裏スレでやれ

Ruby は nil や false が返って来ない限り真だからな
真偽判定はどんどん書けて気楽だ

150:デフォルトの名無しさん
08/09/20 23:38:04
そういやずっと前から思ってたんだけど、Perl とかで整数の 0(や文字の "0")が真偽値の偽とみなされるようになったのってなんで?
ヌル文字とかの関係? 関係ないよね?

151:デフォルトの名無しさん
08/09/20 23:48:35
スクリプト言語の初心者スレっぽくてよろしい

>>150
0 を偽にしなかったら 1 を偽にしなきゃいけなくなるじゃないか(-1 でも可)

152:デフォルトの名無しさん
08/09/20 23:49:01
さすがRubyスレ
知能が低い

153:デフォルトの名無しさん
08/09/20 23:50:28
>>150
Cから発想すればふつー0が偽になるんだろう。
CにもPerlにもboolean型は無いしな。

154:デフォルトの名無しさん
08/09/21 05:19:55
URLリンク(www1.tf.chiba-u.jp)

これってサブルーチンと何が違うの?

155:デフォルトの名無しさん
08/09/21 07:53:29
Cで関数のポインタを扱うのとさして変わらない。

156:デフォルトの名無しさん
08/09/21 08:00:34
>>155
定義された場所のスコープ(Binding)を受け継いでいるところ

157:156
08/09/21 08:05:56
アンカ間違えだけど、指摘と受け取ってもらっても結構
×155
○154

158:デフォルトの名無しさん
08/09/21 08:23:27
>>154
手続きオブジェクトは原理的にはサブルーチン、雰囲気では関数ポインタでおk
オブジェクトになってしまってるとこと、>>156の言うように定義時の環境が保存されてるとこが一般的なものとは違うけど

サブルーチンオブジェクトと呼んでもよかったシロモノで、Rubyではたまたま手続きと呼んでるだけに過ぎない
プロシージャ(Proc-edure)とサブルーチンに決定的な違いがないのと同じ

159:デフォルトの名無しさん
08/09/21 09:31:58
>>146
> Cの代入とは明らかに違うだろうに。

どう違うの?

160:デフォルトの名無しさん
08/09/21 11:17:02
>>133
適当。分かりやすい基準はたぶん無い

161:デフォルトの名無しさん
08/09/21 11:22:28
rubyのxamppはどこにあるの?
rubyのCGIとか、railsとかやってみたいんだけど。

162:デフォルトの名無しさん
08/09/21 11:39:21
>159
根本的には同じデータのコピーなんだが
Rubyは基本的に「オブジェクトへの参照」を扱うため
代入が基本的に「参照のコピー」になるのに対し
C/C++は参照というクッションが必ずしも存在せず
いきなり「オブジェクトそのもの」を扱うことが出来てしまうため
(参照を扱うなら明示的に参照を扱うよう書く必要がある)
代入が「実体のコピー」(Rubyでいうa=b.dupに近い…がこれも同じではないな)になることが普通にある

163:デフォルトの名無しさん
08/09/21 11:45:01
>>161
InstantRails

164:デフォルトの名無しさん
08/09/21 12:04:46
>>162
構造体(オブジェクト)のコピーが起こること、を問題とするわけね。

変数の実体が値である(C/C++)か、変数の実体が参照である(Ruby/Java/Python...)か、
という点が違いであって、名前に実体を関連付ける、という「代入」で問題ないんじゃないかと。

165:デフォルトの名無しさん
08/09/21 12:56:02
>>150
>そういやずっと前から思ってたんだけど、Perl とかで整数の 0(や文字の "0")が真偽値の偽とみなされるようになったのってなんで?
>ヌル文字とかの関係? 関係ないよね?

Perlは考え方としてCの延長にあるから、booleanがない(つまりfalseがない)からかわりに 0 を偽としている。
RubyはLispやSmalltalkに影響を受けているから、nilとfalseだけを偽にしている。
nullじゃなくてnilってところがポイント。

166:デフォルトの名無しさん
08/09/21 13:01:01
0 が選ばれた理由にはなってないな
ビットの 0 と 1 で 0 が negative だったから、が答かと

167:デフォルトの名無しさん
08/09/21 13:30:26
"0" が偽である理由としてはちょい苦しいかもな
"0" が 0 に同一視されてると見るか

168:デフォルトの名無しさん
08/09/21 13:32:33
perlとかphpは型が曖昧だからまあそんな挙動もするでしょう

169:デフォルトの名無しさん
08/09/21 13:37:26
あっちの言語って型付けが弱いんじゃなかったっけ
自動変換されるという便利だが怖い仕様・・・・・・

170:730
08/09/21 13:40:32
perlもphpも糞ですよ

171:デフォルトの名無しさん
08/09/21 13:49:43
>>148
めんどくさいよな
というかRuby(が参考にしたLisp系列)が条件文のこと優先して動作を作ったというのが正しいのかも

172:デフォルトの名無しさん
08/09/21 14:00:41
0が偽のくせに「真としての0」が返って来る関数があるというのがまあ変といえば変
変態だったら誉め甲斐もあるんだが、ただ変なだけでは…

173:デフォルトの名無しさん
08/09/21 14:04:12
まあ便利なんだけどねPHP

174:デフォルトの名無しさん
08/09/21 14:08:33
それは認めるし、普及言語はどれも大なり小なり批判されるものだが
この挙動は……

175:デフォルトの名無しさん
08/09/21 14:09:24
他の言語を学ぶという姿勢は賞賛に値する
Rubyしかできないとかマジ生ゴミ

176:デフォルトの名無しさん
08/09/21 14:27:08
>>174
うん、だから、偽といえるかどうかではなく、そもそも型が同じであるかどうかを一緒にチェックする
PHP の ==(否定は!=) での比較は単に値が等しいことをチェックするが、 === は型も等しいことをチェックする(否定は!==)

>>148でしたい処理は

if (strpos('ABCDE', 'ABC') !== FALSE){
echo 'matched';
}else{
echo 'unmatched';
};

とか書くのが素直
!= で比較すると 0 が整数であるという情報がチェックに用いられないので常に結果が偽になってしまう

このへんは strpos のマニュアルにもサンプルコードつきで警告として載ってたりする
URLリンク(jp2.php.net)
個人的には Ruby の gsub の挙動が極悪なのと似たような構造上欠陥じゃないかと思う

177:デフォルトの名無しさん
08/09/21 14:31:32
あー、gsubも最初に用意されてる引数の構文の挙動が気難しくてブロックが推奨だったな

178:デフォルトの名無しさん
08/09/21 15:42:20
まぁ値が数値型にも文字列型にもなるのはawkからの伝統だしな

179:デフォルトの名無しさん
08/09/22 02:23:34
>>163
ありがとう。できたよ。
クッキングなんとかがうごいた。

で、次、これの開発ってどうやればいいの?

180:デフォルトの名無しさん
08/09/22 03:37:13
railsのIDEは何を使えばいいの?

181:デフォルトの名無しさん
08/09/22 07:16:08
いい加減、本買うかぐぐるかしようぜ。

182:デフォルトの名無しさん
08/09/22 10:27:50
おっと質問の仕方が悪かったかな。
数あるIDEの中で、どれを使えばいいのかということ。

183:デフォルトの名無しさん
08/09/22 10:32:37
>>182
どれも糞

184:デフォルトの名無しさん
08/09/22 10:34:30
機能的にはNetBeandsがかなりがんばってる感じはするがどの程度実用に耐えるかは知らん。

185:デフォルトの名無しさん
08/09/22 10:38:09
>>183でFA

186:デフォルトの名無しさん
08/09/22 10:45:14
どうせ補間とか望めないからどれ使っても大して変わらん

187:デフォルトの名無しさん
08/09/22 10:48:14
Emacsのような単なる単語文字列としての略語展開が一番マシという困った結論に…

188:デフォルトの名無しさん
08/09/22 10:52:09
NBのコード補完はかなり強力。いつまでもema糞なんぞにしがみついてないで一度試してみるといい。

189:デフォルトの名無しさん
08/09/22 10:57:22
NetBeansの補完は、まあ頑張ってるほうだとは思った
多少いい加減なのは仕方ない

190:730
08/09/22 11:01:46
関数とかクラスが畳めるエディタが良いな。

191:デフォルトの名無しさん
08/09/22 11:04:19
>>190
関数って何ですか???

実際上はEclipse+プラグインかNetBeansかEmacs/Vimくらいしかないんだから順に試しとけ
Javaの実行環境入れるのめんどくさい?もんくゆーな

192:デフォルトの名無しさん
08/09/22 11:07:51
CPUが2Ghz程度しかない前時代のマシンではロクに動作しないので新しいマシン買うこと

193:730
08/09/22 11:09:54
>>191

> 関数って何ですか???
まだそんなこと言ってるんですかw
関数と言い張りますよ。

194:デフォルトの名無しさん
08/09/22 11:15:51
別に言い張ってて構わないと思うよ
Rubyの用語集にも書いてあるくらいだから

195:デフォルトの名無しさん
08/09/22 11:18:09
>>193
クラスに関数があるのか?
あれは多くの言語で「いや、これを関数って呼ぶのはなんか違うな」と判断されてメソッドと呼ばれているものだと思うが
仲間外れはC++くらい?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4691日前に更新/256 KB
担当:undef