トップページ⇒tech
1001コメント341KB

Ruby 初心者スレッド Part 54

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2014/02/17(月) 09:50:07.32
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
RoRはスレ違いよ

前スレ
Ruby 初心者スレッド Part 53
http://toro.2ch.net/test/read.cgi/tech/1383742375/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/
0002デフォルトの名無しさん2014/02/17(月) 09:54:06.36
>>1
乙、待ってたよん!!
0003デフォルトの名無しさん2014/02/17(月) 10:13:17.70
[1 , 2].add #=>3
や
[1 , 2 , 3].sum #=>6
とかのメソッドが無い理由ってどんなことが考えられますか?
一見便利そうなのに。

[1 , 2 , 3].inject(:+)
で解決できるのはわかるのですが
0004デフォルトの名無しさん2014/02/17(月) 10:22:07.37
>>3
Objectクラスにaddやsumに反応するメソッドを実装できたら考えてあげてもいいよ
0005デフォルトの名無しさん2014/02/17(月) 11:00:27.06
面倒くさい質問してもいい?
0006デフォルトの名無しさん2014/02/17(月) 11:14:55.45
>>4
まあそういうことだよね
要素に数値や文字列が入ってないと例外で落ちるようなメソッドをArrayに作るわけにはいかん
だからこそ使用メソッドをユーザーが指定できる畳み込みがあるわけだし
0007デフォルトの名無しさん2014/02/17(月) 12:35:26.23
  |l| i|li ,      __ _  ニ_,,..,,,,_
 l|!・ω・ :l. __ ̄ ̄ ̄    / ・ω・≡
  !i   ;li    ̄ ̄ ̄    キ     三
  i!| |i      ̄ ̄  ̄  =`'ー-三‐ ―

              /  ;  / ;  ;
          ;  _,/.,,,//  / ヒュンッ
            /・ω・ /
            |  /  i/
           //ー--/´
         : /
         /  /;
    ニ_,,..,,,,,_
    / ・ω・`ヽ  ニ≡            ; .: ダッ
    キ    三    三          人/!  ,  ;
   =`'ー-三‐     ―_____从ノ  レ,  、
0008デフォルトの名無しさん2014/02/17(月) 12:36:50.29
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0009デフォルトの名無しさん2014/02/17(月) 12:37:37.92
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
0010デフォルトの名無しさん2014/02/17(月) 12:38:52.51
プログラマ35歳定年の訳
http://www.youtube.com/watch?v=IpiU-iyWrsA
0011デフォルトの名無しさん2014/02/17(月) 12:47:21.44
qtを利用してGUIアプリケーションを作成しているのですが、
ボタンクリックイベント後に呼び出される、メソッド内の処理をしている間、
本体がフリーズ状態となってしまいます。(半透明で反応しない)
メソッド内の処理の先頭に、
Thread.newブロックなどをおいても同様にフリーズしてしまいます。
どなたか、良い策をおねがいします!
0012デフォルトの名無しさん2014/02/17(月) 12:47:26.65
>>5
その質問が面倒くさい。
0013デフォルトの名無しさん2014/02/17(月) 13:34:27.27
などと上手い返しをしております!!
0014デフォルトの名無しさん2014/02/17(月) 19:20:11.47
cx
0015デフォルトの名無しさん2014/02/18(火) 13:43:35.09
RubyでCGIやりたいです。
Ruby on Railsは必要ですか?
またおすすめの開発環境ありましたらお願いします。
0016デフォルトの名無しさん2014/02/18(火) 15:15:27.04
>>15
今日あと9時間くらいあるのでCGIそのものについて学べ
0017デフォルトの名無しさん2014/02/18(火) 15:16:36.88
rubyじゃ無理
0018デフォルトの名無しさん2014/02/18(火) 15:17:38.22
>>15
不要。
viかemacs。
0019デフォルトの名無しさん2014/02/18(火) 15:19:54.44
>>15
Yiとxmonado
0020デフォルトの名無しさん2014/02/18(火) 16:09:09.09
日帝の残滓が作ったrubyのコミュは民度の高いチンピラと同じ
0021デフォルトの名無しさん2014/02/18(火) 16:12:46.17
Discovery channelあたりで、タトゥーを入れて自動車修理をしているヤツらのクラスタ。
日本のド田舎でリーゼントしているのとは別物。
0022デフォルトの名無しさん2014/02/18(火) 16:15:13.60
sauce labが、そんなヤツらだった
0023デフォルトの名無しさん2014/02/21(金) 06:29:16.35
>>15
オレもそれやってみたい
仲間になろうよ 
と言ってももう見てないかな
0024デフォルトの名無しさん2014/02/21(金) 22:15:17.64
CGIが何か分かってない馬鹿には無理
まともな人間なら標準出力に出力できる言語(言語に限らないが)なら可能だということは明白
0025デフォルトの名無しさん2014/02/21(金) 22:20:42.36
完成する頃にはCGIが何かわかるようになってるから、バカじゃなくなるな。従って無理ではないという事になる。
0026デフォルトの名無しさん2014/02/21(金) 22:25:59.68
1990年代は bash の CGI を見た
Cとかでも書いていた人いたでしょ
0027デフォルトの名無しさん2014/02/21(金) 22:27:07.23
bash の CGI スクリプトな
0028デフォルトの名無しさん2014/02/21(金) 22:30:57.93
CGI書けるって自慢気に言うフリーランス系大学生にbashでCGI書いて見せると不思議そうな顔するよなw

コーディングから動作確認まで不思議そうな顔してるからマジうけるwww
0029デフォルトの名無しさん2014/02/21(金) 22:32:49.70
まずCGIが何の略か調べるとこからだな。特にI。
0030デフォルトの名無しさん2014/02/21(金) 23:01:08.51
コモン・ゲートウェイ・インポテンツ
0031デフォルトの名無しさん2014/02/21(金) 23:18:22.73
Cool Great I am
0032デフォルトの名無しさん2014/02/21(金) 23:48:25.89
Computer Gangsters International
0033デフォルトの名無しさん2014/02/21(金) 23:53:53.51
馬鹿には無理
0034デフォルトの名無しさん2014/02/22(土) 01:46:20.62
コンピュータ・ゲーム・インストラクター
0035デフォルトの名無しさん2014/02/22(土) 03:11:47.15
C チンチン
G ゴミゴミwwwwww
I イクゥゥゥゥゥドピュドピュドピュ
0036デフォルトの名無しさん2014/02/22(土) 06:45:28.47
そういや昔からCGIって言ってた動画屋さんがちょっと困ってたなあ
0037デフォルトの名無しさん2014/02/23(日) 11:50:54.53
RoRって無料で借りられるレンサバみたいなので使える所ある?
0038デフォルトの名無しさん2014/02/23(日) 17:36:13.19
>>37
rubyとcgiが動けば、何とかできるんじゃないの。遅いだろうけど。
aws ec2の1年ほぼ無料じゃダメかな。
0039デフォルトの名無しさん2014/02/24(月) 08:25:58.36
RoRってCGIで動くのか?って思ったら動くんだねえ。
しらなかった。
ttp://takuya-1st.hatenablog.jp/entry/20120108/1326043011
0040デフォルトの名無しさん2014/02/24(月) 08:43:16.88
Railsは無料鯖では一切使えないとみなしていい
そもそもRailsとそのアプリケーション自体、そういう極めて限定された共用リソースでの使用を考慮していない
0041デフォルトの名無しさん2014/02/24(月) 16:54:59.85
Ruby 1.9.3-p545 リリース
https://www.ruby-lang.org/ja/news/2014/02/24/ruby-1-9-3-p545-is-released/

1.9シリーズ最後のRuby
0042デフォルトの名無しさん2014/02/24(月) 22:38:12.68
Rubyでライブラリを使わず、にGETリクエストを送りたいんです
アクセストークンが必要でそれは手に入れました

ですがここからどうやってこのアクセストークンをヘッダーにつけて発行するのでしょうか。


url = URI.parse('https://hoge.com/api/foo.json?param=fuga')
http = Net:HTTP.new(url.host, url.port)
http.use_ssl = true
0043デフォルトの名無しさん2014/02/24(月) 22:44:31.46
http.start して http.get
Net::HTTP#get の2番目の引数にヘッダを Hash で渡す
0044デフォルトの名無しさん2014/02/24(月) 23:58:18.05
ruby始めたばっかりなんですが
module Hoge
_def fuga()
__なんたらかんたら
_end
_def self.piyo()
略
でself.piyoの中からfuga()を呼びたいんですがどうやればいいんでしょうか?
fuga()はモジュール内の関数からのみ利用するものです
0045デフォルトの名無しさん2014/02/25(火) 00:07:53.18
>>44
Hoge厨はさっさと消えろ
精神異常かお前
0046デフォルトの名無しさん2014/02/25(火) 00:13:56.03
>ruby始めたばっかりなんですが

こういうどうでも日記を本題よりも最初に持ってくる精神構造をしてるのがhoge厨

日記と質問の切り分けもできないゴミクズ
0047デフォルトの名無しさん2014/02/25(火) 00:22:37.19
>>43
ありがとうございました。
できませんでした
すいません
0048デフォルトの名無しさん2014/02/25(火) 00:23:20.83
>>46
違うよ。
始めたばかりだからそれを察して
懇切丁寧に教えろって自己中なんだよ。
根性が腐りきってるだけ。
0049デフォルトの名無しさん2014/02/25(火) 00:48:19.83
>>44
ええと、俺も初心者なのでわからないんですが、そのモジュールはどこにincludeする予定ですか?
0050デフォルトの名無しさん2014/02/25(火) 01:25:23.17
分からないのに答えようとするキチガイ
0051デフォルトの名無しさん2014/02/25(火) 01:50:14.21
>>44
モジュール内の関数?からのみ利用、って書いてあるけど、モジュールの特異メソッドから利用してるわけで。
0052デフォルトの名無しさん2014/02/25(火) 01:53:55.97
分からないのに答えようとするキチガイ
0053デフォルトの名無しさん2014/02/25(火) 02:01:32.53
分からない事に答えるのが基地外なら国会議員は全員基地外ですわ
0054デフォルトの名無しさん2014/02/25(火) 02:04:49.17
>>44
そういうすんなりできないことがでてくるのは大抵設計が腐っているせい。
def self.fuga
...
end
private_class_method :fuga
にすればモジュール特異関数でfuga()を呼び出せるし
Hoge.fugaも禁止できる。
0055デフォルトの名無しさん2014/02/25(火) 02:20:20.84
>>44
モジュール Hoge をインクルードすれば、
普通にインスタンスメソッドとして fuga を呼べるようになるよ

irb(main):001:0> module Hoge; def fuga; p 'FUGA!!'; end; def self.piyo; fuga; end; end
=> nil
irb(main):002:0> Hoge.piyo
NameError: undefined local variable or method `fuga' for Hoge:Module
from (irb):1:in `piyo'
from (irb):2
from /opt/local/bin/irb2.0:12:in `<main>'
irb(main):003:0> include Hoge
=> Object
irb(main):004:0> Hoge.piyo
"FUGA!!"
=> "FUGA!!"
irb(main):005:0>
0056デフォルトの名無しさん2014/02/25(火) 02:31:47.32
>>55 ← こんなゴミコード晒せるってある意味すごいな
0057デフォルトの名無しさん2014/02/25(火) 02:38:30.80
どうだ、すごいだろ。おまいもどんどんチンコさらけ出してくれ。
0058552014/02/25(火) 02:44:32.20
>>44
モジュールの用途は2つある
・Mix-in の実現(クラス継承とは別の機能の共有、例としては Enumerable)
・名前空間の提供(大きなプログラムを小さな機能要素であるモジュールに分割)
>>55 で示したのは前者の Mix-in のほう

で、もしも>>44の「fuga を呼ぶ」という意図が後者の名前空間であるなら、
そのままでは呼べないから、fuga をクラス定義で包む必要がある
例を示す

module Factory # 工場
  class Fuga # 部品
    def fuga; .... ; end
  end

  def self.piyo # 部品 Fuga を製造する
    Fuga.new
  end
end

ここで、Fugaオブジェクトの生成は一般には Factory::Fuga.new と書くけど、
より簡潔に Factory.piyo でも生成できる
0059デフォルトの名無しさん2014/02/25(火) 03:03:55.31
>>58は荒らしだからスルーよろ
0060デフォルトの名無しさん2014/02/25(火) 03:13:14.01
>>58は真面目に回答してるつもりなんだろうな。
駄目な奴は何をやっても駄目だな。
0061デフォルトの名無しさん2014/02/25(火) 03:18:26.56
チンコとか臭そう
0062デフォルトの名無しさん2014/02/25(火) 08:19:59.97
捕鯨反対の人、昨日は何かあったのかな
0063デフォルトの名無しさん2014/02/25(火) 18:47:03.76
RSSを登録するアプリを作っているんですが
そのまま登録すると文字コードがUTF8ではないのでRailsで文字列連結のときにエラーが出てきます。

ここを参考にして実装してみたら・・・
http://route477.net/d/?date=20110119

rss = SimpleRSS.parse open(self.url)
self.site_name = rss.title.encode("utf-8", :invalid => :replace, :undef => :replace)


http://feed.nikkeibp.co.jp/rss/nikkeibp/business.rdf
ここの<title>nikkei BPnet 「企業・経営」最新記事一覧</title>が

nikkei BPnet ???????????????????????????????????????

とかに文字化けしてしまいました・・・


エンコードのことはよく知らないんですが、エンコーディング特有の文字があるとしても
ASCII-8BITからUTF-8に変換ってできないんですかね・・・
0064632014/02/25(火) 18:51:21.71
rss = SimpleRSS.parse open(self.url)
self.site_name = rss.title.encode("utf-8", :invalid => :replace, :undef => :replace)


これを

rss = SimpleRSS.parse open(self.url)
self.site_name = rss.title.force_encoding("utf-8")


にしたら一応できましたが・・・
0065デフォルトの名無しさん2014/02/25(火) 19:02:10.96
>>63,64
何が問題で何をしたいのかがよく分からんよ
リンク先のRDFファイルの先頭行には
  <?xml version="1.0" encoding="utf-8"?>
と書かれているから、文字エンコーディングはUTF-8で決まりだし、
実際に保存したファイルを(UTF-8に対応した)普通のエディタで開けば、
文字化けすることなく表示される
0066デフォルトの名無しさん2014/02/25(火) 20:18:36.79
Win32APIのnewメソッドの第3引数で、指定できる型がポインタ(p)、long(n,l)、int(i)だけのようですが
double型やfloat型の引数がある関数を使いたい場合、どのように記述すればよいのでしょうか
もし解説されているHPとかあったら教えてください…
0067デフォルトの名無しさん2014/02/25(火) 21:05:01.21
>>42 >>47
その問いに答えられないけど
したいことがワシのやりたい事と似てるような気がする
同じ初心者同士で解決してみないか?
よかったら↓に来てくれ
kohada.open2ch.net/test/read.cgi/php/1393329234/
0068デフォルトの名無しさん2014/02/25(火) 21:51:34.68
>>66
dl を使えということかもしれない
0069662014/02/25(火) 22:25:17.03
じ、自己解決しました(震え声)
質問した途端にこれだよ スレ汚しすみませんでした
0070デフォルトの名無しさん2014/02/26(水) 01:11:30.15
気にすんな
0071デフォルトの名無しさん2014/02/26(水) 07:14:43.45
質問しようと説明してまとめた直後にわかるパターンと
質問して投稿して記事になったのを客観的に眺めた瞬間わかるパターンとあるな
0072デフォルトの名無しさん2014/02/26(水) 09:56:52.87
レスをもらって
一行目読んでる途中で判る場合と
三行目まで読んでもさっぱり判らない場合があるね
0073372014/02/26(水) 18:55:21.32
>>37です。ちょっと都合で書き込めなかった。
RoRのやつ教えてくれた人達thx
0074デフォルトの名無しさん2014/02/28(金) 01:23:07.40
ruby/tkって1.9.3ではどこに入ってるの?
0075デフォルトの名無しさん2014/02/28(金) 08:23:43.92
GCについて質問です

複数のブログのテキストと画像(1記事辺り30枚程度)をマルチスレッドでスクレイピングしているのですが、
どこかでGCが詰まってるのかメモリを開放してくれず一定のところでスワップが発生してしまいます

・rails経由でrunnerコマンドを用いて上記スクリプトを走らせている
・DBへの保存はActiveRecordを使用
・画像の保存、DBへの保存にActiveRecordのトランザクションを使用
・画像のリサイズにRMmagickを使用
・マルチスレッドにParallelを使用

考えられる原因がどの辺にありそうか思い当たるところがあればご意見を聞かせていただけないでしょうか?
またこういうGC周りに原因がありそうなケースでのデバッグのやり方を教えていただきたいです
0076デフォルトの名無しさん2014/02/28(金) 08:27:36.61
甘えすぎ
本当に知りたいならもっとよく調べてからにしろ
0077デフォルトの名無しさん2014/02/28(金) 08:34:29.53
hoge〜
0078デフォルトの名無しさん2014/02/28(金) 08:44:28.69
>>74
解決した
program filesの下にあった
パス通さないと無理っぽい
0079デフォルトの名無しさん2014/02/28(金) 08:48:48.51
馬鹿には無理
0080デフォルトの名無しさん2014/02/28(金) 08:57:49.90
>>75
RMagick と GC って有名だったような。検索するといろいろでてくる
0081デフォルトの名無しさん2014/02/28(金) 14:26:20.53
>>76
10かい hello world と ひょうじ したいです。 どうしたら いいですか?
0082デフォルトの名無しさん2014/02/28(金) 15:54:54.77
このスレはシーシェパードに監視されています
0083デフォルトの名無しさん2014/02/28(金) 15:56:19.29
10.times{ puts 'Hogei' }
0084デフォルトの名無しさん2014/02/28(金) 17:02:29.68
>>81
池沼ぶるのは構わんがあんまりやり過ぎると誰も相手しなくなるぞ
0085デフォルトの名無しさん2014/02/28(金) 19:51:36.44
Rubyで実装するシーシェパード入門
0086デフォルトの名無しさん2014/02/28(金) 20:05:51.32
# coding: utf-8
TEN = 10
TEN.times do
    puts "Hello, world!"
end
0087デフォルトの名無しさん2014/03/01(土) 02:45:26.17
$><<"hello world\n"*10
0088デフォルトの名無しさん2014/03/01(土) 02:57:07.33
十回表示は\rだな
0089デフォルトの名無しさん2014/03/01(土) 21:42:02.11
これからはじめようとおもってんですけど。。。。
やっぱり開発環境はlinuxとかがお勧めですか?
0090デフォルトの名無しさん2014/03/01(土) 22:35:47.50
>>89
もしあなたがRubyを勉強しようと思っているのなら、RubyではなくC#にするといい
C#ならあなたがやりたいと思っていることをすべてやることができる

もしあなたがC#を学んでなおRubyを勉強したいと思ったのなら、おそらくこのスレに聞きに来ることはないだろう
0091デフォルトの名無しさん2014/03/01(土) 22:42:31.61
プログラムに本当に必要なのは開発環境なんかじゃなく実行環境だからなあ
普段Windowsだけ使ってるのならWindows上でよく動くプログラム(を楽に作れ/学べる)言語が無難
それは少なくともRubyではないはず
0092デフォルトの名無しさん2014/03/01(土) 23:04:32.18
>>89
マックでもわりと便利につかえるよ
0093デフォルトの名無しさん2014/03/01(土) 23:06:16.53
せっかく勉強したとしても、
わざわざ立ち上げるバーチャルマシンの痒いとこに手が届かないファイルシステムの中だとか
どこか遠くの激遅の小煩いレンタルサーバのコンソールの中だとか
そんなとこでしか動かせないんじゃどうにもならないよね
自分が使ってるマシンでぐりぐり動いてなんぼ
0094デフォルトの名無しさん2014/03/01(土) 23:06:32.26
>>91
俺はVisualBasicからプログラミングはじめたクチだけど、
結局GUIプログラムは面倒だから続かないね。
Rubyでも同じことだけど、CUIのプログラムを作るならrubyがずっと楽。
0095デフォルトの名無しさん2014/03/01(土) 23:07:06.22
>>93
つまりLinuxをインストールしろということか。正解だな
0096デフォルトの名無しさん2014/03/01(土) 23:10:23.85
WINDOWSでプログラミングしてて許されるのは中学生まででしょ
0097デフォルトの名無しさん2014/03/01(土) 23:16:03.54
ルビーのインストーラーのウインドーズのサポートは最近適当になってきたの?
0098デフォルトの名無しさん2014/03/01(土) 23:16:58.66
>>95
普段からLinuxを使っているならRubyはあり
Rubyを学ぶためにLinuxインストールするとか愚の骨頂
Rubyを使うためにLinuxインストールするのは馬鹿

馬鹿と愚の骨頂ってどっちがどうなんだとか考えると眠たくなるが

Linuxの別途インストールが唯一妥当なのは
「レンタルサーバ等で動かすことが既に決定しており、その環境とほぼ同じものをローカルにも作りたいと思った」
ときのみ
0099デフォルトの名無しさん2014/03/01(土) 23:17:54.98
89です
0100デフォルトの名無しさん2014/03/01(土) 23:24:05.74
89です 色々とアドバイスありがとうございました
今まではExcel Accessなどをvbaでいろいろいぢって仕事で使うような在庫管理やら何やらをやってましたがWebでも同じようなことがしたいなー どうせやるなら新しいことやりたいなーとおもっていろいろと探しているうちにこのスレにたどりついたというわけでして。。。。
0101デフォルトの名無しさん2014/03/02(日) 03:10:02.83
このメソッドになんか気のきいた名前を付けてくれ(´・ω・`)
class Hash
 def hoge!(key, other_keys=[])
  value = self.delete(key)
  other_keys.each{ |other_key|
   self[other_key] = value
  }
 end
end
0102デフォルトの名無しさん2014/03/02(日) 03:14:45.56
mvでええやん
0103デフォルトの名無しさん2014/03/02(日) 03:36:00.95
えやな
0104デフォルトの名無しさん2014/03/02(日) 10:38:47.95
>>101
rekey
0105デフォルトの名無しさん2014/03/02(日) 13:47:14.30
print.classって書いたらNilClassが返ってくる
普通のメソッドはオブジェクトじゃないってこと?
.classはObjectクラスのインスタンスかどうかを調べてるの?
0106デフォルトの名無しさん2014/03/02(日) 14:05:31.35
>>105

printの 返す値 がnil
0107デフォルトの名無しさん2014/03/02(日) 15:38:40.51
>>105
クラスやインスタンスとか難しい事を考える以前に、
メソッドチェーンの基本が理解できていないな

irb(main):001:0> print
=> nil
irb(main):002:0> print.class
=> NilClass
irb(main):003:0> print.class.class
=> Class
0108デフォルトの名無しさん2014/03/02(日) 16:15:15.25
>>106
>>107
なるほど
printの戻り値がnilなのか
それにしてもArray=>Arrayになるのは
クラスの戻り値がクラスってことなのか
ややこしいなあ
0109デフォルトの名無しさん2014/03/02(日) 17:34:21.93
>>100
誰かと一緒に開発をするのか、プログラマとして他人に雇用される必要があるのか

に対する答えがNOなら、
自分の好きなようにやればいいと思う

アドバイスなんて参考にならん
0110デフォルトの名無しさん2014/03/02(日) 17:45:53.93
まだ分かっていないようだねw
irb という対話環境は、以下のように振る舞う
 (1) テキストを入力(read)し、
 (2) それを式として評価(evaluate)して、
 (3) その結果を印刷(print)する
 (4) この手順を繰り返す(loop)
だから、read/evaluate/print/loopの頭文字(かしらもじ)をとって REPL とも呼ばれる

ここで、評価とは一般的に言うところの計算だと考えていい
たとえば 1 + 2 という入力を評価(=計算)すると 3 という結果を印刷するし、
1 だけを入力すると 1 という値を印刷する
同様に Array と入力すれば、その評価結果である Array を印刷するし、
Array.new と入力すれば、評価によって Arrayクラスのインスタンスを生成してそれを印刷する
0111デフォルトの名無しさん2014/03/02(日) 17:57:37.95
>>109
恐らく自分のやりたいようにやっていいと思います。
但し結果さえでればというかんじです。
まずは自分のpcの仮想環境でトライしてみて将来的にはクラウドとか社内にインフラを持たなくても良いようにしたいなーとかおもってます。
0112デフォルトの名無しさん2014/03/02(日) 18:05:26.53
>>108
Array は単なる定数(再代入すると怒られる変数)
Array って変数の中にクラスが入ってる
0113デフォルトの名無しさん2014/03/02(日) 19:14:44.66
>>108
それはArray==Arrayってことでは。
0114デフォルトの名無しさん2014/03/02(日) 19:29:53.55
>>108
> クラスの戻り値
これからして何も理解してないからな。
「Rubyには関数がない、全てメソッドだ」
というのをどっかで聞いた上に誤解して、
変数も定数も全てメソッドだと思い込んだのかな
0115デフォルトの名無しさん2014/03/02(日) 19:42:38.86
入門書レベルだとそこらへんは書いてないかも
初心者スレだし知らなかったり察しがつかなくても仕方ないのでは
0116108じゃないけど2014/03/02(日) 20:04:02.63
>>112
そうなんですか

irb(main):001:0> FOO = Array
=> Array
irb(main):002:0> FOO.new(3){1}
=> [1,1,1]

なるほど、勉強になります。
0117デフォルトの名無しさん2014/03/02(日) 20:08:28.72
かわいいJKとペアプロしたいんですがrubyを使えばできるんですか!?
0118デフォルトの名無しさん2014/03/02(日) 21:14:58.52
配列のn番目の要素からeachしたい場合ってなんか良い書き方ありますかね
0119デフォルトの名無しさん2014/03/02(日) 21:16:46.55
array.drop(n).each
0120デフォルトの名無しさん2014/03/02(日) 21:22:21.09
>>119
  ,.-、
っ(,,■) �d
0121デフォルトの名無しさん2014/03/02(日) 21:30:35.32
>>117
あなたがイケメンでかつMacbookAirを使いこなしていればできます。
0122デフォルトの名無しさん2014/03/02(日) 23:01:41.49
>>110
なるほどわかりやすい

irbでprintが評価されたらnilになるのが不思議なんだよなあ


>>113 再代入か、ありがとうググってみる

ruby歴4日なもんでググり方すらわからなかったんだ
英語のページの方が充実してるのが何だかなあ
0123デフォルトの名無しさん2014/03/02(日) 23:07:52.45
>>122
Array == Arrayのことを再代入って言ってるの?
== は比較演算子だよ。
0124デフォルトの名無しさん2014/03/02(日) 23:10:45.89
>>122
>irbでprintが評価されたらnilになるのが不思議なんだよなあ

irb に限らず、「Rubyではあらゆるすべてが式」になる
式だから、irb が評価することで必ず何らかの値が返ってくる
そして、あるメソッドが何も返すべき値が無い場合には、
慣例で nil という値を返すことが多く、print もこれに該当する
(C や Java を知っていれば、void型に相当するのが Ruby の nil になる)
0125デフォルトの名無しさん2014/03/02(日) 23:13:22.95
> irbでprintが評価されたらnilになるのが不思議なんだよなあ
print を評価するというのは、print というメソッドを呼ぶということ
print メソッドの返り値は常に nil なので nil が出力されているというだけ

print というメソッドオブジェクトが出力するわけではない
0126デフォルトの名無しさん2014/03/02(日) 23:15:38.52
irb(main):014:0> method(:print)
=> #<Method: Object(Kernel)#print>

こういうのと混同してんじゃないの
0127デフォルトの名無しさん2014/03/02(日) 23:16:55.24
>>126
ruby歴4日(>>122)で、さすがにそれはないかと....
0128デフォルトの名無しさん2014/03/02(日) 23:42:24.43
printのクラスはMethodだけどprintの戻り値はnilつーことやな。
0129デフォルトの名無しさん2014/03/02(日) 23:47:11.68
Rubyはカッコなしでメソッドを呼べるので、名前だけ書いたときにメソッドオブジェクトを指すようにはできないからね
JavaScriptとかから入ると混同してしまうかも

逆にJavaScriptを使うときにカッコなしで書いてしまって変なオブジェクトが代入されてる〜と悩むこともたまにあるけど
0130デフォルトの名無しさん2014/03/02(日) 23:50:57.26
>>123
ごめん安価間違えた >>112に対して言いたかった

>>124
>そして、あるメソッドが何も返すべき値が無い場合には、
>慣例で nil という値を返すことが多く、print もこれに該当する
なるほど。よくわかった
すごく的外れかもしれないけどこれって
printが何に対する参照も持ってないって見かたでok?
0131デフォルトの名無しさん2014/03/02(日) 23:52:52.57
>>130
print と書いただけだとそれはメソッド呼び出しであり、その結果は print の返り値である
print メソッドというオブジェクトが結果として返るわけではない
0132デフォルトの名無しさん2014/03/02(日) 23:55:07.54
>>130
> printが何に対する参照も持ってない
どういう意味だ?
0133デフォルトの名無しさん2014/03/03(月) 00:00:08.06
>>132
Arrayという変数名がArrayクラスの実態への参照を持ってて
printという変数名は何も持ってないのかと思ったんだ
01341242014/03/03(月) 00:02:36.22
>>130
>printが何に対する参照も持ってないって見かたでok?

たぶん勘違いしてると思う
>>125,131の解説を読もう!!
0135デフォルトの名無しさん2014/03/03(月) 00:02:45.30
>>133
printは変数名じゃない。メソッド。
変数とメソッドの違いについて勉強するといいよ
0136デフォルトの名無しさん2014/03/03(月) 00:07:05.67
>>134
>>135
ありがとう
後から間違いに気づいたよ
0137デフォルトの名無しさん2014/03/03(月) 00:13:45.84
あ、わかったわ、全部式なのか
クラスは自分は自分だって言ってるだけか
やっと理解した

バカに付き合ってくれてありがとう
01381242014/03/03(月) 00:21:27.58
もうRubyに慣れてしまったから意識することは無いけど、
たしかに英小文字で始まる名前が、一見しただけでは
ローカル変数なのかメソッドなのか区別がつかないってのは、
誰でも最初はとまどうのだろうなぁ....と思う
0139デフォルトの名無しさん2014/03/03(月) 00:26:53.72
ifやcaseも式(実際に処理されたブロックの最後の式の結果を返す)だしなあ
Rubyってだいたい式だよね、意外なくらい
0140デフォルトの名無しさん2014/03/03(月) 00:34:17.74
>>139
だいたいっていうか全部では?例外ある?
0141デフォルトの名無しさん2014/03/03(月) 00:34:53.47
物凄くマジレスすると、メソッドを作ったことがないからそんな変なことを言う

def aaa
32
end

aaaメソッドの返値は32

def aaa
nil
end

aaaメソッドの返値はnil

これだけの理屈でしかない
メソッドを作った人が最後の評価値としてnil(に常になるもの)を指定したからメソッドの返値がnilになる
0142デフォルトの名無しさん2014/03/03(月) 00:35:29.97
あ、throwとraiseは返り値ないっけ?
0143デフォルトの名無しさん2014/03/03(月) 00:39:07.69
>>138
Perl は変数に $ をつけるし、Python は self. 必須だし、JavaScript はカッコがいるし、
区別が付かないのは Scala と C# のプロパティぐらいかな…?
0144デフォルトの名無しさん2014/03/03(月) 00:40:21.83
>>142
流れそのものを変える文は、値を返せないもんねえ
その親ブロックが返す値を変えるものならあるが
0145デフォルトの名無しさん2014/03/03(月) 00:40:48.61
>>143
つ C
0146デフォルトの名無しさん2014/03/03(月) 00:41:25.63
>>144
そういえばbreakとかもbreak自体の返り値はないのか。
0147デフォルトの名無しさん2014/03/03(月) 00:41:46.45
>>145
Cはカッコ必須でしょ
0148デフォルトの名無しさん2014/03/03(月) 08:39:48.46
printf("%p\n", printf) みたいなことができるから必須ってわけでもない
0149デフォルトの名無しさん2014/03/03(月) 10:12:17.89
それは関数ポインタでは変な理由で & が省略できるから
0150デフォルトの名無しさん2014/03/05(水) 10:46:24.09
def isdigit(c)
if c =~ /^[0-9]$/
return true
end
return false
end

exp = '1+2-3*4/5'

exp.each do |e|
if isdigit(e)
print e
end
end

このプログラムが意図したとおり(12345)に動かないのはなぜでしょうか
0151デフォルトの名無しさん2014/03/05(水) 11:17:55.03
その1
Rubyでは「最後のreturn」はあんまり書かない
メソッド処理途中で脱出するときだけ書く
というか、returnがあったらその用途だとみんな思い込んでるので、そうじゃないとちょっとアレ

その2
正規表現の^は改行がある文章の文頭を、$は改行のある文章の末尾を表す(大雑把)
改行が含まれていない文字列ではうまくマッチしないので、改行区切りが重要でないのなら絶対に使ってはいけない

その3
文字列のeachはRuby1.9で廃止された。一文字ずつ取り出すにはeach_charを使う

その4
Regexp#=~ はマッチしないときnilを返すので、ifの条件にするならそのまま使える


def digit?(s)
/\d/ =~ s
end

exp = '1+2-3*4/5'

exp.each_char do |chr|
print chr if digit?(chr)
end
0152デフォルトの名無しさん2014/03/05(水) 11:59:32.03
>>151
ありがとうございます
おかげさまで中置記法を逆ポーランド記法に変換するプログラムが書けました
https://ideone.com/xovDW1
あとで指摘していただいた箇所を直す予定です
0153デフォルトの名無しさん2014/03/06(木) 09:40:35.33
nextは、構造化プログラミングに反しますか?
0154デフォルトの名無しさん2014/03/06(木) 18:01:14.62
https://ideone.com/Aiuffw
next使わずに書けました
今闘病中ですが、プログラミングがすごく楽しく感じます
皆様ありがとうございました
0155デフォルトの名無しさん2014/03/06(木) 19:42:49.97
ruby2.0以降爆速になってpythonより速くなったというような比較を見かけるのですが、フレームワークも速くなったのでしょうか?
0156デフォルトの名無しさん2014/03/06(木) 19:52:43.77
速くなったね
0157デフォルトの名無しさん2014/03/06(木) 20:32:53.14
演算子||と&&について質問です。
rubyでは優先順位が&& > ||となっていますが、

a = "abcd"
true || a.reverse! && nil
a #=> "abcd" (予想ではa.reverse!が効いて"dcba"となるはずだった。)

となって、||の右辺が評価されていないように思います。
基本的なことかもしれませんが、何故なのでしょうか?
(1.9.3p545/centos)
0158デフォルトの名無しさん2014/03/06(木) 20:50:20.47
>>157
trueってわかってんだから評価する必要ないだろ。
0159デフォルトの名無しさん2014/03/06(木) 21:06:07.55
>>157
irb> (p 1) || (p 2)
1

説明おわり
0160デフォルトの名無しさん2014/03/06(木) 21:15:14.17
>>159
わかりにくいわ

Ruby は (A or B) という式を見たとき、とりあえず A を先に評価し、A が真だった場合 B の評価を行わない
A と B の両方をとにかく1行で評価して欲しい場合は、…まあ、any? とか使うしかないのかね

a = "abcd"
[true, [a.reverse!, nil].all? ].any?
p a
#=> "dcba"
0161デフォルトの名無しさん2014/03/06(木) 21:19:04.10
>>157
&& と || は演算子として分類されているけど、厳密には他の演算子とは意味が異なり、
(制御構造としての)条件分岐式の短縮構文、いわゆる構文糖(syntactic sugar)になっている
具体的には:
・式 X && Y は if X then Y else false end と同じ意味
・式 X || Y は if X then true else Y end と同じ意味
だから || の左辺 X が真であれば、右辺 Y は評価されない

なお論理学や形式的意味論の世界だと、
&& は cand (conditional and)と呼ばれ、|| は cor と呼ばれることがある
0162デフォルトの名無しさん2014/03/06(木) 22:43:21.71
>>157
真理値が確定した段階で計算が打ち切られる。
覚え方: C言語と同じ
0163デフォルトの名無しさん2014/03/06(木) 23:52:08.28
>>156

ありがとうございます。
だとするとこのベンチマークは2.0より前のバージョンを使っているのでしのうか?

http://www.techempower.com/benchmarks/#section=data-r8&;hw=i7&test=query
01641572014/03/07(金) 00:17:02.46
>>158-162
ありがとうございます。
考え方が根本的に間違ってた気がします。
例えば、
3 + 4 * 5 → 3 + 20 → 23
と、まず初めに、+より優先順位の高い演算子*が先に評価されて計算が行われると思っていたので、
true || a.reverse! && nilの場合、(a.reverse! && nil)が先に演算されるのではないか?と考えていました。

>>161さんの言う通り、if-thenと同じだと考えると納得出来ました。
0165デフォルトの名無しさん2014/03/07(金) 03:16:37.32
ん?
いやいやいやいや
0166デフォルトの名無しさん2014/03/07(金) 07:22:54.73
>>163
そのページの作成者に聞けよ
0167デフォルトの名無しさん2014/03/07(金) 12:19:43.56
>>164
評価順序と、論理演算の優先順位は別の話ということだな。
当たり前のように使っていたが、言われてみれば、そういう考え方も有るか。実装的には、その考え方だと余計にコストかかるけど。
0168デフォルトの名無しさん2014/03/07(金) 12:31:55.74
アホが増えたぞ
0169デフォルトの名無しさん2014/03/07(金) 13:00:51.07
評価順と優先順位の関係は直感を裏切ることもある、というのは
プログラミング言語一般の基本だが?
0170デフォルトの名無しさん2014/03/07(金) 13:25:50.31
その通りだ!
プログラミングの常識がないプログラミング初心者なんておかしい!
01711572014/03/07(金) 17:52:00.94
バカですみません…。
=演算子でしたら右結合なので、a=b=c=0の場合、
a=(b=(c=0))と同等になり、c=0から演算されます。
それと同様に、優先順位により
true || (a.reverse! && nil)となり、||右辺から実行されるのでは?と思ったのです。(もちろん、true || aにおいてaが評価されないことは理解しています。)
0172デフォルトの名無しさん2014/03/07(金) 18:02:57.31
右結合じゃなくて左結合だから

・優先順位
・結合性
・評価順

を、なんとなくぼんやりと混同してるんだと思うんだけど
01731572014/03/07(金) 18:21:10.70
>>172
「プログラミング言語Ruby(p105)」には、
優先順位…式がどのような順序で評価するかに影響を与える
結合性…同じ(優先順位の)結合子が1つの式の中に並んでいる時に、どのような順序で評価をするか
と定義されていました。

true || (a.reverse! && nil)では、||と&&は優先順位が異なるため結合性は無視できます。
優先順位は定義より式の評価の順序に影響を与える、とあったので評価順を左右するものであると考えたのですが、この認識が間違っているのでしょうか?
0174デフォルトの名無しさん2014/03/07(金) 18:22:59.22
優先順位は皆、一々覚えていないから、()で囲むべし

それに短絡(ショート)は、最初の式の真偽値によって、
右の式が実行されるかされないか、が決まるため、
わかりにくいし、勘違いしやすい

Cでも一般的に、使わない方がよいとされている
0175デフォルトの名無しさん2014/03/07(金) 18:38:30.50
>>172
代入演算子が左結合なら a = b = 1 したら b が未定義でエラーになるのでは
0176デフォルトの名無しさん2014/03/07(金) 18:51:15.83
> Cでも一般的に、使わない方がよいとされている

んなこたねーよ。
ていうかCではともかく、Rubyでは多用するし。
0177デフォルトの名無しさん2014/03/07(金) 22:48:42.44
=だと左辺値右辺値の話が入ってくるからまたややこしくなる。
irb> (raise 'lhs').a = b = (raise 'rhs')
RuntimeError: lhs
となるのを見たらわかるように、右結合だからといって右から評価されるわけではないよ。
0178デフォルトの名無しさん2014/03/07(金) 23:03:19.93
構文木考えてみなよ
即値以外は計算上の優先順位のとおり評価しようとしたらプログラム動かんでしょ
0179デフォルトの名無しさん2014/03/07(金) 23:08:19.19
低レベルの話はちょっとおいとこうか。
0180デフォルトの名無しさん2014/03/07(金) 23:40:01.48
>>177
評価順序の問題と結合度の問題がごっちゃになってないか
評価順は左から右、= の結合度(多重代入が典型例)は右結合
0181デフォルトの名無しさん2014/03/07(金) 23:52:08.78
def a; false end
if (!b = a()); p b end

こういうのも優先順位に反して!より=が先に評価される
0182デフォルトの名無しさん2014/03/08(土) 00:12:18.97
なるほど、ええと

% irb
irb(main):001:0> !a = false
(irb):1: warning: found = in conditional, should be ==
=> true

どういうことだってばよ
0183デフォルトの名無しさん2014/03/08(土) 01:11:33.64
>>182
!a=false
は
!(a=false)
と同様に評価される。
ただし、!のオペランドは条件式だから、
=じゃなくて==じゃねえのか?って言われてる。
0184デフォルトの名無しさん2014/03/08(土) 02:17:30.98
>>173
>優先順位…式がどのような順序で評価するかに影響を与える
>結合性…同じ(優先順位の)結合子が1つの式の中に並んでいる時に、
どのような順序で評価をするか

結局、上記は間違い?

a = b = 1
これは、左から評価される? どうなるの?
0185デフォルトの名無しさん2014/03/08(土) 02:18:35.44
>>184
おまえ左から評価されるとしたらどういう動作になるのか言ってみろ。右に決まってるだろ。
0186デフォルトの名無しさん2014/03/08(土) 02:43:41.71
評価するという専門用語に対する認識が違うと推測
0187デフォルトの名無しさん2014/03/08(土) 07:45:27.96
…まあ、Rubyだけやってちゃわからん概念ではある
0188デフォルトの名無しさん2014/03/08(土) 10:18:31.59
>>187
Pythonやってみたら理解出来るようになる?
0189デフォルトの名無しさん2014/03/08(土) 10:24:41.31
>>188
lispやると勉強になる。
0190デフォルトの名無しさん2014/03/08(土) 14:24:22.18
構文解析と評価のタイミングの違いなんだけどね
演算子の優先順位は構文解析時に効く
0191デフォルトの名無しさん2014/03/08(土) 15:06:18.19
将棋盤のような格子状の画像のマスごとの全ピクセル色情報を取得しようとすると、
ループで回して取得する以外に方法は無いのでしょうか?
左上座標:右下座標を指定すると取れるとかないですか?

マスごとなので座標が飛び飛びになる。
0192デフォルトの名無しさん2014/03/08(土) 16:05:02.42
ピクセルの色情報を取得って、どことなくBASICな懐かしい香りがする
0193デフォルトの名無しさん2014/03/08(土) 16:34:08.36
どなたかウィンドウズのサブシェルでUTF-8のコマンドを実行する方法をご存知ありませんでしょうか?
例えばですが、`type "优华.txt"`ですとかIO.popen('notepad "优华.txt"', 'r') {}
のようなコマンドね
コマンドライン上ではコピーアンドペーストで(文字の化けありますが)実行できます
上記の場合は、CP932の変換された化けの物渡されるために、ENOENTなるようです
このままではエロ動画整理されないが?
0194デフォルトの名無しさん2014/03/08(土) 17:03:52.72
こんなに国籍を明確に主張するレスもすごいな
0195デフォルトの名無しさん2014/03/08(土) 17:14:27.27
彼にとって、右翼団体に所属していることがアイデンティなんだろう
0196デフォルトの名無しさん2014/03/08(土) 17:58:33.75
俺も知りたいわ
出来たと思ったらフォントが固定ピッチにならなかったり部分的に文字化けしたりであきらめた
0197デフォルトの名無しさん2014/03/08(土) 18:16:58.99
http://qiita.com/yu_naka0607/items/5cf26397a1a026ec0949
こんなの?
0198デフォルトの名無しさん2014/03/08(土) 19:34:27.76
>>188
計算機科学の初級をぺらりと舐めるだけで全然違う

ただし、計算機科学の初級を理解できるかどうかは保証はしない
0199デフォルトの名無しさん2014/03/08(土) 21:22:12.08
おまえらバカすぎて、どうにもならないからcかschemeから始めろ
0200デフォルトの名無しさん2014/03/09(日) 01:19:42.49
UbuntuならRuby2.1をパッケージからインストール出来ますか?
0201デフォルトの名無しさん2014/03/09(日) 03:05:13.95
現在プログラム板のID制導入の投票を実施中です
よろしくお願いします

プログラム板 強制ID制導入に関する投票スレ
http://kohada.2ch.net/test/read.cgi/vote/1394290844/
0202デフォルトの名無しさん2014/03/09(日) 09:30:21.52
Windows、 RubyInstaller 2.0、 Redmine 2.5
RubyをインストールしたときにRails4.0とかいろいろgemをインストールしたので
Redmine専用にgemを用意したいので
bundle install path=vendor/mygem --local
ってコマンドを打ってredmineのディレクトリの中にgemをインストールしました
そのあとに
rake generate_secret_token
ってやったんですが
Could not find gem 'rails (= 3.2.17) x86-mingw32' in the gems available on this
machine.
Run `bundle install` to install missing gems.
って出てしまい失敗します。bundlerでたしかにredmineの下にrails3.2.17は入っています。
どうやってredmineの下のgemを使えるようにできるのでしょうか?
0203デフォルトの名無しさん2014/03/09(日) 12:31:49.28
bundle exec rake だとどう?
0204デフォルトの名無しさん2014/03/09(日) 16:20:25.60
Rubyの高速化。
初歩的なことから小難しい事まで説明してる日本語のHPってないですか?


高速化した中学生が忙しいって話しか出てこない・・・。
0205デフォルトの名無しさん2014/03/09(日) 17:20:59.94
bundle exec rakeってやっても
Could not find gem 'rails (= 3.2.17) x86-mingw32' in the gems available on this
machine.
Run `bundle install` to install missing gems.
って出ます。
0206デフォルトの名無しさん2014/03/09(日) 17:22:23.94
正規表現をメソッドで使用するとき、ローカル変数で正規表現を宣言すると、メソッドが呼ばれる度に
ローカル変数の正規表現のインスタンス化と代入が行われて無駄だと思うんですけど、これのベストプラクティスを教えて下さい。
定数として正規表現は宣言できないし、クラス変数として宣言するのは本来の目的と違うと思うんですが

具体的には以下のように複数のポストに含まれるURLをチェックして何かしたいという状況です。

posts.each{
checklink(post)
}

def checklink
url_regexp=/http:.*?\.com/
post=~url_regexp
#なんかの処理
end
0207デフォルトの名無しさん2014/03/09(日) 17:29:34.54
>>206
> 定数として正規表現は宣言できないし
え?普通にできるよ
02082062014/03/09(日) 17:33:57.62
>>207
マジで!?
とんでもない勘違いしてました…
0209デフォルトの名無しさん2014/03/09(日) 20:50:25.14
>>206
$ ruby -e "10.times{ e= /re*?/; p e.object_id }"
-597111458
-597111458
-597111458
-597111458
-597111458
-597111458
-597111458
-597111458
-597111458
-597111458

ということで変数埋め込みのない「固定の」正規表現リテラルはRubyが特別扱いして固定のオブジェクトになっている
複雑なオブジェクトの生成が無駄だとか余計なこと考えずに安心して使え
極めて稀に同一オブジェクトであることが問題になることがあるが、そのときはRegexp.new(/re*?/)とでもしろ
02102062014/03/10(月) 04:44:52.51
>>209
ローカル変数として宣言しても定数と変わらんということか。
すばらしい
0211デフォルトの名無しさん2014/03/10(月) 04:58:58.58
定数 と リテラル を混同している人がいるような気がした。
0212デフォルトの名無しさん2014/03/10(月) 05:48:24.18
cond -> R = true ; R = false
って書くのなんかダサいから
hoge_call(cond, R)
みたいな述語はないの?
0213デフォルトの名無しさん2014/03/10(月) 08:26:12.55
Prologスレの誤爆?
0214デフォルトの名無しさん2014/03/10(月) 10:51:06.62
rubyにwin32oleを実装した人のwebページがあったと思ったけど
ruby win32oleとかで検索してもゴミばかりで見つかりません

urlまたは開発者の名前を教えてちょ
0215デフォルトの名無しさん2014/03/10(月) 11:10:16.70
>>214
ruby win32 ole で検索すると真っ先に見つかるのが
以下の「るびま」連載記事なわけだけど、

・Win32OLE 活用法 【第 1 回】 Win32OLE ことはじめ
 http://magazine.rubyist.net/?0003-Win32OLE

これで何が足りないのか、>>214はどんな情報が欲しいのか、
そして何を実現したいのか、具体的に質問したほうがいいと思われ
0216デフォルトの名無しさん2014/03/10(月) 12:33:40.33
sequelでsqlite3をコピペで操作してますが
.select(:n___an, :i, Sequel.as(sum((Sequel.case([[{k: 's'}, :c], [{k: 'u'}, Sequel.expr(0) - :c]], 0 ))), :tc))
これがsum未定義になって
.select(:n___an, :i, Sequel.as(Sequel.function(:sum, (Sequel.case([[{k: 's'}, :c], [{k: 'u'}, Sequel.expr(0) - :c]], 0 ))), :tc))
これが通るのは何故でしょうか?

色々検索してみたんですがよくわかりません。両方とも同じ意味だと思ったのですが。
0217デフォルトの名無しさん2014/03/10(月) 12:52:33.53
>>213
スマソw
0218デフォルトの名無しさん2014/03/10(月) 16:37:20.29
>>215
> (アドバイザー:arton、助田 雅紀)
欲しかった情報はこれだけ

「助田」が判明してやっと
http://homepage1.nifty.com/markey/ruby/win32ole/index.html
に辿り着けた。

こういう重要な情報がうんこ見たいなページに埋もれるの何とかしてくれ
0219デフォルトの名無しさん2014/03/10(月) 16:45:05.07
そういうのも仕事のうち
0220デフォルトの名無しさん2014/03/10(月) 18:03:25.78
自分で探すこともできない情弱が作れるのもうんこだからどうでもいい
0221デフォルトの名無しさん2014/03/10(月) 19:18:16.22
2chのレスのアンカーの相互関係をオブジェクトで表すには、クラスを定義してtree構造にすればいいのだとおもいました。
しかし、一つのレスに対して複数のリプライが付く場合がありますが、Rubyのオブジェクトは可変長の要素を収納できるのでしょうか。
できない場合、インスタンス1つあたり、余裕を持って(例えば20reply分)あらかじめ余計にメモリを確保するしか方法はないのでしょうか
0222デフォルトの名無しさん2014/03/10(月) 19:57:35.86
配列は可変長
0223デフォルトの名無しさん2014/03/10(月) 20:06:34.83
>>200
パッケージからはできない。たぶん普通に入れると1.9じゃないかな。
ruby2.0-devってのがあるから2.0はいけるかもだけど。
でも「rbenv」と「ruby-build」を入れれば簡単に2.1を入れられる。
0224デフォルトの名無しさん2014/03/10(月) 20:16:44.55
>>222
ありがとうございます
0225デフォルトの名無しさん2014/03/10(月) 21:29:24.74
>>221
>2chのレスのアンカーの相互関係をオブジェクトで表すには、
>クラスを定義してtree構造にすればいいのだとおもいました。

データ構造としては、「一つのレスに対して複数のリプライが付く」のだから
ツリーではなくてグラフになると思う
更に、未来へのアンカーを除外すれば、言い換えると、すべてのアンカーが過去のレスを
指しているのであれば、「閉路の無い有向グラフ(directed acycled graph, DAG)」と
呼ばれるデータ構造になる
グラフはノード(node, 接点)の集合とエッジ(edge, 辺)の集合で表現され、
今回のケースでは。レスが節を表し辺がアンカーを表す
グラフやDAGは良く知られたデータ構造だから、Wikipedia等で調べれば詳しい解説が見つかる
またDAGの各ノードを方向が揃うように列挙するアルゴリズムは「トポロジカルソート」と呼ばれるので、
これも検索する際のキーワードになると思う

>Rubyのオブジェクトは可変長の要素を収納できるのでしょうか。

複数の要素を表す(数学上の)集合はプログラミングの用語だとコレクションと呼ばれ、
Rubyでは組込みライブラリの配列(Arrayクラス)やハッシュ(Hashクラス)がコレクションの一種になる
また、Rubyは(C言語等とは違って)メモリを動的に管理するから、
基本的にどのコレクションも可変個要素(=インスタンス)を収納できる
0226デフォルトの名無しさん2014/03/10(月) 21:31:39.48
>>225を訂正
X: 今回のケースでは。レスが節を表し辺がアンカーを表す
O: 今回のケースでは、レスがノードを表しエッジがアンカーを表す
0227デフォルトの名無しさん2014/03/10(月) 21:48:07.64
「たのしいruby」やってるんだけどこれ一冊でアプリやらなんやら作れるようになるんだろうか
要領が悪いだけかもしれんが、説明ばかりで身に付いてるのかどうかよくわからない…
0228デフォルトの名無しさん2014/03/10(月) 21:53:00.98
>>227
なんかやってみれば、足りない物が見えてくるよ。
0229デフォルトの名無しさん2014/03/10(月) 22:10:54.27
>>227
irb 使ってる?手を動かさないと頭に入らないよ
0230デフォルトの名無しさん2014/03/10(月) 22:29:39.16
>>225
なるほどいろいろデータ構造にも名前があるのですね
DAGの各ノードの列挙は、今回の場合は会話を会話ごとに順番に並べるのが目的なので
replyの元(root)のノードから、再帰的にメソッドを定義すれば簡単に実装できそうですね

本来のDAGでは、すべてのノードかつながっていて、かつ閉路を持たないという条件から、
「ノードの深さ」を一義的に定義できるという事実が、ソートをする際の鍵になっているように思われますね
0231デフォルトの名無しさん2014/03/10(月) 22:57:33.53
>>229
irbのところはirb使って同じようにやってみる方がいいんだね
ってかC言語から入ったせいでいまいちirbの対話な感じがつかめないわ
0232デフォルトの名無しさん2014/03/10(月) 23:14:09.63
>>230
ツリーの各ノードを列挙する深さ優先探索/幅優先探索の手法と考え方は、
(DAGを含む)グラフの探索にも応用できるし、違いは重複ノードの検出と対処方法だけ
いくつかの効率的な手法が開発されているけど、いきなり理解は難しいと思うから、
まずは自分で格闘してみて、一通り動くモノができてから解説を読み直すといいと思われ
0233デフォルトの名無しさん2014/03/10(月) 23:15:20.76
>>231
たとえばリファレンスを読む場合なんかでも irb を起動させといて
http://docs.ruby-lang.org/ja/2.0.0/method/String/i/=25.html

% irb
irb(main):001:0> "i = %d" % 10
=> "i = 10"
irb(main):002:0> "%d,%o" % [10, 10]
=> "10,12"
irb(main):003:0> "i = %d" % "apple"
ArgumentError: invalid value for Integer(): "apple"

こんな感じに挙動を確かめながら読んだりする
あとは irb のここがよくわかんないって具体的に挙げれば誰か答えてくれるかも
0234デフォルトの名無しさん2014/03/11(火) 10:01:38.56
rubyはバージョンアップの度に大幅に互換性が無くなるというような内容を読んだのですが、これだけwebに使われているのはそこまで大した障害が起きないからですか?
0235デフォルトの名無しさん2014/03/11(火) 11:52:53.22
基本はサポートしているバージョンを意識して使う
例えばRuby1.8でしか動かないソフトなら1.8を入れて使う(か諦める)
0236デフォルトの名無しさん2014/03/11(火) 20:44:32.02
>>234
それは1.8->1.9だけだよ
他のバージョンアップでは大体保たれてる
0237デフォルトの名無しさん2014/03/11(火) 22:54:08.18
Ruby普及後、痛みを伴う変更を1.8→1.9で済ませたから、
以降はあまり困ることなく2.0, 2.1と上げていける感じ。

1.8未満はかなりひどかった思い出。
0238デフォルトの名無しさん2014/03/11(火) 22:54:49.12
Rubyはようやく成熟した大人の言語となったのだよ
0239デフォルトの名無しさん2014/03/11(火) 23:00:26.41
何がかなりひどかったんですか?
0240デフォルトの名無しさん2014/03/11(火) 23:02:04.66
>>239
1.8.7用のスクリプトを1.8.5で動かそうとしてみればわかる
0241デフォルトの名無しさん2014/03/11(火) 23:06:38.61
>>240
1.8.7->1.8.5が動かないのは別にいいじゃん
1.8.5->1.8.7が動かないのは問題だけど
0242デフォルトの名無しさん2014/03/11(火) 23:24:38.50ID:PFwM+jH7
bundle installのオプションの--deploymentにはどういう意味があるのでしょうか?
0243デフォルトの名無しさん2014/03/11(火) 23:48:40.93ID:tN6zSUSI
* gemのインストール先が vendor/bundle になる
* システムに入っているgemを使わなくなる
* 実行に Gemfile.lock 必須
0244デフォルトの名無しさん2014/03/11(火) 23:50:10.20ID:fXwBZvGt
>>242
gem updateなんかしちゃったりしても大丈夫になる
0245デフォルトの名無しさん2014/03/12(水) 02:36:01.49ID:VodWyXE4
ジェム・・・さんな。
0246デフォルトの名無しさん2014/03/12(水) 04:09:26.60ID:pW1S2pi4
新人アルバイトのおにゃのが「げむ!るびーげむ!」って言ってたけど
かわいいから「そうだね、げむだね」って言っといた
0247デフォルトの名無しさん2014/03/12(水) 06:16:27.25ID:Iz6J8eTo
ttp://www1.axfc.net/u/3190273.zip
この写真袋というのを起動させたいのですが、Readmeの使い方3で起動したらすぐ落ちてしまいます。
なぜでしょうか?

インストールしたのはRuby2.0.0-p451
PCはwindows 7 Home
プロセッサ→Intel(R)Core(TM)i3 CPU M 380 @2.53GHz 2.53GHz 実装メモリ 4.00GB システム種類64ビット
ノート型PCです。
0248デフォルトの名無しさん2014/03/12(水) 13:57:06.88ID:vsuy5gDK
仕事でjava 家で自分のプログラムつくるときはrubyって人はいますか?

javaの後、何か他の言語触りたいんですが、やはりrubyでしょうか?
0249デフォルトの名無しさん2014/03/12(水) 15:27:15.42ID:iuIDUWkr
>>248
Javaのメリットを理解できてないと、仕事が嫌になるかもだけどな。
勉強のためならlispとか全然違う言語もオヌヌメ。
0250デフォルトの名無しさん2014/03/12(水) 17:57:18.54ID:VodWyXE4
C言語のちょっとしたソースをrubyに変換するのは、かなり厳しいですか?
また、その逆はどうですか?
0251デフォルトの名無しさん2014/03/12(水) 20:03:34.80ID:g2De+G22
>>243
ありがとうございます!
0252デフォルトの名無しさん2014/03/12(水) 21:33:28.41ID:VlIlu3/B
>>250
超簡単。逆は超大変。
0253デフォルトの名無しさん2014/03/12(水) 22:30:26.67ID:fYkDeXHT
>>248さんとは逆に、必要に駆られて今までRubyを学んでいたのですが、
他の言語も触ってみたくなりました。
他に並行して学ぶとしたらおすすめの言語はありますか?
(Perl, Python, PHP以外で)
0254デフォルトの名無しさん2014/03/12(水) 22:31:45.23ID:wJJF1Qm2
関数型はどうかな
ScalaはJavaくささが存分に残ってるからHaskellの方がいいかな
0255デフォルトの名無しさん2014/03/12(水) 23:07:22.37ID:gSPEem5T
>>253
もしも経験した言語がRubyだけなら、Rubyのようなスクリプト言語ではなく、
コンパイラを前提とする言語、たとえば C/Java/C# のどれかを学ぶ価値はあると思う
特にC言語の知識はRubyで拡張ライブラリを書く時には必須になるし、
C++やObjective-Cを習得する時の前提にもなるから、個人的にはCを薦めたい

また関数型言語に手を出すのも悪くはないと思う
ただし、純粋関数型に分類されるHaskellは、プログラミングに対する思考/認識を
最初から再構築するつもりで取り組まないと習得するのが難しい
言い換えると、周囲に良い指導者がいれば別だけど、
初心者が興味本位で独習を試みても失敗する可能性が高い

だから、個人的にはHaskellよりも、MLと呼ばれる関数型言語族を薦めたい
具体的には Standard ML または OCaml と呼ばれる言語になる
他にも F# というML族言語もあるけど、これはC#プログラマ向け
またScalaという関数型言語はJavaプログラマ向けの関数型言語になる

最後に、まとめてみる:
・UNIX の道に進みたい --> C言語 の後、 Standard ML または OCaml を学ぶ
・Windows の道に進みたい --> C# の後、F# を学ぶ
・Java の道に進みたい --> Java の後、Scala を学ぶ
0256デフォルトの名無しさん2014/03/12(水) 23:36:37.76ID:gSPEem5T
>>248
仕事でJavaを使っているのなら、JRubyがいいんではないのかな?
もし仕事がWeb系であるなら、JRuby+Railsを勉強するのがいいと思うし、
たとえそうでなくともJRubyの習得は業務改善にきっと役立つはず

たとえばもし英語が読めるなら、JRubyでSwingを使ったGUIアプリを作ってみるとか?
・JRuby Swing tutorial
 http://zetcode.com/gui/jrubyswing/
で、Javaによる比較的単純なゲーム(テトリスやパックマンなど)をJRubyへ移植してみるとか
・Java 2D games tutorial
 http://zetcode.com/tutorials/javagamestutorial/
0257デフォルトの名無しさん2014/03/13(木) 00:25:59.37ID:d/qHbQav
一番学ぶべき言語は・・・英語か。
0258デフォルトの名無しさん2014/03/13(木) 14:21:58.16ID:wZ/Mekf7
>>227
たのしいRuby 第4版
やっと3回読んだ
漏れは、10ほどの言語を知っているが、
関数型言語は苦手なせいか、なかなか苦戦した
今はRで苦戦している

Rubyは環境がないのな?
Javaの環境を使って、JRubyって手もあるか
でもRailsまでは、やるのが面倒
でもなぜSwingなんだ?SWTじゃないの?

Rubyには万能感、解放感、充実感があるね
ちょこちょこ、小回りがきくからかな?

配列2つを足すと、重複した要素を除いて、
1つの集合にするなど、便利な機能もある

漏れはWin8ノートだから、環境を探すのが一苦労する
Win7を買うべきだった
まずEclipseかな?もう少し、環境について調査してみる
0259デフォルトの名無しさん2014/03/13(木) 17:22:05.97ID:qaG+7LaQ
>>257
読めないなら、配管工でもした方が良いレベル
0260デフォルトの名無しさん2014/03/13(木) 18:16:52.60ID:+lIKaSU4
>>258
IDEに頼るやつは何をやってもダメ
0261デフォルトの名無しさん2014/03/13(木) 18:22:43.02ID:wuhQ2BN5
入力した数が素数か判定するプログラムを作った。

もっと簡潔に書けるよ、とか
こうすれば速くなる、とか教えてほしい。


input = gets.to_i
count = 2
while (input % count) != 0 &amp;&amp; input > 1
count += 1
end
puts"素数です" if count == input
puts"素数ではありません" if count != input


やり方としては、
入力した数を2から順に割っていって、
割り切れたときの数が入力と一致していたら素数、
一致してなかったら素数ではない、
と考えた。
0262デフォルトの名無しさん2014/03/13(木) 18:34:41.96ID:4Ls5eGnC
>>261
素数判定に関しては「○○を実装してみた」という言い方をして欲しい
エラトステネスの篩とか試し割りとか、そういうの

もしそういう言い方ができないのであれば、
対象についての研究が足りない、またはそれを題材として練習するのはヤバい
0263デフォルトの名無しさん2014/03/13(木) 18:34:52.63ID:k4ocBl+v
早過ぎる最適化、ということを覚えること
0264デフォルトの名無しさん2014/03/13(木) 18:54:45.94ID:qaG+7LaQ
未だにSWTが使われてるのはEclipiseぐらい
仮想マシンが強力になったせいで、Awt/Swingでも変わらないだけの速度が出る
そんな懐かしいものより、Android SDKでも触っとけよ
TomcatやStruts/SpringMVCの存在価値は、もはやPHPにも劣る
0265デフォルトの名無しさん2014/03/13(木) 18:57:29.17ID:bTIwkzX1
>>261
SICP本にあるScheme実装コードをRubyへ移植してみた
できるだけオリジナルのコード構造を再現できるようにしてみたけど、
Rubyらしく書き直せば、もっと短く簡潔になるはず

http://play.island.ac/codepaste/code?id=1578
0266デフォルトの名無しさん2014/03/13(木) 19:03:51.89ID:qaG+7LaQ
SICPをRubyに変換なんて間抜けなことやらなくていいから、
蟻本に書かれているアルゴリズムの英語資料を探してきてノートに書き下だせ
データベースの民間資格取るほうがはるかにマシ
02672612014/03/13(木) 19:34:19.19ID:wuhQ2BN5
>>262
なるほど。ありがとうございます。
>>265
ありがとうございます!
0268デフォルトの名無しさん2014/03/13(木) 23:15:54.60ID:1rtAXIVl
Nokogiri::HTML.parseしたら
#<Nokogiri::XML::Text:0x3fde62528138 "¥r¥n ">
みたいな改行と空白みたいなのまでひっぱって来ちゃうんだけど
これ出てこない様にはできんかの?
0269デフォルトの名無しさん2014/03/13(木) 23:20:58.52ID:Se024/Kp
>>268
Nokogiri::HTML.parse.to_s.split
0270デフォルトの名無しさん2014/03/13(木) 23:25:40.29ID:yAPkVqSP
noblanks がどーたらこーたら
0271デフォルトの名無しさん2014/03/14(金) 01:10:26.86ID:AQKbVC0Q
>>261
確か素数は、平方根までで割り切れるか、
を確かめるだけで良かったんじゃ?

25=5*5 だから、素数ではない
23は2,3,5で割り切れないから、素数?
0272デフォルトの名無しさん2014/03/14(金) 01:18:15.95ID:CN82R/hG
265 名前:デフォルトの名無しさん[sage] 投稿日:2014/03/13(木) 18:57:29.17 ID:bTIwkzX1
>>261
SICP本にあるScheme実装コードをRubyへ移植してみた
できるだけオリジナルのコード構造を再現できるようにしてみたけど、
Rubyらしく書き直せば、もっと短く簡潔になるはず

http://play.island.ac/codepaste/code?id=1578


↑は自治スレに入り浸るキチガイでした
http://toro.2ch.net/test/read.cgi/tech/1393852194/
0273デフォルトの名無しさん2014/03/14(金) 08:20:51.47ID:UX8YYIlf
> a=('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a
=> ["a", "b", "c", "d", "e", ... "6", "7", "8", "9"]
> 16.times{print a.sample}
aHdQvYW75ssv4tyK

Rubyの乱数ってパスワード生成に使って安全ですか?
0274デフォルトの名無しさん2014/03/14(金) 11:25:44.74ID:LTNvKxS/
>>271
天才ktkr
0275デフォルトの名無しさん2014/03/14(金) 13:37:08.15ID:N8AgJwv9
>>271
5x5は見なくていい
4まで割って見れば良い
つまり

x 23は2,3,5で割り切れないから、素数?

o 23は2,3で割り切れないから、素数!
0276デフォルトの名無しさん2014/03/14(金) 21:51:35.47ID:4Kl0wdn2
入力される数値の大きさが分からないけど
あらかじめ素数の表を持っておくのはずるいやり方かな?w
表の範囲内なら即答。表以上なら表から計算。
0277デフォルトの名無しさん2014/03/14(金) 22:21:55.06ID:eyP/oOvO
表の範囲外だと入力値だけで何メガバイトもありそう
0278デフォルトの名無しさん2014/03/14(金) 23:23:37.02ID:sBD7EyTw
100万までの素数の改行区切りが500KBだったはず
0279デフォルトの名無しさん2014/03/15(土) 01:08:37.47ID:AJr6U08J
>>273
Random.new(1) など、同じ種を与えれば、
同じ乱数列が出てくる

引数を与えなければ、別の乱数によって、
作られた種によって、乱数列が作られる

でも、たまたま同じ種になると、
同じ乱数列が作られるかも?
0280デフォルトの名無しさん2014/03/15(土) 02:45:52.46ID:eFxi4ctV
>>273
厳密にはダメ。Rubyのrandはいわゆる暗号学的に安全な擬似乱数を生成しない

SecureRandomがある。ただし環境によっては使えない可能性がある
0281デフォルトの名無しさん2014/03/15(土) 11:12:42.94ID:LE9xw32l
「暗号学的に安全」というのは、パスワード生成に使って良い悪い、という意味ではない。

たとえばセッションID等に使って、過去n回のIDから次のIDが予測できる、といったような性質が
ある場合に、「暗号学的に安全でない」と言う。
0282デフォルトの名無しさん2014/03/15(土) 13:49:41.36ID:7MQyb7Y3
配列に:aか:bか:cを含む
ってのを簡潔に書けないかな?
!(array - (array - [:a, :b, :c])).empty?
とかやってるけど、ぱっと見、意味不明だぬ
0283デフォルトの名無しさん2014/03/15(土) 13:52:42.43ID:Fwz6hkt8
[:a, :b, :c].include?(:a) ってのがあるお
0284デフォルトの名無しさん2014/03/15(土) 13:56:49.66ID:7MQyb7Y3
>>283
array.any?{ |e| [:a, :b, :c].include?(e) }
こっちの方がましかなぁ
0285デフォルトの名無しさん2014/03/15(土) 14:06:01.75ID:Fwz6hkt8
!(array & [:a, :b, :c]).empty?

あんまし変わらないか
0286デフォルトの名無しさん2014/03/15(土) 20:43:53.16ID:2XdUyWz9
t = [:a,:b,:c]
(t-array).size != t.size

いまいち
0287デフォルトの名無しさん2014/03/15(土) 21:00:43.12ID:4oHlMdiA
>>284 に一票
0288デフォルトの名無しさん2014/03/15(土) 22:03:33.21ID:2XdUyWz9
>>284
分かりやすいので俺も一票
0289デフォルトの名無しさん2014/03/15(土) 22:13:56.50ID:Cg/cJL3k
(array - [:a,:b,:c] == array)
0290デフォルトの名無しさん2014/03/16(日) 01:55:27.08ID:kwxpV1Db
>>284よりも明らかに>>285のほうがいいよ
速い上に(高校で習う集合論を覚えていれば)直感的でわかりやすい
0291デフォルトの名無しさん2014/03/16(日) 03:08:07.17ID:nvhpKgyR
>>290 1おむすび
,.-、
(,,■)
0292デフォルトの名無しさん2014/03/16(日) 07:38:46.95ID:35wQAmZk
>>290=>>285
集合演算と二重否定(しかも遠い)のコンボは別に直感的でもわかりやすくもない
0293デフォルトの名無しさん2014/03/16(日) 10:47:05.66ID:LO99WT+e
いや、>>285は分かりやすいだろw
>>284はタイプ量を減らそうとして直感的じゃなくなってるケース。
0294デフォルトの名無しさん2014/03/16(日) 11:17:08.87ID:BR331utC
>>285はメソッド Array#& で二つの集合間の交わりを計算し、
その次に空(から)でないことを判定している
これは集合の要素数が小さければ最適解かもしれないけど、
要素数が極めて大きければ交わり計算に要する時間が無駄になる

今回の「お題」は完全な積集合を求めることではなく、
ただ単に交わりが存在するか否かを判定するだけなのだから、
>>284のほうが「お題」を素直に表現していると考える

>>290のいう「>>285は集合論として直感的だ」という意見は
決して間違いではないが、数学的な定義を直接的にコード化すると
(数学として直感的であっても)効率的ではなくなることがある
という例だと思われ
0295デフォルトの名無しさん2014/03/16(日) 16:54:45.92ID:Lir+QJFs
配列の集合演算って、内部では一時的なハッシュ作ってるのかな
と、Rubyのソース見たら作ってた

require 'benchmark'
array=10_000_000.times.to_a.shuffle + [:a,:b,:c]
Benchmark.bm do |bm|
a = array.dup;bm.report{a.any?{|e|[:a,:b,:c].include?(e)}}
a = array.dup;bm.report{!(array & [:a, :b, :c]).empty?}
a = array.dup;bm.report{(a - [:a,:b,:c] == a)}
end
の実行結果 ruby 2.1.1p76 (2014-02-24 revision 45161) [i386-mingw32]
user system total real
14.969000 0.016000 14.985000 ( 15.000000)
0.344000 0.000000 0.344000 ( 0.343750)
0.578000 0.078000 0.656000 ( 0.703125)

試しに ruby 2.1.0p0 (2013-12-25 revision 44422) [i386-mingw32]
user system total real
23.781000 0.000000 23.781000 ( 23.781250)
0.344000 0.000000 0.344000 ( 0.343750)
0.609000 0.047000 0.656000 ( 0.687500)
集合演算はほぼCの関数だから変わってないけど
Array#any? は何気に速くなってるぅ

要素数が数千程度までなら実行時間に大して差はないので好きに書けばいいと思う
0296デフォルトの名無しさん2014/03/16(日) 17:13:23.65ID:tehq2gt8
横からだけど俺も共通部分取った方が分かりやすいと思ったな

>>292
n.&(m).empty?.! # ?!?!!? wwwwww
n.&(m).any? # nil を含まない保証がある場合
うん伝わり辛いな!


>>295
ハッシュ作ってるから爆発はしなさそうだよね
計算量はどう書くんだろ?教えて下さいエロい人

n.&(m).empty?.! # O(n+m) ← あってる?
n.any? {|v| m.include? v} # O(n*m) ← あってる?
0297デフォルトの名無しさん2014/03/16(日) 17:37:42.28ID:X1gct15n
集合演算の方が速いとは、ちょっとびっくり

>>296
うん、あってるね
0298デフォルトの名無しさん2014/03/16(日) 19:59:48.28ID:+0w7Q/Uu
大真面目にRuby扱ってる人まだいたんだ
0299デフォルトの名無しさん2014/03/16(日) 20:08:04.34ID:X1gct15n
http://hissi.org/read.php/tech/20140316/KzB3N1EvVXU.html
0300デフォルトの名無しさん2014/03/16(日) 20:09:29.32ID:+0w7Q/Uu
Rubyは昔はホルホルしてた人でしょ?
0301デフォルトの名無しさん2014/03/16(日) 20:27:14.55ID:nvhpKgyR
502 Bad Gateway nginx/1.2.1
http://docs.ruby-lang.org/

ふぇぇ
0302デフォルトの名無しさん2014/03/16(日) 20:30:32.71ID:+0w7Q/Uu
Rubyってとっくにオワコン化した言語なのにまだ学ぼうしている人がいるの?
いまだ初心者スレがあるってことが信じられない
0303デフォルトの名無しさん2014/03/16(日) 20:31:27.76ID:tehq2gt8
>>297
あざす!
0304デフォルトの名無しさん2014/03/16(日) 20:31:44.91ID:/mgBA8rW
とっくに人生終了してるバカが何か言ってるねw
0305デフォルトの名無しさん2014/03/16(日) 20:38:14.91ID:+0w7Q/Uu
Rubyは中途半端な出来上がりの言語だったかもね
pythonにみんな移り始めてるし、流れにのらないと待遇は悪くなるばかりだよぉ
0306デフォルトの名無しさん2014/03/16(日) 20:39:30.35ID:nvhpKgyR
RubyはDSL用になりつつあーるのである
0307デフォルトの名無しさん2014/03/16(日) 20:41:40.69ID:/mgBA8rW
>>305 自分の境遇を必死に反映してるのですね、わかりますw
0308デフォルトの名無しさん2014/03/16(日) 20:44:36.70ID:+0w7Q/Uu
pythonは良いよ、美しいよ
でもRubyかじったドカタさんレベルだと敷居が高いかもしれないね
0309デフォルトの名無しさん2014/03/16(日) 20:45:04.33ID:pXWrRWdV
へんなのはPythonに来なくていいから
Rubyの方で隔離してくれてるとありがたい
0310デフォルトの名無しさん2014/03/16(日) 20:51:37.19ID:BR331utC
>>309
Pythonやってると、+0w7Q/Uu みたいになるっていう例だね
0311デフォルトの名無しさん2014/03/16(日) 20:55:34.15ID:/mgBA8rW
>>308 てめぇの脳みそがドカタ以下なのを、まずどうにかしたほうがいいよw
0312デフォルトの名無しさん2014/03/16(日) 20:58:04.50ID:+0w7Q/Uu
Ruby自体がダメっていうよりはRubyにくいついた人たちがアレって印象なんだけどね
0313デフォルトの名無しさん2014/03/16(日) 21:02:03.69ID:/mgBA8rW
>>312 自分のアレさ具合にまず気付こうねw
0314デフォルトの名無しさん2014/03/16(日) 21:03:29.62ID:BR331utC
>>313
荒らしにかまうのも、荒らし行為だよ
0315デフォルトの名無しさん2014/03/16(日) 21:39:25.11ID:+0w7Q/Uu
いつまでRubyに固着しつづける理由はないと思うよ
他の言語にも手を出しつつRuby続けるならまだいいかもだけど
0316デフォルトの名無しさん2014/03/16(日) 22:55:54.45ID:KyVGNp8M
is_aって、英語にするとなんでしょう?
たとえば、ARGVはargument valueみたいな
0317デフォルトの名無しさん2014/03/16(日) 23:01:55.67ID:nMAWd7oj
そのまま is a でしょ

A.is_a B
A is a B
AはBである
0318デフォルトの名無しさん2014/03/16(日) 23:04:00.20ID:+0w7Q/Uu
Ruby厨の知能をさらけ出してしまった
0319デフォルトの名無しさん2014/03/16(日) 23:19:24.42ID:nvhpKgyR
RubyGemsとかで公開されているライブラリのソースコードを見るとメソッドの引数チェックとかあんましやってない様にみえるけどこんなもんなの?どしてなの?

標準ライブラリとかはTypeErrorとかArgumentErrorとかちゃんとスローするよね。

標準ライブラリとそれ以外のライブラリでは引数チェックに関するポリシーとかスタイルが違ったりするの?
0320デフォルトの名無しさん2014/03/16(日) 23:22:06.68ID:+0w7Q/Uu
Ruby厨無意味な改行おつかれさまでーす
早くpythonに移れば?
0321デフォルトの名無しさん2014/03/16(日) 23:32:17.51ID:nvhpKgyR
>>320
真面目な疑問なんだけど。
0322デフォルトの名無しさん2014/03/16(日) 23:55:29.54ID:+0w7Q/Uu
Ruby信者も早速老害化してるね
0323デフォルトの名無しさん2014/03/17(月) 00:00:23.55ID:1c9ssCVb
>>317
なるほど
C言語のさわりしかやってないんでクラスの理解に手間取ってる次第です
ありがとうございます
0324デフォルトの名無しさん2014/03/17(月) 00:06:03.25ID:qNLDgXjv
そんなレベルでRubyいじってるんだからな
そりゃウンコプログラマにしかなれないんだなぁ〜
0325デフォルトの名無しさん2014/03/17(月) 00:16:32.32ID:PrlWoGXZ
>>319
自分は引数検査に関する公式なポリシーやスタイルというものを知らないから、
以下に書く内容は推測にすぎない事をあらかじめ断っておく

基本的にRubyは引数検査は緩やかなポリシーであり、
それ以上処理を続行できない or 明らかに続行すべきではない場合に限って
例外を発行するよう設計されていると(個人的には)見ている
ただし、標準ライブラリの中でも(C言語で書かれた)組込みライブラリは、
エラーがRubyインタプリタ自身のクラッシュに直結する(という理由がある)ので
厳密な引数検査が行われているように見えるのだと思う
実際、標準ライブラリの中でも(Rubyで書かれた)添付ライブラリは、
きちんと引数検査していないものが多い

もしも、>>319がより正確な答えを求めるのなら、
公式メーリングリストで問い合わせたほうがいいと思う

>>321
+0w7Q/Uu は多くの板で煽りカキコしている典型的なを荒らしだから、無視すべきだよ
http://hissi.org/read.php/tech/20140316/KzB3N1EvVXU.html
0326デフォルトの名無しさん2014/03/17(月) 00:30:27.48ID:qNLDgXjv
結局自分で調べるべき問題をここで質問しちゃっただけじゃん
これがRuby信者の実力
0327デフォルトの名無しさん2014/03/17(月) 00:36:00.83ID:7WFHPef3
>>319,321
気になったら報告すれば、さっくり対応してくれるよ。
礼儀としてRubyGemsのバージョンは古いから
mainなリヴィジョンで要確認
0328デフォルトの名無しさん2014/03/17(月) 00:38:43.32ID:qNLDgXjv
無意味な改行つけて真面目な疑問とかww
0329デフォルトの名無しさん2014/03/17(月) 10:21:19.07ID:QW4CmNA1
てめぇの存在が無意味
0330デフォルトの名無しさん2014/03/17(月) 11:08:05.99ID:CjINzA9/
v = 3

v==3 # ==> true
v=="3" # ==> true

的に使えるvariant型みたいのないですか
0331デフォルトの名無しさん2014/03/17(月) 11:16:46.54ID:QW4CmNA1
v = 3 の意味はオーバーライドできないから、
v が Fixnum になることが不可避。
0332デフォルトの名無しさん2014/03/17(月) 11:23:19.39ID:aK3DvjMV
A == B は A クラスのインスタスメソッド A#== を呼んでいるだけであって、
== という記号がなにか判断をしているわけではない
http://docs.ruby-lang.org/ja/1.9.3/class/Object.html#I_--3D--3D

で、一般的には既存の(自作でない、==をオーバーライドするのは下品な)基本的オブジェクトに対しては
v.to_s == '3' とかして比較する

もちろん v に to_s というメソッドがないと例外吐いて落ちるが、それはそういうもん
0333デフォルトの名無しさん2014/03/17(月) 11:25:42.04ID:qNLDgXjv
まーた仕事の質問しちゃった
Ruby厨の実力はこの程度
このスレには馬鹿しか残ってないよ
0334デフォルトの名無しさん2014/03/19(水) 07:53:04.37ID:gvuKo8uV
お前、生きてて辛いだろw
0335デフォルトの名無しさん2014/03/19(水) 08:14:49.29ID:pgTJKr0l
そりゃRuby厨は仕事がなくて辛いよね
Pythonを理解できない脳だからしかたないか
0336デフォルトの名無しさん2014/03/19(水) 08:56:05.04ID:vKjFIPAU
今日のID判明
GJ
0337デフォルトの名無しさん2014/03/19(水) 09:35:52.73ID:pgTJKr0l
Ruby厨必死のIGID自慢
Ruby厨の日常はノーグッド
0338デフォルトの名無しさん2014/03/19(水) 11:17:06.28ID:SQrMQ7kj
朝起きてからずっと色んなスレに書き込んでるけど仕事しろ
0339デフォルトの名無しさん2014/03/19(水) 11:24:53.34ID:pgTJKr0l
Rubyの仕事はもうないから安心して別の業種探したほうがいいよ
0340デフォルトの名無しさん2014/03/20(木) 03:38:53.80ID:tNptK3aX
require 'benchmark'
n = 50000
Benchmark.bm do |x|
x.report { for i in 1..n; a = "1"; end }
x.report { n.times do ; a = "1"; end }
x.report { 1.upto(n) do ; a = "1"; end }
end

こんな感じで実行時間をベンチマークするのは出来るのですが、
メモリ使用量を調べるにはどうすればいいでしょうか?
0341デフォルトの名無しさん2014/03/20(木) 03:52:55.04ID:jQYIhnNX
>>340
そういうことは基本的にできない。
unix系なら
/usr/bin/time -f %M ruby -e 'for i in 1..n; a = "1"; end'
とかやったら?
0342デフォルトの名無しさん2014/03/20(木) 09:09:44.31ID:noBkfRX0
深夜3時に質問レスするRuby厨
仕事がないんですねわかります
0343デフォルトの名無しさん2014/03/20(木) 10:00:24.17ID:noBkfRX0
>>341
できないのはお前の頭のほうだろ
適当なことを吐くんじゃねえよ
ここはお前の便所じゃねえんだよ
0344デフォルトの名無しさん2014/03/20(木) 13:15:37.29ID:t+S/cpio
bundle new foo
ってしたら
module Foo; end
ってモジュールが自動生成されるけど、
モジュールじゃなくてクラスじゃダメなの?
名前空間が衝突しないようにgem名に基づいたmoduleを作らんと行かんってこと?
0345デフォルトの名無しさん2014/03/20(木) 13:18:00.99ID:noBkfRX0
>>334
だめなのはクラスじゃなくてお前の人生
Rubyの勉強の仕方が根本から間違ってるようだね
このスレに質問するまでは1年は早い
0346デフォルトの名無しさん2014/03/20(木) 17:43:03.48ID:1pyMxfb0
>>344
別にいかんわけじゃないが、そうした方が無難
0347デフォルトの名無しさん2014/03/20(木) 21:11:50.95ID:noBkfRX0
>>346
いかんのはお前のコーディングスタイル
お前職場でも空気読めない迷惑な存在だろ、自覚してんのか知らんけど
そういう人格がこういうとろこで表れるんだよ
だれもお前の意見なんて求めてないから消えろゴミクズ糞蛆虫
0348デフォルトの名無しさん2014/03/21(金) 01:16:13.41ID:6IJg/I04
>>344
"一番外側"はモジュールなのが一般的

もちろんクラスでもいいのだけど、どっちか決め打ちしろと言われたらモジュールにする
そんな程度
使わんかったら書き換えてもいいよ
0349デフォルトの名無しさん2014/03/21(金) 01:23:23.23ID:Z82+z0lX
>>348
はそんな程度の頭
終始曖昧な答えで終わってる
0350デフォルトの名無しさん2014/03/21(金) 01:37:07.62ID:q4G07wC8
class Foo
 def foo; return :foo; end
end
Foo.new.get_uwagaki_method(:@foo)
# => nil

class Foo
 def foo; return :oreore_foo; end
end
Foo.new.get_uwagaki_method(:@foo)
# => :redefine

class Bar < Foo
 def foo; return :bar_foo; end
end
Foo.new.get_uwagaki_method(:@foo)
# => :overwride

みたいに、
的な事をしたいんだけど無理かな?
0351デフォルトの名無しさん2014/03/21(金) 01:41:14.04ID:Z82+z0lX
はい糞コード入りましたー
動かないコードを書いてばっかじゃねーの
0352デフォルトの名無しさん2014/03/21(金) 08:56:29.68ID:dbzhsf0s
>>350
日本語でおk

最終的にやりたいことを説明するといいよ
0353デフォルトの名無しさん2014/03/21(金) 12:11:42.86ID:o/AML2E/
>>350
def fooするまえに defined? foo 確認すりゃええだけちゃうのん
0354デフォルトの名無しさん2014/03/21(金) 12:44:28.14ID:Z82+z0lX
>>353
呼ばれてないのにくる初心者乙
0355デフォルトの名無しさん2014/03/21(金) 13:38:18.66ID:DlG+OImv
連休はム板に張り付き荒らしをして過ごします
0356デフォルトの名無しさん2014/03/21(金) 14:22:40.78ID:Z82+z0lX
連休もRubyスレで質問しますw
0357デフォルトの名無しさん2014/03/21(金) 15:02:22.06ID:3n01pDgG
君、面白くないよ
0358デフォルトの名無しさん2014/03/21(金) 15:44:37.03ID:Z82+z0lX
お前面白くないよRUbyゴミ厨
0359デフォルトの名無しさん2014/03/22(土) 01:45:28.34ID:jZh4qhvH
1つの整数 x を読み込んで、x の3乗を計算し結果を出力するプログラムを作成して下さい。
入力として1つの整数 x が与えられます。
0360デフォルトの名無しさん2014/03/22(土) 01:49:32.78ID:aBNmXC5d
>>359
x = gets.to_i
p x*x*x
0361デフォルトの名無しさん2014/03/22(土) 01:49:38.53ID:+2B6OEdX
そういうのはお題スレでやれ
こういう場違いな低学歴が平気でスレに出入りするからみんな去ってくんだよ
0362デフォルトの名無しさん2014/03/22(土) 01:54:29.37ID:aBNmXC5d
>>361
うるせーこの野郎、こちらは初心者スレだぜぇ、一昨日来やがれ
0363デフォルトの名無しさん2014/03/22(土) 02:02:36.90ID:veNOxdve
今日のID:
・aBNmXC5d
 http://hissi.org/read.php/tech/20140322/YUJObVhDNWQ.html
・+2B6OEdX
 http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.html
0364デフォルトの名無しさん2014/03/22(土) 02:03:59.93ID:+2B6OEdX
馬鹿みたいに簡単な問いを正解したぐらいで勝ち誇った態度取るのだけは止めろな
そんなんじゃ仕事にならんぞ
0365デフォルトの名無しさん2014/03/22(土) 02:09:02.62ID:jZh4qhvH
それではこれはできますか

たて a cm よこ b cm の長方形の面積と周の長さを求めるプログラムを作成して下さい。
a と b が1つの空白で区切られて与えられます。
面積と周の長さを1つの空白で区切って1行に出力して下さい。

Sample Input
3 5
Sample Output
15 16
0366デフォルトの名無しさん2014/03/22(土) 02:11:04.05ID:+2B6OEdX
スレを私物化する馬鹿が調子に乗り出した
このスレは本格的に終了
0367デフォルトの名無しさん2014/03/22(土) 02:16:03.70ID:jZh4qhvH
なんだ口だけで手は動かせないやつか

耳は聞こえるのかな
0368デフォルトの名無しさん2014/03/22(土) 02:26:10.68ID:+2B6OEdX
嗚呼〜RUBY厨の叫びを聴け
0369デフォルトの名無しさん2014/03/22(土) 09:10:48.40ID:1kwxfvu4
連休初日はRubyスレに張り付いて荒らしをして過ごしました
連休二日目もRubyスレに張り付いて荒らしをして過ごします
0370デフォルトの名無しさん2014/03/22(土) 09:15:45.23ID:uxrrfUq4
>>365
a,b = gets.split(/\s+/).map(&:to_i)
puts [a*b,2*a+2*b].join(' ')
0371デフォルトの名無しさん2014/03/22(土) 10:05:34.86ID:ahejxoWb
宿題スレでは定番遣り取りだったんだけど、「なにを習ってなにを習ってないのか」がわからないと回答できないよ
たとえば、>>370を「授業で教える」ことはおそらくないから、これを提出するとチェック対象になるはず

>>369
Ruby関係ないよ
ム板にずっと前からいる
0372デフォルトの名無しさん2014/03/22(土) 10:14:45.52ID:uxrrfUq4
>>371
言うなよ、提出させてバレるのがいいんじゃないか
0373デフォルトの名無しさん2014/03/22(土) 10:18:53.60ID:n17bsJOw
rubyって劣化pythonだよね
railsがあるだけでpythonより価値あるけど
0374デフォルトの名無しさん2014/03/22(土) 11:17:24.86ID:HSsuroe3
「たった2日でできるRuby」の半分が終わったのですが、これの後に勉強した方がいいのは「たのしいRuby」と「パーフェクトRuby」のどちらですか?

「たったの…」が本当に2日で終わるとは思ってなかったので…。
勉強の目的はweb制作です。
0375デフォルトの名無しさん2014/03/22(土) 11:43:57.96ID:h4m0yMGm
Web 制作に使うフレームワークのチュートリアルを読んでみて
自分に不足してる知識が見えてきたら次の本を買うぐらいでいいと思う
0376デフォルトの名無しさん2014/03/22(土) 12:25:32.39ID:/Wci2X+J
パーフェクトRubyはたのしいRubyで扱っていることもおよそカバーして、
加えて実践的なもの(各種ツール、gemの作り方)、Rubyの黒い部分(メタプログラミング)
も扱っているようだな。
徐々に進みたいならたのしいRuby、網羅的な1冊ならパーフェクトRuby、という感じ。
0377デフォルトの名無しさん2014/03/22(土) 12:49:21.46ID:HSsuroe3
>>375
「たったの…」ではそこまでの力がつかない気がします。本当に基礎の基礎だけっぽいので…。

>>376
では「パーフェクト…」をやりながら理解しにくいところだけ「楽しい…」をリファレンス代わりにというのが良さそうですね。

ありがとうございました。
0378デフォルトの名無しさん2014/03/22(土) 13:00:05.43ID:1DTI3LRJ
出版社のステマうざい死ね
0379デフォルトの名無しさん2014/03/22(土) 13:20:40.56ID:+2B6OEdX
Ruby厨はほんと馬鹿だな
0380デフォルトの名無しさん2014/03/22(土) 13:22:47.11ID:n17bsJOw
パーフェクトrubyあまりいい本だとは思わねーな
シリーズ物だから売れてるけど。
勉強のために最初から読むって本でもない。
0381デフォルトの名無しさん2014/03/22(土) 15:58:52.64ID:+2B6OEdX
>>380
ではなに読んでも糞本になる
0382デフォルトの名無しさん2014/03/22(土) 16:09:26.52ID:n17bsJOw
だって複数人が共同で書いてる本って一貫性が無いんだもの
テストを扱ってないのも致命的だと思った
さらに言うと著者紹介を見れば分かるけど著者の技術レベルがかなり疑わしい
0383デフォルトの名無しさん2014/03/22(土) 18:54:37.75ID:h4m0yMGm
本屋で 2 日でわかる Ruby をパラパラ眺めてきた
あれを手を動かしながら読んで同種のコードをサラサラ書けるようになれば初歩としては十分だと思った
でも 200 ページ足らずで \2,310 はちょっと高いかな

その隣りに置いてあった『たのしいプログラミング Python ではじめよう!』をついでにめくってみたら
フルカラーで素敵な挿絵(すごい Haskell の人が描いてる)が一杯で危うく買いそうになった
0384デフォルトの名無しさん2014/03/22(土) 21:15:28.26ID:7m4m/Mij
プログラミング言語 Ruby オライリージャパン (2009/1/26)
http://www.amazon.co.jp/dp/4873113946/
オライリーが 1.X の記述を捨て去った完全 2.X 版を出せば
『パーフェクトRuby』は売れなくなるよ
0385デフォルトの名無しさん2014/03/22(土) 22:03:09.18ID:uxrrfUq4
というか書籍を買う必要あるのかなあ。
0386デフォルトの名無しさん2014/03/22(土) 23:37:47.29ID:7m4m/Mij
スクリプトといえば PerlかJavaScriptだったオレは、
2000年ごろ原先生のウサギ本を書店で見かけてすぐに購入。
あとはWebにあったトーマスとハントのネタ元が役に立った。
今はドキュメントが豊富で何を読んでいいのか分からないとか。w
0387デフォルトの名無しさん2014/03/22(土) 23:58:27.13ID:e4K+RqPN
他の言語の素養があるなら、ネットの情報だけでなんとかなる時代だからなー
0388デフォルトの名無しさん2014/03/23(日) 00:05:45.79ID:AY0ttai1
3/19 ID:pgTJKr0l 86レス1位
http://hissi.org/read.php/tech/20140319/cGdUSktyMGw.html
3/20 ID:noBkfRX0 69レス1位
http://hissi.org/read.php/tech/20140320/bm9Ca2ZSWDA.html
3/21 ID:Z82+z0lX 55レス1位
http://hissi.org/read.php/tech/20140321/WjgyK3owbFg.html
3/22 ID:+2B6OEdX 39レス1位
http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.html

完 全 に 病 気
0389デフォルトの名無しさん2014/03/23(日) 00:12:26.12ID:LwVxNWuC
Rubyにしがみつくやつ、何の病気?
国粋主義者?
0390デフォルトの名無しさん2014/03/23(日) 00:27:29.79ID:YG72v+Wj
>>372
「バレた」としても、それが学生/生徒側にわざわざ知らされるようなことはまずないとみていい
(他の(普段の)回答と比べれば差が歴然で剽窃が明白だから)
>>365が「あの回答をコピペしたせいで成績下がった」と認識することも、スレに報告しに来ることも絶対にない

つまり、傍目には単に宿題に親切に回答しただけだ
そんなん、宿題やっての書き込みが増えるだけでなんもいいことがないし面白くもない
>>371がきちんとできる人は結果的に宿題を自力でできる人だから、虫避けになる
0391デフォルトの名無しさん2014/03/23(日) 00:33:08.84ID:pTyhCbBF
array = [ "一番目", 8, "saas", "efsdsdfsdf"]
array.each do |i|
if Numeric
puts '数字だな'
elsif i == "一番目"
puts "日本語だな知ってる"
else
puts "それいがいのなにか、うんわかってる"
end
end

これなんでうまくいかないのか教えて
caseだとうまくいくのに
0392デフォルトの名無しさん2014/03/23(日) 00:41:43.90ID:N5RuRaJB
Rubyの良さは書き易さだな
begin-endなので書きなぐれるし
OOPなメソッドチェーンなので補完がバリバリ効く
万能な言語は存在しないので
何か一つでも用途にあえばそれはそれで本人満足なんだから
他人があれこれ言う話じゃない
0393デフォルトの名無しさん2014/03/23(日) 00:43:10.35ID:LwVxNWuC
じゃあ単位落とす馬鹿を相手にして面白がってるこのスレのバ回答者たちはそうとうクズいよ
0394デフォルトの名無しさん2014/03/23(日) 00:48:38.91ID:YG72v+Wj
>>391
>これなんでうまくいかないのか教えて
それは、なんとなく書いてるから
>caseだとうまくいくのに
それも、なんとなく書いてるから

プログラム言語は融通の利かないロジックの塊
使い方とルールはきちんと覚えよう
0395デフォルトの名無しさん2014/03/23(日) 00:50:12.90ID:qvzVCOsl
>>391
case は === で比較してるからうまくいくだけ
0396デフォルトの名無しさん2014/03/23(日) 01:11:27.28ID:SSYwKPLD
>>390
俺が教官だったら晒し上げるけどなあ。
0397デフォルトの名無しさん2014/03/23(日) 01:23:09.83ID:pTyhCbBF
>>395さんありがとう
===でもうまくいかない
0398デフォルトの名無しさん2014/03/23(日) 01:33:19.21ID:LwVxNWuC
質問者はこういう馬鹿
0399デフォルトの名無しさん2014/03/23(日) 02:23:34.79ID:SSYwKPLD
>>397
ちゃんと if Numeric === i にした?
0400デフォルトの名無しさん2014/03/23(日) 02:29:55.51ID:LwVxNWuC
質問者が馬鹿質問をする
回答者が馬鹿な回答をする
質問者の問題が解決しない
質問者が再質問
こんなかんじの繰り返し
0401デフォルトの名無しさん2014/03/23(日) 02:35:31.14ID:XqmsbHiv
たのしいRuby 2013 第4版
そりゃ著者が、日本Rubyの会の設立者/代表だからね
2002年の初版から11年で、第4版まで出したんだし、
情熱はあるだろう

漏れはソフ開もちで、10ぐらい言語を知っているが、
関数型が苦手なせいか、3回読んでようやくマスターした

結局はライブラリが、調べやすいかどうかで、
日本人には、Rubyが有利
Ruby, Jenkinsをもっと極めて、日本独自の進化をとげて、
CoolJapanとして世界へ広めてほしい

今は、「はじめてのJavaScript」という本で、苦戦している
動的言語は型チェックがないから、
CoffeeScriptの方が良さそう
0402デフォルトの名無しさん2014/03/23(日) 02:38:59.95ID:LwVxNWuC
なにこの自己アピール
気持ち悪すぎる
自分はこんなにたくさん本を読んで知識がありますよー
0403デフォルトの名無しさん2014/03/23(日) 02:41:57.88ID:N5RuRaJB
>>400
で?
0404デフォルトの名無しさん2014/03/23(日) 02:47:24.66ID:LwVxNWuC
ほらでた日本がつくったから日本人にあうとかぬかしてる奴
戦前の日本みたいに軍国主義ごっこしてろや、馬鹿エセ国粋主義者が
0405デフォルトの名無しさん2014/03/23(日) 02:51:44.33ID:pTyhCbBF
>>397さんのとおりにしたら出来ました。
if i === Numericではだめなんですね
難しい
0406デフォルトの名無しさん2014/03/23(日) 02:54:39.85ID:LwVxNWuC
この程度でスレをグダグダにする馬鹿ってなんなんだ
こんなのがRubyやってるんだぞ?>>401よ
0407デフォルトの名無しさん2014/03/23(日) 03:05:06.46ID:pTyhCbBF
あ、わかった
caseと同じ用に書いていると思い込んでいたけど
違いました。気づかせて頂きありがとう御座います。
0408デフォルトの名無しさん2014/03/23(日) 03:06:43.14ID:LwVxNWuC
お前はスレをグダグダにした
少なくとも謝罪しろ、そして二度とこのスレに来るな
0409デフォルトの名無しさん2014/03/23(日) 03:09:33.99ID:pTyhCbBF
毎日きます
なぜなら初心者スレだから
お前のことは無視するwww
0410デフォルトの名無しさん2014/03/23(日) 03:18:38.19ID:yrm7150G
連休初日はRubyスレに張り付いて荒らしをして過ごしました
連休二日目もRubyスレに張り付いて荒らしをして過ごしました
3連休は全てRubyスレに張り付いて荒らしをすることに費やしました
0411デフォルトの名無しさん2014/03/23(日) 03:48:17.03ID:SSYwKPLD
>>409
あまりキチガイにレスしないほうがいいよ。
0412デフォルトの名無しさん2014/03/23(日) 04:19:16.64ID:Xi/E3NRQ
ゆとり死ね
0413デフォルトの名無しさん2014/03/23(日) 06:54:19.68ID:3+gMdqxK
>>401
えらい
頑張れ
0414デフォルトの名無しさん2014/03/23(日) 06:55:52.65ID:N9+xBsr1
>>389
wearable deviceが出来た際に、最初に移植されるのは多分、cコンパイラ。
市場でイニシアチブを取るためには競合に先行する必要があるとすると、
全ての言語のなかで優れた選択肢がmrubyやluaの類。
今手元のマシンで動くcのコードは移植先のマシンでも動くと限らない。
誰かがc++をコンパイラを移植して、それからjvmモドキが移植されるのを待つと競合に遅れをとる。
Google v8は高品質かつ規格のために移植が遅れる。つまり、競合に遅れをとる。
ここで、mrubyという選択肢には厳密な規格や企業が持つライセンス問題から離れて他社に先行でき、
低レイヤの問題を抽象化できるというアドバンテージが生まれる。
市場に競合さえ居なければ、テトリスやインベーダーでもビルが建つぐらい稼げる。これがmrubyの魔力。
0415デフォルトの名無しさん2014/03/23(日) 07:40:22.15ID:N9+xBsr1
mrubyよりもluaの何処が優れているか?
・国内企業からのバックアップ
・開発者同士のコネクション
・勝手に弄れる
誰にでも出来るweb開発だけでは替えなんて幾らでも居る。コネがあると当然ながら就職/転職活動が上手くいく。
luaを使えば、地球裏側の産業に貢献するかもしれないが国内産業は潤わない。
Rubyなら、国内産業から出版業、教育界まで、経済的な活性化が見込めるアベノミクス言語。地方自治体から感謝される。
lua自体は大学のプロジェクト。オタクが何もかも自由に遊べるものではないはず。
そして、言葉の壁ができる。日本語とポルトガル語。どちらも英語が第二言語習得者。
luaやjavascript,pythonよりも迅速に移植される可能性を持ち、一般的なオブジェクト指向言語として使えるのはRubyだけ。
0416デフォルトの名無しさん2014/03/23(日) 07:43:32.33ID:l8Gj6RjR
名前が嫌い
ルビー使いが喜来

好きになってもらいたいなら
俺のチンチンしゃぷれ
0417デフォルトの名無しさん2014/03/23(日) 07:44:28.39ID:N9+xBsr1
マンチキンな僕はPHPしか使わないけどね!
0418デフォルトの名無しさん2014/03/23(日) 07:46:35.43ID:N9+xBsr1
>>416
いろんな人が、HaskellやLispの宣伝をするけれど、
実際に東大女とやれる可能性が高いのはRubyじゃないかな
0419デフォルトの名無しさん2014/03/23(日) 07:54:49.56ID:QZth2AWp
>>418
ぎく!
どうして俺が
Lisp使いになると東大女とやれるよって
書いてるとわかったか?
きみ、すごいな。

じゃ書くか
rubyは早稲田女だとおもうよ
東大女とやるにはLispだね
0420デフォルトの名無しさん2014/03/23(日) 15:33:33.77ID:N9+xBsr1
>>419
とても素敵な語感だから、ネットで流行ればいいなと思って使わせて貰っただけだよ
むしろ、すごいのは「東大女とやれる」なんて素敵なフレーズを思い付く貴方のほう
嗚呼ァ、貴方を宿した胎は何と恵まれているんだろうか
...。互いに口先だけでもギーク市場の頂点を目指して、市場と初心者たちを撹乱させようね!
0421デフォルトの名無しさん2014/03/23(日) 15:35:40.44ID:Xi/E3NRQ
ゆとり死ね
0422デフォルトの名無しさん2014/03/23(日) 18:45:00.43ID:yuPZb1TI
たのしいRubyは糞
オブジェクト指向をたいやきの型とたいやきで説明してお茶を濁そうとするのは全て駄本の証し
0423デフォルトの名無しさん2014/03/24(月) 01:00:43.29ID:B2kC2TB8
Dateクラスを使おうとして
require 'data'ってやってもエラーがでます
どうしたら利用できるでしょうか?
0424デフォルトの名無しさん2014/03/24(月) 01:06:33.18ID:PVohiAF8
>>423
おまえ自分のレス100回音読しろ
0425デフォルトの名無しさん2014/03/24(月) 01:07:50.66ID:iN+OyuMJ
>>423
まず頭をかち割ります
中に寄生虫がいるので素手でもいいんで取り出します
あとは消毒液をかけて頭を元通りにすればOK
これをやれば1時間後くらいに頭がさえて問題が解決
0426デフォルトの名無しさん2014/03/24(月) 01:44:19.46ID:YM9VgzDT
http://hissi.org/read.php/tech/20140316/KzB3N1EvVXU.html
http://hissi.org/read.php/tech/20140317/cU5MRGdYanY.html
http://hissi.org/read.php/tech/20140318/RzEydTlDQ2U.html
http://hissi.org/read.php/tech/20140319/cGdUSktyMGw.html
http://hissi.org/read.php/tech/20140320/bm9Ca2ZSWDA.html
http://hissi.org/read.php/tech/20140321/WjgyK3owbFg.html
http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.html
http://hissi.org/read.php/tech/20140323/THdWeE5XdUM.html
http://hissi.org/read.php/tech/20140324/aU4rT3l1TUo.html
今日も一日頑張ってください
0427デフォルトの名無しさん2014/03/24(月) 04:48:19.29ID:Tnk79sXs
自分で書いたコードとネットのサンプルが違いすぎて驚く。
ネットの方は、def def def ばっかりw

あれが本来のRubyなんでしょうね。
0428デフォルトの名無しさん2014/03/24(月) 06:41:10.13ID:1KCVJWex
言うまでもなく、そうしたサンプルを書く奴は他言語で書いたところで、
{{{
か
(((
或いは
def foo
def bar
def baz
としか成らない
0429デフォルトの名無しさん2014/03/24(月) 07:00:27.11ID:1KCVJWex
正直な所、僕にはココに湧いてる反Rubyistたちが理解できないんだ
自分で使う分にはPHP,jsが最良の選択肢だとしても、他人にはRubyを勧めた方が合理的だからね
0430デフォルトの名無しさん2014/03/24(月) 07:48:37.12ID:30azwQW6
3/19 ID:pgTJKr0l 86レス1位
http://hissi.org/read.php/tech/20140319/cGdUSktyMGw.html
3/20 ID:noBkfRX0 69レス1位
http://hissi.org/read.php/tech/20140320/bm9Ca2ZSWDA.html
3/21 ID:Z82+z0lX 55レス1位
http://hissi.org/read.php/tech/20140321/WjgyK3owbFg.html
3/22 ID:+2B6OEdX 39レス1位
http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.htm
3/23 ID:LwVxNWuC 51レス1位
http://hissi.org/read.php/tech/20140323/THdWeE5XdUM.html

完 全 に 病 気

3/24: ID:iN+OyuMJ
http://hissi.org/read.php/tech/20140324/aU4rT3l1TUo.html
0431デフォルトの名無しさん2014/03/24(月) 08:07:09.61ID:0UbPKOhm
>>426
きみ、精神病だね?
延々と作業してたのか?
倦むことを知らない精神病のコツコツさ
0432デフォルトの名無しさん2014/03/24(月) 08:07:52.63ID:0UbPKOhm
>>430
調べた君は、お馬鹿というより
精神病だな
そうなんだろ?
0433デフォルトの名無しさん2014/03/24(月) 09:22:24.36ID:Tnk79sXs
精神病の人間に精神病かどうか聞く愚かさ。
をRubyのコードで表現すると↓
0434デフォルトの名無しさん2014/03/24(月) 09:34:21.43ID:d/Rvi+Ke
うんち
0435デフォルトの名無しさん2014/03/24(月) 10:20:23.38ID:iN+OyuMJ
いいからC言語で書けよ
Rubyいらね
0436デフォルトの名無しさん2014/03/24(月) 10:43:27.04ID:OJ3JLSil
PerlやPythonならまだしもCは対立軸にないでしょ
0437デフォルトの名無しさん2014/03/24(月) 10:52:30.61ID:qe8lM9lC
自作クラスのインスタンスを標準クラスを使った表現に変換するメソッドの名前に規約みたいなのは無いの?
たとえば、なんかのインスタンスをjsonにシリアライズしようとしたら、
to_hやto_a以外にHashとArrayが混在したオブジェクトにならざるを得ないやつとかあるよね。
そんときにインスタンスの参照先をto_oしていけば、ぜんぶ良い感じに変換されて、
to_jsonしやすくなるっっていうか、そんなの。
0438デフォルトの名無しさん2014/03/24(月) 13:26:05.01ID:iN+OyuMJ
キモRubyは消えろ
マジで消えろ
0439デフォルトの名無しさん2014/03/24(月) 16:03:05.03ID:WPkFwPNy
診断名  : 躁病(そう病)

主な症状 :多弁で話が飛ぶ
       活動的だがまとまりがなく、落ち着きがない
       話は自己陶酔的で、大風呂敷で、攻撃的
あまり眠らない
0440デフォルトの名無しさん2014/03/24(月) 16:15:14.30ID:iN+OyuMJ
Python>Ruby>Perl
0441デフォルトの名無しさん2014/03/24(月) 16:37:17.74ID:B2kC2TB8
>>424
すまん、なにがおかしいの?
初心者だからわからんわ
0442デフォルトの名無しさん2014/03/24(月) 16:56:50.79ID:KlVmlKLX
>>441
require 'data' じゃなくて require 'date'
http://docs.ruby-lang.org/ja/2.1.0/class/Date.html
0443デフォルトの名無しさん2014/03/24(月) 17:33:31.82ID:Tnk79sXs
初心者が思うに、Dataなのにdataとか、末尾に;とか
そういう話かも
0444デフォルトの名無しさん2014/03/24(月) 18:34:42.15ID:iN+OyuMJ
ほらみろRuby厨は初心車に駄目だしされる
0445デフォルトの名無しさん2014/03/24(月) 20:49:48.95ID:25y3o3Jt
連休明けもRubyスレに張り付いて荒らしをして過ごしています
0446デフォルトの名無しさん2014/03/24(月) 22:42:39.18ID:B2kC2TB8
>>442
ごめんなさい書き間違えました
もとの方はdateでしたが、それでもダメでした
0447デフォルトの名無しさん2014/03/24(月) 22:49:23.82ID:KlVmlKLX
>>446
どんなふうにダメ?
やったこととエラーメッセージを貼って
0448デフォルトの名無しさん2014/03/24(月) 22:50:45.38ID:iN+OyuMJ
>>447
に何を聴いても質問しか返ってこない
なぜなら>>447ではわからないから
0449デフォルトの名無しさん2014/03/24(月) 23:05:26.07ID:Tnk79sXs
ダメでした。
0450デフォルトの名無しさん2014/03/25(火) 01:42:32.11ID:bvFcvrs8
Rubyはゴミ、さっさと諦めろ、Pythonにでも移れ馬鹿
ほんとゴミ脳でRubyを語ることがよくできるな
0451デフォルトの名無しさん2014/03/25(火) 08:06:55.97ID:MUsruA2v
オッパイより赤いルビーのほうがええんや
クリトリスを舌でチロチロやでぇ
0452デフォルトの名無しさん2014/03/25(火) 08:21:05.04ID:zUh15pRT
utf-8なスクリプトでdbiモジュールを使ってsel serverに接続するとascii-8bitとかわけわからんコードが帰ってくるどころか
sql文自体をwindows-31jで投げないとクエリ自体がエラーになるという…思わず初心者憤死
たった一行付けるだけでutf-8でやり取りできるように出来るという情報を見つけるまでに丸三日

…日本発なのに英語できないとダメなのねorz
0453デフォルトの名無しさん2014/03/25(火) 08:49:00.37ID:+foOGTJU
エンコーディング周りは言語関係なく必須知識だからなぁ
0454デフォルトの名無しさん2014/03/25(火) 10:43:26.21ID:K3vJXUKK
海外の人が作ったライブラリは海外の人の言語で説明されてるから仕方ないね

Rubyは日本人がコア開発者だが、外国人の作った英語説明つきライブラリを日本語に訳す機能はないし
外国人の作った英語説明サイトを日本語に訳す機能もない
0455デフォルトの名無しさん2014/03/25(火) 12:07:08.90ID:slP3N4Xw
mod_ruby の代わりは何を使ってます?
0456デフォルトの名無しさん2014/03/25(火) 12:50:35.26ID:bvFcvrs8
ゴミRuby使ってるアホはネトウヨ
これ真理な
0457デフォルトの名無しさん2014/03/25(火) 22:51:02.36ID:i+zmUVEy
ネトウヨなら日本語でプログラムを書くのでは(名推理)
0458デフォルトの名無しさん2014/03/26(水) 00:25:37.73ID:GkcGuB2r
Javaは、名前に日本語つかえるよ
0459デフォルトの名無しさん2014/03/26(水) 01:38:19.33ID:vUs5dc2p
mechanize の質問をしてもよいですか?
http://c.cocacola.co.jp/ に自動ログインするスクリプトを書いたのですが、サイトのリニューアルでログインできなくなりました。
以前は単純なログインフォームだったのですが、今は、agent.page.formsで該当のログインフォームが見つかりません。
ブラウザで見るとログインフォームはあるのですが、どのように調べればよいでしょうか?
0460デフォルトの名無しさん2014/03/26(水) 02:05:53.37ID:ybtB2GSh
>>454
google翻訳を使うべし
英単語と日本語が、1対1で表示されるし、
訳が出たあとで、単語の対応を変えられる

それで片端から、公表すればよい

Eclipse MergeDoc もそう
単語のデータベースがあって、みんなで用語を統一している
0461デフォルトの名無しさん2014/03/26(水) 02:18:21.01ID:XnxEs4mF
>>459
HTMLを自力で理解して読めないとMechanizeは使えない
>ブラウザで見るとログインフォームはあるのですが
なんて言ってる人には無理
0462デフォルトの名無しさん2014/03/26(水) 02:49:32.17ID:ybtB2GSh
>>459
HTMLのソースコードを開いて、その中を、form で検索してみ
<form> </form>で囲まれた中が、フォーム関連

その中に、様々なフォームの部品
(コントロール、ウィジェット)がある

<input>は、入力欄
<textarea>は、複数行テキスト入力欄
<select>は、選択リスト
<button>は、ボタン

HTMLを解析するには、HTMLのタグの意味を知らないと
0463デフォルトの名無しさん2014/03/26(水) 05:17:25.21ID:Pcq/Kh4O
じゃあ、else if を見ていこう。
04644592014/03/26(水) 07:55:05.03ID:vUs5dc2p
>>462
すみません。上手く説明できていませんでした。ブラウザでソースを確認すると<form></form>はあるのですが、Mechanizeでアクセスするとそのformがsearchできないのです。
で、今思ったのは、javascriptで生成されたフォームなのかな?ということで、Mechanize以外の方法を考えてみます。
0465デフォルトの名無しさん2014/03/26(水) 13:55:24.86ID:2SW0uc9D
そもそも見てるファイルが違ったりしてな
0466デフォルトの名無しさん2014/03/26(水) 16:11:04.49ID:Ti6QfqQB
動的に生成してるからだよ
0467デフォルトの名無しさん2014/03/26(水) 22:37:26.74ID:N6ppR8Yn
質問させて下さい。rubyでCGIを作っています。
HTMLのテキストエリアに記載された文字をregist.cgiで表示させるサンプルを作ってみました。
半角英数字は正しく表示される事を確認しました。しかし全角文字が全く表示されません。
色々試しましたがまったく変わりません。上手く表示する方法を教えてください。
OS:windows 7 64bit
ruby:ruby 1.9.3p194 (2012-04-20) [i386-mingw32]
ブラウザ:FireFox 22.0
webサーバ:http://magazine.rubyist.net/?0011-CGIProgrammingForRubyBeginnersにあるrubima011-cgi.zipのserver.rbを使用

[index.html]
<!DOCTYPE html>
<html lang="ja">
<head><meta charset="Shift-JIS"><title>Sample System</title></head>
<body>
<form action="regist.cgi" method="get">
<textarea name="t" cols="20" rows="4">コードを記載して下さい</textarea><br>
<input type="submit" value="OK">
</form>
</body>
</html>

[rigist.cgi]
#!/usr/local/bin/ruby
print "Content-Type: text/html\n\n"
print "<html><head></head><body>"
require "cgi"
c = CGI.new
text = c["t"]
print text
print "<br>"
print "</body></html>"
0468デフォルトの名無しさん2014/03/26(水) 22:52:47.35ID:Sd7Ek0FC
ブラウザからフォームデータがShift_JISで送られてきてエンコードエラーで落ちている、に一票
0469デフォルトの名無しさん2014/03/26(水) 22:56:58.83ID:j+UsaIor
>>467
出力でcharset教えてないから、ブラウザがデフォルトのcharsetだと思って表示してんじゃないの。
0470デフォルトの名無しさん2014/03/26(水) 22:58:28.92ID:qHAM3H0L
確認してきたので >>468 にもう一票

[2014-03-26 22:55:46] ERROR CGIHandler: /home/.../rubima011-cgi/regist.cgi:
/usr/lib/ruby/2.1.0/cgi/core.rb:676:in `block (2 levels) in initialize_query': Accept-Charset encoding error (CGI::InvalidEncoding)

ドンピシャの記事
http://tmtms.hatenablog.com/entry/20120902/ruby_encoding
0471デフォルトの名無しさん2014/03/26(水) 23:05:05.45ID:nh+csio5
さんざんあちこちで言われてるけど、 regist はやめろ。
0472デフォルトの名無しさん2014/03/26(水) 23:13:27.28ID:qHAM3H0L
>>471
なぜ?
0473デフォルトの名無しさん2014/03/27(木) 00:30:54.69ID:6dxUJoHd
registなる英単語は存在しない。辞書で調べてみろ
0474デフォルトの名無しさん2014/03/27(木) 01:33:40.29ID:kgS7s8CD
>>467
charset="Shift-JIS"
普通は、"UTF-8" じゃないの?
0475デフォルトの名無しさん2014/03/27(木) 05:04:24.68ID:YolnPXC8
さんざんあちこちで言われてるけど、 CGIクラス はやめろ。
0476バカ2014/03/27(木) 07:58:42.50ID:P78HiJTL
regist 【動詞】 登録する
register 【名詞】 登録器 レジ
0477デフォルトの名無しさん2014/03/27(木) 08:30:17.37ID:9EZiObQu
>>473
なるほど。どうもありがとー
0478デフォルトの名無しさん2014/03/27(木) 20:51:57.34ID:BPFmA3wn
>>468-475
回答ありがとうございます。
エンコードに問題有りとの事だったので以下の様に修正した所、正しく表示されるようになりました。

・HTMLファイルのcharsetを変更
<meta charset="Shit-JIS"> → <meta charset="UTF-8">

・HTMLファイル保存時に「エンコードの種類」を変更
Shift-JIS → Unicode(UTF-8)

# $KCODE = "SJIS"とかにしても何も変わらなかったので・・・。
0479デフォルトの名無しさん2014/03/27(木) 22:48:27.08ID:1Iv5wAAz
Ruby1.9でKCODEは意味ないよ
0480デフォルトの名無しさん2014/03/28(金) 22:52:04.74ID:JN3aOKjp
rubyでフォーム認証CGIを作るサンプルってありませんか?
色々調べたんですが、HTMLの機能として付いているベーシック認証はダサいので使いたくないですし
たいていはruby on railsばっかりなので困っています(レンタルサーバだとrailsは使えないんですよね・・)

もし何か良いサンプルがありましたら是非教えて下さい。
0481デフォルトの名無しさん2014/03/28(金) 23:31:36.36ID:EdD5olOy
このご時世でCGIはさすがに情報が少ないだろうね

レンタルサーバでもherokuみたいなのもあるし、AWSやさくらを使う手もある
そういうのも選択肢に入れてみてはいかが?
0482デフォルトの名無しさん2014/03/28(金) 23:35:47.53ID:0Llxlo7P
古めの本とか買うといいかもね
0483デフォルトの名無しさん2014/03/29(土) 01:01:48.56ID:H58olU+6
>>480
HTTP認証がダサいかどうかは、ブラウザの問題では?
0484デフォルトの名無しさん2014/03/29(土) 01:43:17.54ID:yxjl4cT5
本当に知りたいのは、CGIじゃなくて認証システムのほうだな
0485デフォルトの名無しさん2014/03/29(土) 02:21:07.37ID:UFvyasfI
CGIだと情報が少ないよ、ってことだね
0486デフォルトの名無しさん2014/03/29(土) 05:21:40.84ID:oh5tVCzV
ジャアアアアアアアアアアアアアア。。。。。。。。。。。。。。。。。。。wwwwwwwwwwwwwwww
0487デフォルトの名無しさん2014/03/29(土) 10:07:19.57ID:KQZTo8Ge
cgi.rb
0488デフォルトの名無しさん2014/03/30(日) 13:14:08.87ID:Tfqgik4v
右翼団体って、さくら鯖に、なでしこでCGIを書くんだろ
0489デフォルトの名無しさん2014/03/30(日) 19:20:19.83ID:ctBuohCT
>>488
やつらはダメリカの利益団体だから、Microsoft なサーバーに ASP の一択だろう、 LAMP すら拒絶するのでは?
ホスティング業者なぞどこでもいい
0490デフォルトの名無しさん2014/03/30(日) 23:56:17.50ID:vrktFi0k
右翼なのに親米というのは辞書と辻褄が合わねえな
そういう時は、混同のないようウヨという言葉を使いなさい
0491デフォルトの名無しさん2014/03/31(月) 00:11:09.54ID:YuwcCGee
今は石原シン○ロウみたいな反米右翼が絶滅
いても街宣朝鮮右翼しかいない

戦前の日本に戻ってくれや
0492デフォルトの名無しさん2014/03/31(月) 02:39:18.54ID:Gc3u5wUc
>>490
おいおい、お前、右翼を勘違いしているぞ

右翼が愛国者なら原爆投下による非武装市民の無差別殺戮を非難するはずだが
そんな右翼をみたことあるのか?
軍歌を放唱し国を愛でる、といいながら顔はダメリカを向いていることに今まで気づいていないのか、恥ずかしいやつだ

>>491
チンタロウは文人あがりなんでちょっと特殊だ
0493デフォルトの名無しさん2014/03/31(月) 07:21:01.72ID:8z/Wyvf8
よそでやれ
スレ違いもはなはだしい
0494デフォルトの名無しさん2014/03/31(月) 07:40:31.67ID:snXHFGZ8
彼らは韓国産のプログラミング言語がないので、
日本産のプログラミング言語がねたましいと言っているんだ
0495デフォルトの名無しさん2014/03/31(月) 11:39:37.35ID:i1qC9/3k
ν速+に帰れカスウヨ
0496デフォルトの名無しさん2014/03/31(月) 15:01:46.40ID:AilFR+xR
すごくよくわかる流れで笑
0497デフォルトの名無しさん2014/04/04(金) 06:12:52.67ID:UIgW7/7P
ひろゆきがミスって2chもアメリカ人に乗っ取られたし
あんまり空気伝わってこないだけでかなりあっちは既に反日化してるだろ

4月6日に新2ch誕生するから反米右翼マは移動しろや
0498デフォルトの名無しさん2014/04/04(金) 06:18:13.91ID:UIgW7/7P
まぁ専門的板は、政治に対して中立だから良いものの
政治やニュースなんてほんと終了だからな

日本人以外の管理するサイトでネット世論の操作なんて、どんな事になっていくか
今後は謎のアメポチ大量発生が予想される
0499デフォルトの名無しさん2014/04/04(金) 12:02:20.00ID:eePHkA+i
反米ウヨでも親米ウヨでも自由だが、ν即でやれ

アフィカス天国を放置したひろゆきを支持する2ちゃんねらーなんていねーよ
0500デフォルトの名無しさん2014/04/04(金) 18:33:32.71ID:do491lEW
メタプログラミングRubyを読みました
最後の章でRailsのコードについての解説がありましたが、ここまで動的で、メタなプログラミングは「やり過ぎ」なのではないかという印象を受けました
こんなにわかりづらくメタにプログラミングをするくらいなら重複表現をしてでも愚直に書いていったほうが、保守性も可読性も高まるのではないかと感じます
このように考えてしまうのは、私がコードをまともに書いたことがない初心者だからなのでしょうか?それとも自分のように考える人も一定数いるのでしょうか
0501デフォルトの名無しさん2014/04/04(金) 21:43:01.24ID:EPWSnKIo
>>500
Railsのスクリプトは素のRubyとは比べ物にならないくらい普及してるから問題なし
要は共通の理解があるかどうかだ
お前がチーム内で勝手に「ぼくのかんがえたさいきょうのRuby」で書いたら
そりゃレビューでボコボコに叩かれてクビが飛ぶだろうね
0502デフォルトの名無しさん2014/04/05(土) 23:19:19.43ID:j2Ymk93L
ocraを使いこんにちは世界をcmdに表示するexeを作成したのですが
cmd上で一瞬こんにちは世界が表示されすぐにcmdが閉じてしまいます
cmdを閉じないような設定はできないでしょうか?
0503デフォルトの名無しさん2014/04/06(日) 00:45:30.08ID:jGn/ohiM
特定のhtmlのテンプレートに一部(idなどで特定可能)にデータを埋め込みたいんですが
その場合、どういうライブラリ使うのが王道なのでしょうか

hpricotは開発終了したとのことなのでnokogiri?
とはいえ、これはスクレイピングのライブラリっぽくてhtml生成とは違うっぽいのですが

できれば標準ライブラリにあれば助かります
0504デフォルトの名無しさん2014/04/06(日) 01:33:51.17ID:lcQBK2Mz
>>502
まずcmd.exeを起動して、そこでocraで作ったexeを実行すればいいのでは

explorerから実行したいのなら、「こんにちは世界」を表示したあとに
1行入力するなど待ち処理を入れてみては
05055032014/04/06(日) 02:58:52.24ID:jGn/ohiM
解決しました
0506デフォルトの名無しさん2014/04/06(日) 09:39:57.23ID:uTfGcida
受け取った引数を別のメソッドに全部そのまま渡すのってどうしたらいいの?
JavaScriptだとargumentsで渡せるんだけど。
0507デフォルトの名無しさん2014/04/06(日) 09:58:01.98ID:Ben6iKqN
>>506
http://docs.ruby-lang.org/ja/2.1.0/method/Proc/i/parameters.html
0508デフォルトの名無しさん2014/04/06(日) 10:45:31.03ID:uTfGcida
>>507
なんかちがうくね?
0509デフォルトの名無しさん2014/04/06(日) 10:52:46.32ID:AUPUS+0I
>>508
def hoge *args
fuga * args
end
0510デフォルトの名無しさん2014/04/06(日) 10:54:46.17ID:uTfGcida
>>509
そうせずにやる方法なんだけど。
えと、JavaScriptのargumentsって知ってる?
0511デフォルトの名無しさん2014/04/06(日) 11:21:16.16ID:CO3q3128
わざわざ分かりにくい方法でやりたがる意味がわからない
JavaScriptでもapply使わなきゃいけないだろ
0512デフォルトの名無しさん2014/04/06(日) 11:26:42.20ID:Pke5Ijp8
× 分かりにくい
○ カッコイイ
0513デフォルトの名無しさん2014/04/06(日) 11:34:07.29ID:AUPUS+0I
hoge *self.method(__callee__).reject{|a|a.first==:block}.map(&:last).map{|s|eval(s.to_s)}
0514デフォルトの名無しさん2014/04/06(日) 11:54:39.37ID:uTfGcida
んと

def foo(a:1, b:2)
 bar(arguments)
end

みたいにしいてfooに与えられた引数をそのままbarに投げ込みたいんだけど
0515デフォルトの名無しさん2014/04/06(日) 11:58:34.99ID:AUPUS+0I
>>514
def hoge a, b, c
fuga(*self.method(__callee__).reject{|a|a.first==:block}.map(&:last).map{|s|eval(s.to_s)})
end
0516デフォルトの名無しさん2014/04/06(日) 12:27:36.56ID:uTfGcida
>>515
(#^ω^)ピキピキ
0517デフォルトの名無しさん2014/04/06(日) 12:40:15.03ID:AUPUS+0I
>>516
おっとすまない、aがカブってたな。
0518デフォルトの名無しさん2014/04/07(月) 20:14:47.93ID:0DYJf23T
rubyの基本的なものは理解したけど、この先どうすればいいかわからなくなった。railsとかよくわからないし、アプリとかつくるとかするにはどのサイトとか見ればいい?
0519デフォルトの名無しさん2014/04/07(月) 20:33:11.26ID:KFUO0v2u
>>518
やるべきことがないなら、何もしなくていいよ。
0520デフォルトの名無しさん2014/04/07(月) 20:34:00.34ID:cPHU7Y9F
Ruby/GTK
0521デフォルトの名無しさん2014/04/07(月) 20:37:18.44ID:NmZfms6a
「rubyの基本的なものは理解したけど」

むせかえるような知ったか臭。
0522デフォルトの名無しさん2014/04/07(月) 20:47:28.66ID:0DYJf23T
叩かれるとは思わんかったwwwwwromに徹しとくwwwwww
0523デフォルトの名無しさん2014/04/07(月) 20:48:31.51ID:lQVPGrC1
言語仕様だけ勉強したという意味だと思う。

だとすればフレームワークのチュートリアルでもやればいいのにと思った。
0524デフォルトの名無しさん2014/04/07(月) 20:50:40.72ID:0DYJf23T
>>523
やさしいのな
ありがとう
調べてみる


言葉足らずな俺も悪いがなwwww
0525デフォルトの名無しさん2014/04/07(月) 20:56:41.61ID:NmZfms6a
?
0526デフォルトの名無しさん2014/04/07(月) 21:33:06.86ID:rs5mnGWM
Duck Typing の考え方は分かる。
しかし、何に向いていて、何に向かないものなのかイマイチ判らない。

教えてくださいエロい人。
0527デフォルトの名無しさん2014/04/07(月) 22:29:54.45ID:si1QDK3r
>>526
無理して使わなくてもよい
Rubyにおける日常なダックタイピングは、せいぜい
「引数オブジェクトのクラスチェックはせず、エラーが出るに任せる」程度

もちろんそれだと致命的な場合は引数オブジェクトのクラスのチェックをする
もちろんそのときはダックタイピングの恩恵は受けてはいないことになる

その程度
0528デフォルトの名無しさん2014/04/07(月) 22:31:29.65ID:aChPVlpJ
事前にリンクをすることなくクラスシステムを実装する手段がダックタイピングということ
ダックタイピングが目的ではないよ
ダックタイピングを活用したコードは一般的には糞コードと呼ばれる
0529デフォルトの名無しさん2014/04/07(月) 23:34:12.45ID:rs5mnGWM
>>527-528
参考になった。
やっぱなるべく使わない方がいいんだね。

借金職人の娘を質に取った越後屋さんが、
「なぁ、お前、toString くらいは持っとるんやろ?なぁ?それくらい持っとらんとあかんわなぁ?」(ゲス顔)
「toString 発動したるわー!」
と迫って実際発動する様子が思い浮かんだ。

イメージは合ってると思う。
0530デフォルトの名無しさん2014/04/07(月) 23:36:52.23ID:2mFu56Lz
お前がjavaあたりの使用者ということはわかった
0531デフォルトの名無しさん2014/04/07(月) 23:46:26.41ID:rs5mnGWM
>>530
Java嫌いでちょっとムカッと来たから言うけど、ごめん、全然違う。
文字列化は大抵の言語が持ってるから、適当に書いただけ。
0532デフォルトの名無しさん2014/04/07(月) 23:56:40.04ID:/ZasYlq5
C#とかD言語にもObject.toStringはあるもんね
0533デフォルトの名無しさん2014/04/08(火) 00:02:32.77ID:earNJzDQ
array = [1,2,3,4,5,6,7,8,9]

array. ???(4) #=> [ [1,2,3,4], [5,6,7,8], [9] ]



こんなメソッドありませんでしたっけ?
0534デフォルトの名無しさん2014/04/08(火) 00:05:03.48ID:rmissEKo
[*1..9].each_slice(4).to_a # => [[1, 2, 3, 4], [5, 6, 7, 8], [9]]
0535デフォルトの名無しさん2014/04/08(火) 00:09:26.62ID:rmissEKo
Range使うなら配列化は最後だけでいいな……
05365332014/04/08(火) 00:20:53.76ID:earNJzDQ
ありがとうございました。
多分railsのin_group_ofを想起していたのかもしれません
0537デフォルトの名無しさん2014/04/08(火) 11:04:29.17ID:xXmrjQau
each_sliceを使わない場合、

a=[*1..9]
b=[]
b << a.shift(4) while a[0] #あるいは until a.empty? 
p b
で解決できるところまではわかりましたが

while a . method? という形ではできませんか?
a.present? や a.exist? は無理でした
0538デフォルトの名無しさん2014/04/08(火) 11:06:20.20ID:xXmrjQau
↑ 
メソッドに ? は付いてなくてもOKです
0539デフォルトの名無しさん2014/04/08(火) 11:10:14.50ID:iDOzvnzB
>each_sliceを使わない場合
現状、そんなことがあるとは思えないんだが
内部イテレータ使えないコレクションとかだろうか
0540デフォルトの名無しさん2014/04/08(火) 11:30:04.57ID:xXmrjQau
each_sliceの存在自体(あるかどうかも)知らなかった場合にってことです。
普通は(基本に忠実にするなら)どうやるのかな?と。

一通りArrayのメソッド調べた方がいいという意見があるのもごもっともですが。。
0541デフォルトの名無しさん2014/04/08(火) 19:39:27.13ID:MyudluU2
unicornとpassenserならどっちがrubyに向いてますか?
0542デフォルトの名無しさん2014/04/08(火) 19:48:10.04ID:UFpotgBw
どっちもOK
0543デフォルトの名無しさん2014/04/08(火) 19:49:06.78ID:9wIzdaaz
>>540
つ while a.first
0544デフォルトの名無しさん2014/04/08(火) 20:57:37.16ID:F72OSz/O
a.first でもいいだろうけど
要素にfalseやnilが入っていると誤動作するので

素直に
while !a.empty?
の方がいいような
0545デフォルトの名無しさん2014/04/08(火) 21:02:03.14ID:9wIzdaaz
while a[0]がアリなら良いのかと思った
0546デフォルトの名無しさん2014/04/08(火) 22:53:39.51ID:wRN5ly4t
BATファイルで実行

pauseって最期の行に入れておけばいいよw
0547デフォルトの名無しさん2014/04/09(水) 00:39:04.55ID:xEgtzZvG
ruby on railsの環境構築面倒くさすぎる
どうにかならんのか?
0548デフォルトの名無しさん2014/04/09(水) 00:44:55.22ID:YKddGIT0
railsは簡単すぎるぐらいなんだけどwwwwwwwwwwwwwwwwwwwwwwwwwww
おまえ向いてねえわwwwwwwwwwwwwwwww
0549デフォルトの名無しさん2014/04/09(水) 00:46:30.65ID:BYGGYeeL
git clone
bundle install
rake db:migrate
じゃだめなんだろうか
0550デフォルトの名無しさん2014/04/09(水) 01:00:48.66ID:xEgtzZvG
windowsな
0551デフォルトの名無しさん2014/04/09(水) 01:01:09.26ID:BYGGYeeL
>>550
windowsでも同じことじゃん
0552デフォルトの名無しさん2014/04/09(水) 01:10:27.88ID:xEgtzZvG
いやdevkitとかgemとか
エラーでてめんどかった
0553デフォルトの名無しさん2014/04/09(水) 01:11:42.94ID:BYGGYeeL
っつーかwindowsでなんでやんだろ
0554デフォルトの名無しさん2014/04/09(水) 02:05:25.16ID:OJT2GfjE
Windows向けには、
railsの入ったテキトーなvagrant boxでも作って配れば万事解決しそうな気がする。
0555デフォルトの名無しさん2014/04/09(水) 08:21:07.47ID:obmDYRnv
つRailsInstaller
0556デフォルトの名無しさん2014/04/09(水) 09:31:40.49ID:k/5jkwC/
>>540
今時のまともな言語ならeach_sliceくらいある
ないのに使わざるを得ないのがC言語

古いC言語のソース漁ってればいくらでもそういう無駄なアルゴリズム出てくるよ
0557デフォルトの名無しさん2014/04/09(水) 18:13:22.90ID:Cj9cJjUi
無くても困らないのがC言語
0558デフォルトの名無しさん2014/04/09(水) 22:23:32.13ID:Il0l8m2A
gemが増えるとわけがわからなくなるのでプロジェクト単位でわけたいのです。
markdownでメモができるのでgollumが使いたいのですが
bundle initしてGemlocalにgem "gollum"を追記したのですが、ここでbundle installでOKですか?
0559デフォルトの名無しさん2014/04/09(水) 22:47:54.10ID:yWBpF3Rt
たのしいの次は何を読むと良いのだろ?
05605582014/04/09(水) 22:51:21.40ID:Il0l8m2A
gemをローカルにインストールするところまではできたんですが
インストールしたコマンドが使えません
どうやらグローバルのgemをみにいっているようです
ローカルにインストールしたgemはどうつかうのでしょうか?
05615582014/04/09(水) 22:52:41.36ID:Il0l8m2A
bundle execでできました
0562デフォルトの名無しさん2014/04/10(木) 00:37:30.37ID:iELl6sqR
gollumに指定したテンプレートを読みこませる方法を教えてください
gollumをインストールしたところのtemplatesディレクトリを汚したくないのです
0563デフォルトの名無しさん2014/04/10(木) 07:50:33.02ID:+jOFl0o7
>>559
パーフェクトRubyで良いと思う
0564デフォルトの名無しさん2014/04/10(木) 20:40:36.99ID:s0fbxtsy
CSVを上から下にみていって

A列とB列があり
A列とB列の組み合わせがユニークであればB列を配列にいれていきたいんですが・・・

A列とB列でユニークってどうやるんでしょうか

uniq do |x| { x.A + x.B } ではうまくいきませんでした
0565デフォルトの名無しさん2014/04/10(木) 22:06:53.38ID:dRecdSBU
Array#group_by を使えばいいかな
0566デフォルトの名無しさん2014/04/10(木) 23:40:36.36ID:PtHPMyvc
タイムゾーンをAsia/Tokyoみたいに地域名で日時を取得できる夏時間対応のライブラリを教えてください
0567デフォルトの名無しさん2014/04/11(金) 07:08:17.55ID:pa/L3E3d
tzinfo
0568デフォルトの名無しさん2014/04/11(金) 07:24:45.49ID:vQUcF6zB
>>565
group_byではダメでした・・・

p [
{name:"Tanaka", city:"X"},
{name:"Tanaka", city:"Y"},
{name:"Tanaka", city:"Y"},
{name:"Suzuki", city:"X"},
{name:"Sato", city:"Z"}
].group_by {|item| item[:name] + item[:city] }


期待している戻り値は↓こんな感じなんです・・・
[
{name:"Tanaka", city:"X"},
{name:"Tanaka", city:"Y"},
{name:"Suzuki", city:"X"},
{name:"Sato", city:"Z"}
]



って普通にuniqでブロックなしでできるようですね・・・
0569デフォルトの名無しさん2014/04/11(金) 08:22:18.07ID:FCtgIT4m
>>568
irb(main):001:0> require 'pp'
=> true
irb(main):002:0> pp [
irb(main):003:1* {name:"Tanaka", city:"X"},
irb(main):004:1* {name:"Tanaka", city:"Y"},
irb(main):005:1* {name:"Tanaka", city:"Y"},
irb(main):006:1* {name:"Suzuki", city:"X"},
irb(main):007:1* {name:"Sato", city:"Z"}
irb(main):008:1> ].each_with_object({}){|l,h|h[l]=h.size unless h[l]}.sort{|a,b|a[1]<=>b[1]}.map{|x|x[0]}
[{:name=>"Tanaka", :city=>"X"},
{:name=>"Tanaka", :city=>"Y"},
{:name=>"Suzuki", :city=>"X"},
{:name=>"Sato", :city=>"Z"}]
=> [{:name=>"Tanaka", :city=>"X"}, {:name=>"Tanaka", :city=>"Y"}, {:name=>"Suzuki", :city=>"X"}, {:name=>"Sato", :city=>"Z"}]
0570デフォルトの名無しさん2014/04/11(金) 08:25:04.85ID:FCtgIT4m
ってuniqでいけるのか、はずいw
0571デフォルトの名無しさん2014/04/11(金) 11:07:08.18ID:057GiJd2
Rubyでも明示的に関数の中でreturnを書くべきだって記事があったんですが誰か知りませんか?
たしか海外だったかメーリングリストだったか忘れましたが英語で読んだ気がしました
0572デフォルトの名無しさん2014/04/11(金) 11:29:51.90ID:rxw795VW
Rubyでは関数(function)なんて名前で呼ばないので勘違いだと思う

前にもあったけど、Rubyにおけるreturnは「メソッド途中で処理を打ち切って脱出する」効果を期待されている
そうじゃないふつーの処理終端にreturnがあっても戸惑うだけなので、ふつーは書かないほうが好ましい
0573デフォルトの名無しさん2014/04/11(金) 12:09:22.34ID:2p2lfK5U
英語じゃないけどこれかなぁ
http://shugo.net/ruby-codeconv/codeconv.html
0574デフォルトの名無しさん2014/04/11(金) 12:10:13.60ID:2p2lfK5U
このコーディング規約、「そうか?」って思う部分が多いから俺は半分ぐらい従ってないw
0575デフォルトの名無しさん2014/04/11(金) 12:12:22.62ID:p73oIqgQ
それ単にシュウゴさんの規約やんw
0576デフォルトの名無しさん2014/04/11(金) 12:19:58.33ID:2p2lfK5U
ぶっちゃけ誰か知らないけど、るびまの記事読んでたときにどっかで見つけた
0577デフォルトの名無しさん2014/04/14(月) 20:39:07.82ID:iR5K0mS2
Rubyのkernel moduleのソースコードはどこにあるのでしょうか
GitHubのリポジトリ見てもそのままのファイル名じゃ見つからないのですが
0578デフォルトの名無しさん2014/04/14(月) 23:23:05.10ID:LkM4dasY
単一のファイルに定義されているようでは無いようですね
様々なクラスのファイルでそのクラスに関連する
Kernel module メソッドが定義されているようです
io.cでは入出力関連のメソッド等が
rb_define_global_function("puts", rb_f_puts, -1);
のように定義されてます
0579デフォルトの名無しさん2014/04/14(月) 23:56:24.88ID:kWDr4VVU
rubyというかrspecの質問です

func(hash) def
func.sort_by{ |key| key[;hoge]}
end

のような関数があったときに、それのspecはどう書いたらいいのでしょうか

sort_byが無いといわれ
@hash.stub(:sort_by)を作ってexpectしてもねぇよといわれ
助けてください
0580デフォルトの名無しさん2014/04/15(火) 00:09:24.79ID:SLO7aDPh
>>579
> func.sort_by{ |key| key[;hoge]}
func.sort_byはhash.sort_byかと思ったが key[;hoge]ってなんやねん。
さっぱりわからん。
0581デフォルトの名無しさん2014/04/15(火) 00:28:01.21ID:7Uo+TE2s
このページのHello Worldを表示させた後
http://gihyo.jp/dev/serial/01/ruby/0007

[2014-04-15 00:21:46] INFO WEBrick::HTTPServer#start: pid=4124 port=4567
と表示されたまま、$マークが出ないんですけどターミナル窓を閉じないで戻すにはどうしたらいいでしょうか?
(ターミナル窓を閉じてまた開いたら初期状態で$マーク表示されます。)
0582デフォルトの名無しさん2014/04/15(火) 00:34:28.10ID:SLO7aDPh
>>581
WEBrickは何も設定しなければSIGINTじゃ死なないから、
Ctrl+Zでsuspendしてkill %1すれば?bashだよね?
0583デフォルトの名無しさん2014/04/15(火) 00:37:28.68ID:SLO7aDPh
あっとごめん、SIGTERMも無視されちゃうっけか。
kill -KILL %1で。
0584デフォルトの名無しさん2014/04/15(火) 00:51:15.84ID:7Uo+TE2s
>>583
レスありがとうございます。
「kill -KILL %1」と入力したのですが反応なしです。

ちなみに矢印キーを上下右左と入力すると
^[[A^[[B^[[C^[[D
のような文字が表示されます。
意味はないかもしれないですけど一応。

bashですね。
mac osx 10.8.5のターミナルです。
0585デフォルトの名無しさん2014/04/15(火) 00:57:39.33ID:SLO7aDPh
>>584
Ctrl-Zして、$が出てからやった?
0586デフォルトの名無しさん2014/04/15(火) 00:58:21.67ID:SLO7aDPh
>>584
Macだともしかすると勘違いしてるかもしれないけど、Cmd-Zじゃだめだよ
0587デフォルトの名無しさん2014/04/15(火) 01:07:16.17ID:7Uo+TE2s
>>586
Ctrl−Z→kill -KILL %1
おお〜出来ました!!
ありがとうございました(ツ)
0588デフォルトの名無しさん2014/04/15(火) 01:13:51.49ID:uo5u1Anq
>>578
thx
0589デフォルトの名無しさん2014/04/15(火) 02:07:49.26ID:+Ewz/KaG
そろそろ標準コーディング規約のディスカッションをしてほしいものだ
まつもとさんやってくれよ
個人のガラパゴス規約なんて使い物にならねえんだよ
0590デフォルトの名無しさん2014/04/15(火) 03:15:57.48ID:NBmnLC74
Rubyにコーディング規約とか要らぬ
最高に中二病なコードを書けば良いのだYO
0591デフォルトの名無しさん2014/04/17(木) 17:29:05.96ID:shok1Heb
バージョンが大台に乗ったのはいいが、2.0以降に対応したまともなデバッガって無いよね。
0592デフォルトの名無しさん2014/04/17(木) 18:31:08.04ID:240PSJ19
配列の入れ子数(Max階層)調べる定石ってどんなのありますか?

a = [1 , 2 , [3 , [4 , 5] ,6] , 7]
だとMax3階層、みたいな
0593デフォルトの名無しさん2014/04/17(木) 19:00:23.01ID:MnJ2M0/J
用途不明で需要もなさそうだしさすがに無いんじゃないの?
pretty_printでざっくりといけるだろうけど
速度が必要なら自前で書くのが無難かな
数行レベルだろうし
0594デフォルトの名無しさん2014/04/17(木) 19:06:30.93ID:dT2SU6Q4
地味にめんどくさそうだな・・・
0595デフォルトの名無しさん2014/04/17(木) 19:08:34.31ID:7RVMQXR0
めちゃくちゃ一般的には必要ない処理だと思う
なにするのに使うん?
0596デフォルトの名無しさん2014/04/17(木) 19:18:18.23ID:dT2SU6Q4
ちょっと待って、これどう?w

ary.to_s.gsub(/[^¥[¥]]/, "").scan(/¥[+/).sort.last.size
0597デフォルトの名無しさん2014/04/17(木) 19:20:23.28ID:dT2SU6Q4
いやすまんぜんぜんだめだったわ
もうちょい待って
05985922014/04/17(木) 19:24:14.52ID:240PSJ19
レスありがとうございます。
ただのRubyのお勉強中で
これってどうやるんだろう?と思った次第なだけで
用途とかは全然ないです
0599デフォルトの名無しさん2014/04/17(木) 19:30:47.08ID:dT2SU6Q4
イケてないコードだけど出来たよ

def max_hierarchy(array)

max = 0
now = 0

array.to_s.gsub(/[^¥[¥]]/, "").each_char do |bracket|
now += bracket == '[' ? 1 : -1
max = now if max < now
end

max
end

ary = [[[1]],[2], [[[2]],2]]

puts max_hierarchy(ary)
0600デフォルトの名無しさん2014/04/17(木) 19:30:56.97ID:1EFla3P0
空の配列はカウントするの?
リンクは忍者修行中とかで貼れなかった
ideone.com/2AW1E6
0601デフォルトの名無しさん2014/04/17(木) 19:32:53.52ID:dT2SU6Q4
普通にやるとやっぱり再帰になるよね
頭こんがらがるからニガテ
0602デフォルトの名無しさん2014/04/17(木) 19:36:29.64ID:nVSRpDlc
>>592
ほい。

a = [1 , 2 , [3 , [4 , 5] ,6] , 7]
level = 0
level += 1 until a.flatten.size == a.flatten(level).size
p level

ただし、max2階層っていう扱いになるのでお好きに+1してね。
0603デフォルトの名無しさん2014/04/17(木) 19:38:05.98ID:dT2SU6Q4
flattenって引数取れたのか・・・!
まだまだ初心者だな俺
でしゃばんのやーめよ
0604デフォルトの名無しさん2014/04/17(木) 19:46:05.75ID:8CBaZq3z
>>591
byebug
06056022014/04/17(木) 19:47:55.23ID:TFtk1ZRN
あ、いちおう断っておくけど>>602が定石っていうわけでは無いです。
参考までに、ってことでよろしく。
0606デフォルトの名無しさん2014/04/17(木) 19:48:50.15ID:240PSJ19
おーすごい
色々な方法あるんですね
どれも額縁に飾っておきます。ありがとうございましたー
0607デフォルトの名無しさん2014/04/17(木) 22:02:50.25ID:8L54DV8h
みんなはRubyの開発は何でやってる?
やっぱりEclipse+RDT?RDEとか使ってる人はいる?
0608デフォルトの名無しさん2014/04/17(木) 23:15:23.51ID:YGl2/sA9
unicorn単発で127.0.0.1からのアクセスのみページを見せたいんですが
それ以外はどうやって拒否するんでしょうか?
apache||nginxがないとアクセス制限はできないですかね?
0609デフォルトの名無しさん2014/04/17(木) 23:37:45.98ID:qltpsmYg
rails 4.1.0をwindows8.1 64bit にインストールしていざ rails sコマンドを打ち込むと、tzinfoというgemが読み込めないみたいなエラーがでます。
0610デフォルトの名無しさん2014/04/18(金) 00:02:28.66ID:EwFywfvr
漏れは、Win8だけど、Win8でRubyできるの?
出来たら報告して
0611デフォルトの名無しさん2014/04/18(金) 00:05:09.28ID:5ZSBe340
>>607
Rubyはテキストエディタだろ
0612デフォルトの名無しさん2014/04/18(金) 00:43:07.67ID:ruxS2fPz
>>604
ありがとう。
言葉足らずでごめん。
CUIじゃなくてeclipseで使いたいんだ。
だからデバッグエンジンが欲しいんです。
0613デフォルトの名無しさん2014/04/18(金) 01:34:40.43ID:/cnIE1rp
pやpp、putsで頑張れ
0614デフォルトの名無しさん2014/04/18(金) 01:53:38.71ID:G95hrNw/
>>607
vim
0615デフォルトの名無しさん2014/04/18(金) 07:05:28.88ID:LRXTJMOG
pry という手もある
0616デフォルトの名無しさん2014/04/18(金) 21:02:29.83ID:tsD9/Dp0
MacからLinuxにフォルダとファイルを移動したいです。
LinuxはUTF-8でファイル名の長さが255byteまでの為、UTF-8で数えた時に
255byte以上のファイル名フォルダ名をrubyプログラムで検索し、フルパスを
リストに出力したいです。

Macで3byte扱う文字もある為、255byte/3byte=85文字以上のMacファイル名と
フォルダ名を出力したいです。byteでも文字数カウントでもどちらでも構いません。

いつもはシェル上のfindを使っているためrubyのfind術がわかりません。
データは1T以上あるので、実行速度は遅くても全く構いません。

ご教授よろしくお願い致します。

MacOSX 10.6.8
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0]
0617デフォルトの名無しさん2014/04/18(金) 22:00:04.42ID:G95hrNw/
>>616
Dir.glob('/**/*')
0618デフォルトの名無しさん2014/04/18(金) 22:10:53.96ID:En85Wqq5
>>636
軽く調べたところ
UTF-8-MACかUTF-8かの違いぐらいだから
シェルに慣れてるならシェルでやればいいんじゃない?
find,awk,iconv,wc,mv あたりの基本コマンドでいける。
Rubyでやるなら、glob,encode,bytes.to_a,sizeぐらいかな…
ちなみに自分は
$ ? | ? | ?
とかで確認して
$ ? | ? | ? | sh
とする似非dryrunが好きです
0619デフォルトの名無しさん2014/04/19(土) 00:04:51.83ID:pXx4aqQF
>>616
Windowsしか持ってないけどこんなのか?
Dir.glob('/**/*') do |path|
basename = File.basename(path)
puts path if basename.encode('UTF-8').bytesize > 255
end
0620デフォルトの名無しさん2014/04/19(土) 00:08:50.63ID:A1Y73b0i
特段根拠があるわけではないが、自作しないほうがいいような気がちらっとする
0621デフォルトの名無しさん2014/04/19(土) 01:04:45.98ID:e0JtnAk1
そんなんautomatorでよくね?
0622デフォルトの名無しさん2014/04/19(土) 14:06:37.31ID:9b14v82/
>>616
convmv
というperlスクリプトを使うのが簡単らしい
$ convmv -t utf-8 --nfc -f utf-8 --nfd -r .
確認して
$ convmv -t utf-8 --nfc -f utf-8 --nfd -r . --notest

ファイル名の最大はどちらも255byteで同じだし
NFD->NFCの変換でサイズがでかくなることはない(と思う)ので
サイズチェックは不要かと
0623デフォルトの名無しさん2014/04/19(土) 14:24:43.28ID:/Zpiftkq
617からの皆様、コメントありがとうございます。
Dir.glob('/**/*')は知りませんでした。早速勉強してみます。

>>618さん
ありがとうございます。
linuxにファイルパスと、ファイル名それぞれに1023byte、255byteの
制限があるので文字数カウントは避け、バイト数で組むことに変えようと思います。

>>619さん
ありがとうございます。

>>621さん
automatorは全く学んでないのですが、619さんのコードよりも簡単に
なるのでしょうか?
automatorは汎用性がないと勝手に思っているので、速度が倍違うとか
半分のコードとか、簡潔なコードで済むのでないかぎり避けたいと思います。
0624デフォルトの名無しさん2014/04/19(土) 14:29:39.55ID:3ip4HVEJ
automatorからもRuby使えるし組み合わせれば
0625デフォルトの名無しさん2014/04/19(土) 14:53:54.28ID:/Zpiftkq
>>622さん
ありがとうございます。
perlは日本語処理がrubyに劣ると思っていましたが今は違うのでしょうか?
perlでも構いません。話しが続くのでしたらスレを移動します。
その前に619程度のperlコードは欲しいです。

>ファイル名の最大はどちらも255byteで同じ

問題はファイル名の長さの取り扱いがlinuxとmacで異なります。
linuxは255byteでmacはutf-16で255文字。
Macは濁音・半濁音をも一文字とカウントします。
例えば「ぱ」は「は」と「゜」で2文字らしいです。
0626デフォルトの名無しさん2014/04/19(土) 14:55:40.28ID:/Zpiftkq
>>624
すいません。同じ方かわかりませんが、具体的automatorコードはありますか?
なければ結構です。ありがとうございました。
0627デフォルトの名無しさん2014/04/19(土) 15:05:56.16ID:7EPIcXRA
unlessが存在する意義はあるんですか?
ifでいいじゃないですか
こんな余計なものを実装してるところが汚いですよね
PHPと同様Rubyも汚い言語だと思いますよ
0628デフォルトの名無しさん2014/04/19(土) 15:06:56.89ID:3ip4HVEJ
AutomatorからもRuby使える、って言っただけなのに具体的なソース提示しろとかなんか腹立つな
0629デフォルトの名無しさん2014/04/19(土) 15:08:29.07ID:7EPIcXRA
そもそも同じ処理をいろんな書き方ができる事自体がおかしいんですよ
0630デフォルトの名無しさん2014/04/19(土) 15:30:26.20ID:9b14v82/
>>625
utf16だったのか
失礼
0631デフォルトの名無しさん2014/04/19(土) 16:04:22.94ID:/yg2gOxj
汚染漏れ (かもしれない) 問題の報告って [email protected] 宛てになるの? https://bags.ruby-lang.org/ じゃダメ?
0632デフォルトの名無しさん2014/04/19(土) 16:07:00.30ID:RzhKyGN6
セキュリティ関連は、BTSに登録してしまうと、未解決のうちに公開されてしまうことになって
よろしくないので、メールで。
0633デフォルトの名無しさん2014/04/19(土) 16:08:27.77ID:RzhKyGN6
あ、意図を読み取り損ねていた。
taintness の伝搬関連はセキュリティ問題になると思うよ。
0634デフォルトの名無しさん2014/04/19(土) 16:15:14.52ID:/Zpiftkq
>>628
文章のまま他意はない。それなら、次回から興味がなければ礼も言わず、全く返事せずにスルーするよ。
0635デフォルトの名無しさん2014/04/19(土) 16:17:36.73ID:3ip4HVEJ
うっざ。友達いなそー
勝手にしろ
0636デフォルトの名無しさん2014/04/19(土) 16:25:22.72ID:3ip4HVEJ
最近流行の「アドバイス罪」って考えの奴なんだろうけど文字通り独り言だし礼も反応も求めてないよ。一言多いわ
お前から礼をもらったところで俺に何の得があるんだ
0637デフォルトの名無しさん2014/04/19(土) 16:49:03.52ID:/yg2gOxj
>>633 対応ありがとう。
パッチつけて投げ込んでみます。
グーグル先生に英訳してもらうか・・・。
0638デフォルトの名無しさん2014/04/19(土) 17:00:07.44ID:7EPIcXRA
松本先生に直接報告しとけよ
0639デフォルトの名無しさん2014/04/19(土) 19:11:05.22ID:RzhKyGN6
>>637

security@ の大半は日本人だから日本語でおkと思う
0640デフォルトの名無しさん2014/04/19(土) 22:09:13.96ID:/Zpiftkq
>>630さん
WinからMacやLinuxにファイルコピーするとそれぞれのコードUTF16やUTF8で扱われ
ファイル名の長さだけに制限があるようですね。


ひとりごと
Automatorやruby、perlなどの言語は今後も発展衰退する可能性があり性能や向き不向きがあります。
言語にユーザーの好き嫌いがあっても構いませんが、利用時には客観的に判断して利用すべきかと。
Automatorの既存コードがあれば、それを評価して良ければ使うのは全く構いません。

言語やくんだコードの使いやすさを知るために試すことは当然かと。
サンプルプログラムのアドバイスや質問は何の差支えもないでしょう。

私はコードの評価をしたいのに私への人格評価がなされる理由は全く意味不明。
スレチと長文失礼しました。
0641デフォルトの名無しさん2014/04/19(土) 22:26:27.75ID:W9HYf8ZP
手元に環境ないから試せないけど
convmvで普通にいけるとおもうんだよなぁ
0642デフォルトの名無しさん2014/04/20(日) 06:13:18.72ID:EVpAkAHD
>>610
win8.1 32bitだけど普通に使えてるよ。
activescriptrubyのirbでカーソル移動するとなんか表示がおかしくなるけど。
0643デフォルトの名無しさん2014/04/20(日) 07:16:19.74ID:0Pm82NZH
>>640
死ね
0644デフォルトの名無しさん2014/04/20(日) 07:58:15.38ID:3WSN1LrS
コードが評価したいなら、せめてconvmvのmanの「HFS+ on OS X / Darwin」
くらい読んで、彼等がお前の愚問を把握してないかどうかくらい、確認しろよ。
それすらやってないのに長々と書いてるのは詭弁にしか感じられん。
convmvを最初し紹介した奴に対しても失礼だ。
0645デフォルトの名無しさん2014/04/20(日) 13:30:38.66ID:HWcNUSLH
irbでputまで入力してtab押しても補完されなくてそのままtabだと思われる文字が入力されるのはなぜですか?
0646デフォルトの名無しさん2014/04/20(日) 14:22:08.01ID:8JCpLZTM
$ irb
irb(main):001:0> require 'irb/completion'
=> true
irb(main):002:0> put
putc puts
irb(main):002:0> put

うちだと再現しないな
0647デフォルトの名無しさん2014/04/20(日) 14:39:27.30ID:vv1MGqjg
LoadError: cannot load such file -- readline
0648デフォルトの名無しさん2014/04/20(日) 14:50:40.14ID:vv1MGqjg
rb-readline入れたらできました
0649デフォルトの名無しさん2014/04/20(日) 21:46:48.34ID:ynl6vhnw
すいませんirbで表示される補完候補をスクリプトファイルから取得する方法を教えてください。
0650デフォルトの名無しさん2014/04/20(日) 23:38:34.56ID:yNrVU/Oh
irbのソース読んだわけじゃないから想像だが、Object#methodsを使ってるんじゃないか?
0651デフォルトの名無しさん2014/04/21(月) 00:46:45.01ID:P5oYv1sy
>>649
http://vim-users.jp/2011/09/hack229/
こういうことでつか
0652デフォルトの名無しさん2014/04/21(月) 23:28:33.40ID:ZjnW70RA
arr = [ :a, :b, :c, :d. :e ]

これを

[
[:a, 0],
[:b, 1],
[:c, 2],
[:d, 3],
[:e, 4]
]

にする一番いい方法ってなんでしょうか?
each_with_indexでループするよりいい方法があるかなと思ったのですが
06536522014/04/21(月) 23:30:59.51ID:ZjnW70RA
解決しました
ありがとうございました。
0654デフォルトの名無しさん2014/04/21(月) 23:49:57.78ID:tJv6/UPR
どう解決したのかも書いてよ・・・

arr.map.with_index{|a,i|[a,i]}
単純に書くとこうだと思うけど、なんか違う方法あるのかな?
06556522014/04/22(火) 00:04:26.06ID:0LyUdVMz
arr.each_with_index.map でした
0656デフォルトの名無しさん2014/04/22(火) 00:17:40.59ID:BSZVNMjV
>>654
ぱっと思いついたのは無限リストにzipなやつかな
Haskellでいう
zip arr [0..]
こういうの
今時のRubyなら有りそう
0657デフォルトの名無しさん2014/04/22(火) 00:34:45.36ID:/QNFTYSS
arr.map.with_index.to_a
0658デフォルトの名無しさん2014/04/22(火) 00:39:36.28ID:9I9vrr6h
Rubyに無限リストってないのね
(一応0..Float::INFINITYで無限リストにはなる)
でも今回限定ならこれでいいのか、なるほど
arr.zip(0..4)
0659デフォルトの名無しさん2014/04/22(火) 00:45:35.26ID:BSZVNMjV
Lazyってのがあったと思う
0660デフォルトの名無しさん2014/04/22(火) 00:53:23.71ID:Ar304b6L
irb> %i(a b c d e).zip(0.step)
=> [[:a, 0], [:b, 1], [:c, 2], [:d, 3], [:e, 4]]

でもこの場合なら普通に%i(a b c d e).each_with_index.to_aかな
0661デフォルトの名無しさん2014/04/22(火) 00:57:11.44ID:yPgtsq3K
そういう連番入りの"変"な配列が本当に現物として必要なのかというところから考えてみるといいかもしれない

結構必要なんだけどさ
0662デフォルトの名無しさん2014/04/22(火) 23:42:03.50ID:Nv3mzqEq
プログラミングRubyのRubyベタボメっぷりにRubyを使い始めて早10数年、使えば使う程にRubyって駄目だなと痛感する
Rubyを学習し始めた頃は誰でもRubyは素晴しいと思うのだが、数年も使えばそのどうしようもない互換性のなさにウンザリする
しかも互換性が無くなることをマズいと思っていない集団がRubyを制作しているのでどうしようもない
1.4時代のコードが1.6になった途端に互換性がなくなり動かなくなることはあったが、1.6→1.8ではそれが顕著になり、1.9など何のエラーも出さずに前のコードが動く方が珍しいほど
それどころか1.9に行かずREEが海外ではデファクトになりつつある現状、そして始まるPlain RubyとREEの方言問題
例えばPassengerもREEの方がうまく動いたり、かと思えば特定のバージョンだとPlainじゃないとまともに動かなかったりと、とても面倒臭い

美しいコードを求める為の副作用、という名の互換性のなさはRuby界全体に蔓延していて
例えばあれだけもてはやされたRailsも、Rails2とRails3の互換性のなさに誰しも苦労したのは記憶に新しいところ
誰もが互換性のなさに辟易し、俺ライブラリを量産するため、gemで探すと似たような事をする終わったプロジェクトがわんさか引っかかる
諸処の小さなプロジェクトだけがそんな現状ならば許せるが、dbiアダプタでさえそんな現状なので
バージョンが変わるとデータベースにすら接続できなくなったとか、dbiのAPIバージョン変わったのにアダプタ側の更新ないな、
とか思ってるとアダプタ作者がRubyから足洗ってたとか余裕

身内同士でRubyはコードが美しいと四六時中自画自賛しているが、実はそれこそがRubyのガン
その美しいコードという名のオナニーの為に一体どれだけの互換性と人的リソースが失われていったことか
Rubyのコードは美しい、Railsスゲー、ベタボメする人は沢山いたがいつも一過性の人気しか得られないのはそこにあるし
ベタボメしていた人達もしばらくするとウンザリしてRuby界から消えてしまうのも原因は実はそこにある
達人プログラマーはRubyをベタボメしなくなったし、Mongrel作者はRailsどころかRubyに見切りをつけちゃったしね
ああいう熱狂的なRuby信者でもRubyから足を洗っているのを見ると、tDiaryがRubyに見切りつけてPythonで全部書き直したとか言われても驚かないだろう自分がいる
0663デフォルトの名無しさん2014/04/23(水) 00:01:19.28ID:QODmQkgW
嫌いなのに、この熱量ワロタ
0664デフォルトの名無しさん2014/04/23(水) 00:04:18.60ID:Jwmg0nMc
まあ分からないでもないな
せっかく書いた自分なりに美しいコードがRubyのバージョン互換性とかライブラリの陳腐化とかでどんどん何もしなくてもゴミになってくんだよね
0665デフォルトの名無しさん2014/04/23(水) 00:04:41.65ID:XMnhms3E
ruby1.8と1.9の非互換性に親を殺されたんだろう
0666デフォルトの名無しさん2014/04/23(水) 00:11:12.37ID:IStIaXKD
大昔からあるコピペだが
砂漠に捨てられていたところを駱駝に育てられたんだろうね
0667デフォルトの名無しさん2014/04/23(水) 01:49:10.20ID:gMdUnhMT
PerlもPerl6で後方互換性がなくなった
0668デフォルトの名無しさん2014/04/23(水) 01:50:10.17ID:EKJ4E/PJ
Rubyは普及が早過ぎた
せめて1.9のEncodingが
0669デフォルトの名無しさん2014/04/23(水) 08:55:45.86ID:KGn2h8hJ
UFC 128 - : ジョン・ジョーンズ vs. マウリシオ・ショーグン
https://www.youtube.com/watch?v=wia_sFsAf6g
0670デフォルトの名無しさん2014/04/23(水) 10:58:28.90ID:Zk8CkSwd
今からRubyを学ぶ場合って1.9.3と2.1.0どっちがいいですか?
0671デフォルトの名無しさん2014/04/23(水) 11:08:55.43ID:EKJ4E/PJ
過去バージョンの資産(しがらみとも言う)がないのなら2.1.x
日常なんも考えずに使うぶんにはあまり変わらないので、
2.1系でどうしても動かない基幹のライブラリが出たときだけ1.9.3にでも戻るといい
0672デフォルトの名無しさん2014/04/23(水) 11:11:15.04ID:Zk8CkSwd
railsとredmineしか使わないんですがとりあえず2.1.0からはじめてみます
0673デフォルトの名無しさん2014/04/24(木) 01:07:32.47ID:29x10p2Y
1.9.3と2.1.0の違いって?
0674デフォルトの名無しさん2014/04/24(木) 01:09:55.80ID:Brr5V4q8
1.9.3はもうちょっとしたらサポートが切れる
2.1.xはしばらく使える
0675デフォルトの名無しさん2014/04/24(木) 01:51:54.83ID:FRUphxxh
Win3.1,Win95,Win98,Win2000,WinME,WinXPのサポート終了
OSのAPIも変わる
言語だっていいじゃん
0676デフォルトの名無しさん2014/04/24(木) 02:15:00.21ID:29x10p2Y
仕事、増えるじゃないですか。ヤーダー
0677デフォルトの名無しさん2014/04/24(木) 09:54:17.58ID:u/bmaKPm
仕事が増える=金になる
0678デフォルトの名無しさん2014/04/24(木) 15:45:01.53ID:G2q8oQ1U
×仕事が増える
○サービス残業が増える
0679デフォルトの名無しさん2014/04/25(金) 08:48:01.45ID:4zex2q5s
頑張るが良い

およそ3万時間はかけてあれこれと習得した技術で
一銭も稼がずそのまま趣味にしちゃうとか
えげつない選択をした俺には社畜PGでさえ割と輝いて見える
0680デフォルトの名無しさん2014/04/25(金) 08:56:55.55ID:+QDQRBZq
IDは残酷である
0681デフォルトの名無しさん2014/04/25(金) 11:12:07.03ID:D2Co1DWI
puts "Hello, world!"
0682デフォルトの名無しさん2014/04/25(金) 15:16:49.71ID:D2Co1DWI
rubyの使いどころってどこ?
0683デフォルトの名無しさん2014/04/25(金) 16:22:14.40ID:IDbQXlGJ
>>682
プロトタイプの制作。
0684デフォルトの名無しさん2014/04/25(金) 18:28:55.73ID:k5QgmFyd
>>679
営業まで覚えろよ
0685デフォルトの名無しさん2014/04/27(日) 15:09:27.35ID:VSXoRe4X
>>607
RDE使ってるけど補完とかでエラーがぼこぼこ出る
RDTは起動が終わる頃にはプログラミングする気が無くなるし、
SublimeText3使ってみたけどイマイチ使いにくいから結局RDE
0686デフォルトの名無しさん2014/04/27(日) 18:34:49.46ID:MXG/a/88
RubyでIDE(笑) と思っていたが RubyMine を使ってみて、笑ってごめんなさいと言いたくなった。
0687デフォルトの名無しさん2014/04/27(日) 23:31:33.76ID:zjGXWtmW
ジャップスクリプトw
0688デフォルトの名無しさん2014/04/27(日) 23:34:31.26ID:D03yOYH6
>>687
真面目な話
朝鮮人にも使いやすいと思うよ
0689デフォルトの名無しさん2014/04/29(火) 15:30:47.92ID:D9nXVjdy
そうだぬ
プロテインだぬ
0690デフォルトの名無しさん2014/04/29(火) 19:56:17.13ID:rRRSFl+L
rubyって開発環境ないと実行もできないの?
0691デフォルトの名無しさん2014/04/29(火) 21:15:47.98ID:DY1N0T2F
>>690
開発環境はいらない。いるのは実行環境な。
0692デフォルトの名無しさん2014/04/29(火) 21:18:10.34ID:l3FqGA+x
スクリプト言語なので最低限エディタさえあればいいので
実行環境があれば開発環境も揃っちゃう
0693デフォルトの名無しさん2014/04/29(火) 21:32:45.43ID:xy5XDcDr
釣られちゃだーめ
0694デフォルトの名無しさん2014/04/30(水) 07:51:04.88ID:v4DX5ash
>>607
ruviedit
0695デフォルトの名無しさん2014/04/30(水) 12:51:55.01ID:ZT185+pO
>>688
ジャ・・・・・・w
ジャ・・・・・・・・w
ジャ・・・・・・・・・・w
ジャ・・・・・・・・・・・・・・w

ジャアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアッピwwwwwwwwwww
0696デフォルトの名無しさん2014/04/30(水) 23:30:35.93ID:R8tz7cxX
みんなイガイガしてて怖い
0697デフォルトの名無しさん2014/05/01(木) 12:33:29.63ID:V5UuKtrR
イガイガジャップw
0698デフォルトの名無しさん2014/05/01(木) 12:57:41.57ID:mrXKLvki
ジァアアアアアアw
0699デフォルトの名無しさん2014/05/01(木) 16:55:10.64ID:0JNTRAzu
ubuntu14.04でlibapache2-mod-rubyが無くなってしまったのですが、
RubyのCGIを実行するには何を入れればいいのですか?
0700デフォルトの名無しさん2014/05/01(木) 17:25:04.96ID:7C5boMZl
Python
0701デフォルトの名無しさん2014/05/01(木) 18:18:20.02ID:OEnuwkU5
>>699
CGI として動かすのに必要なのは mod_ruby ではなく mod_cgi のはず
mod_cgi はおそらく Apache2 をインスコしたときに入ってるので
とりあえず簡単な CGI スクリプトが動くかどうか試してみては
0702デフォルトの名無しさん2014/05/01(木) 20:43:22.42ID:dTaRli9/
[
{sort:1, foo:1, bar:1},
{sort:1, foo:1, bar:2},
{sort:2, foo:1, bar:1}
]


これを

{
1: [ {foo:1, bar:1}, {foo:1, bar:2 } ],
2: [ {foo:1, bar:1} ]
}


に置換するメソッドってないのでしょうか?
0703デフォルトの名無しさん2014/05/01(木) 20:56:19.14ID:dpgYE2eV
プログラミングをなんだと思ってるのかちょっと気にかかる

やりたい処理があるならとりあえず自力で逐次書いてみること
できそうにないならとりあえずいちばん基本的な処理からひとつずつ
0704デフォルトの名無しさん2014/05/01(木) 21:01:02.11ID:zNLeyvzf
>>702
ちょっとやりたいことが見えない
0705デフォルトの名無しさん2014/05/01(木) 21:17:38.41ID:sff33EKO
>>702

>>702

L = [
  {sort:1, foo:1, bar:1},
  {sort:1, foo:1, bar:2},
  {sort:2, foo:1, bar:1}
]


L.group_by { |e|
  e[:sort]
}.inject({}) { |outer_hash, (outer_key, inner_hashs)|
  outer_hash.update outer_key => (
    inner_hashs.map { |inner_hash|
      inner_hash.inject({}) { |hash, (key, val)|
        if key == :sort
          hash
        else
          hash.update key => val
        end
      }
    }
  )
}
# => {1=>[{:foo=>1, :bar=>1}, {:foo=>1, :bar=>2}], 2=>[{:foo=>1, :bar=>1}]}
0706デフォルトの名無しさん2014/05/01(木) 21:27:57.39ID:f+pw1QDn
data = [
{sort:1, foo:1, bar:1},
{sort:1, foo:1, bar:2},
{sort:2, foo:1, bar:1}
]

data.group_by{| hash |
 hash[:sort].tap{
  hash.delete(:sort)
 }
}

dataの中身を破壊したくない時は事前にコピーしておく
0707デフォルトの名無しさん2014/05/01(木) 21:28:10.04ID:57HvH9/j
xs = [
{sort:1, foo:1, bar:1},
{sort:1, foo:1, bar:2},
{sort:2, foo:1, bar:1}
]

h = {}
xs.each do |x|
h[x[:sort]] ||= []
h[x[:sort]] << x.reject {|k,v| k == :sort }
end

p h
07087062014/05/01(木) 21:41:47.80ID:f+pw1QDn
ごめん訂正
data.group_by{| hash |
 hash.delete(:sort)
}
で良かった
07097022014/05/01(木) 22:41:16.64ID:dTaRli9/
普通にこれだけでできました。

ar = [
{id:1, type: :hoge, value: 'aaa'},
{id:2, type: :fuga, value: 'bbb'},
{id:3, type: :hoge, value: 'ccc'},
{id:4, type: :hoge, value: 'ddd'},
{id:5, type: :fuga, value: 'eee'},
{id:6, type: :hoge, value: 'fff'},
{id:7, type: :piyo, value: 'ggg'},
{id:8, type: :hoge, value: 'hhh'}
]

puts ar.group_by {|a| a[:type] }




ありがとうございました。
0710デフォルトの名無しさん2014/05/01(木) 23:41:24.74ID:Ig5lcCo9
それだけだとtypeが要素内に残ってしまうのでは?
0711デフォルトの名無しさん2014/05/01(木) 23:43:21.66ID:zNLeyvzf
本人が納得してるんだから
それ以上の答えはないだろ…w
0712デフォルトの名無しさん2014/05/02(金) 05:26:15.04ID:Aux2s5aq
ジャアアアアアアアアアアアアアアアアアアアアアアアwwwwwwwwwwwwwwwwwwww
0713デフォルトの名無しさん2014/05/02(金) 05:38:10.00ID:gjVtYYe6
ジァアアアア
0714デフォルトの名無しさん2014/05/02(金) 11:55:46.50ID:Pyg52lyI
ジャップ
0715デフォルトの名無しさん2014/05/02(金) 19:05:42.78ID:Aux2s5aq
ジャアッピ
0716デフォルトの名無しさん2014/05/03(土) 01:08:23.79ID:zQAExoAh
redmineで必要なgemをすべてredmine直下にインストールしたいのですが
bundle install --path .
こんな感じでやれば確実に直下にインストールされますか?
以前グローバルのgemのところにredmineで使うgemをインストールしたらrailsが動かなくなったので
慣れないうちはgemは分けてインストールしたいのです
0717デフォルトの名無しさん2014/05/03(土) 01:27:25.78ID:xxSHnc2z
>>716
--deploymentじゃだめなの?
--path . だとredmineのソースと混ざって面倒でしょ。
--path使うなら--path tmpgemとか、
名前はどうでもいいけどサブディレクトリを指定したほうがいいと思うよ。
0718デフォルトの名無しさん2014/05/03(土) 02:00:20.30ID:zQAExoAh
--deploymentは初めて知りました。調べてみます
--pathはvendor/bundleを指定しようと思います
0719デフォルトの名無しさん2014/05/04(日) 11:41:12.81ID:ksC+5kIH
r
0720デフォルトの名無しさん2014/05/04(日) 16:49:05.62ID:FXufV3r7
メモ帳に、print("Hello,Ruby.\n")
と書いて、
helloruby.rb
という名前で保存して、
コマンドプロンプトで実行してみたのですが、
('ruby'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。)

こんな表示が出てしまったんですが、
もしかしてプログラムを実行するには、
Rubyというものをインストールしないといけないでしょうか?
0721デフォルトの名無しさん2014/05/04(日) 16:56:30.87ID:5zOv7lJS
もちろんそうよ。
rubyに限らずあらゆるスクリプト言語は、
ソースを実行する環境が必要だよ。
0722デフォルトの名無しさん2014/05/04(日) 17:04:39.33ID:FXufV3r7
>>721
そうでしたか、
ありがとおございます、
rubyを使えるようになれるように勉強します...orz
0723デフォルトの名無しさん2014/05/04(日) 17:52:47.03ID:FXufV3r7
Rubyインストールして、hellorubyできましたー!
あとはプログラム書いていくには、
メモ帳よりもエディターというのがあったほうがいいのかな?
0724デフォルトの名無しさん2014/05/04(日) 17:59:39.98ID:EAI4gb7/
>>723
メモ帳もエディタだよ
ただメモ帳はプログラミングには向いてないからプログラミング用のエディタがあったほうがいいね

それと、自分で考えたり調べたりするのもプログラミングする上では大事よ
0725デフォルトの名無しさん2014/05/04(日) 18:13:57.43ID:FXufV3r7
>>724
メモ帳もエディタだったのですね。。。
そうですね、
自分で考えないとプログラミングなんてできないですね・・
ありがとおございます、
プログラム言語覚えようと思って、
初心者で何がいいのかわからなくて、
古本でRubyの入門書が一番安かったから買ってしまったけど、
この選択でよかったのかちょっと不安でして・・
本読みながら頑張って勉強します!
0726デフォルトの名無しさん2014/05/04(日) 19:24:12.03ID:Sqbn+IJt
その選択は失敗だな。
図書館行けばただで借りられたかもしれないのに。
0727デフォルトの名無しさん2014/05/04(日) 19:30:04.33ID:yfReFpk7
>>725
いやいや、>>721 の情報ぐらいでちゃんと動かせるところまでたどり着けるんだから、
十分プログラミングができる素養はありますよ。がんばってください

エディタは…私はLinux上でEmacs使ってますが、最近だと何がいいんでしょうね
Notepad++あたりがスジは良さ気かなー
0728デフォルトの名無しさん2014/05/04(日) 21:25:42.60ID:rJLJvrVe
最初はサクラエディタみたいにくせが強くなくて、設定の楽なソフトでいいんじゃない?
0729デフォルトの名無しさん2014/05/05(月) 02:33:36.94ID:7lNQc/V+
サクラエディタに癖が無いとおっしゃるw
0730デフォルトの名無しさん2014/05/05(月) 02:35:59.43ID:STNDLWYp
余計な設定してあるサクラエディタなんてクソ
0731デフォルトの名無しさん2014/05/05(月) 02:38:45.35ID:7lNQc/V+
Windowsなんてとっくの昔から使ってないけど、癖が少ないエディタと言ったらTeraPadなんじゃないかなぁ
最初からRubyのシンタックスハイライトしてくれるし
0732デフォルトの名無しさん2014/05/05(月) 10:12:54.51ID:8D+UV0JX
RuviEdit
http://s1.gazo.cc/up/83907.jpg
0733デフォルトの名無しさん2014/05/05(月) 10:28:52.17ID:SGaFRyg3
Rubyの開発環境ってエディタはもちろんだけどコマンドライン端末が重要だからなあ
WindowsならVirtualBoxかなんかの上でLinux動かしたほうがマシ
0734デフォルトの名無しさん2014/05/05(月) 13:20:36.62ID:8D+UV0JX
Linux上でプログラミングだけやりやすくするよりも
Windows上でプログラミング以外の事を色々とやっている中でプログラミングもそこそこ行いたい
0735デフォルトの名無しさん2014/05/05(月) 13:44:22.42ID:Vmp3/Tts
Windows に mintty, SYS, Cygwin なんか入れてがんばってる人もいるね
Linux にある程度慣れてる人じゃないと導入からしてきついだろうけど
0736デフォルトの名無しさん2014/05/05(月) 13:58:33.03ID:HNW3XBXV
CYGWINはオモチャ
0737デフォルトの名無しさん2014/05/05(月) 14:09:47.46ID:1M+NrYC6
>>720
ttp://ideone.com
ttp://codepad.org
ここで打ち込めばよい
これらは、数十のプログラミング言語に対応している
0738デフォルトの名無しさん2014/05/05(月) 14:39:20.97ID:w8FDA2mo
みなさまありがとうございます、
とりあえず、
Notepad++、サクラエディタ、TeraPad、RuviEdit
の4種類インストールとダウンロードしてみました!
これから使いやすいの選んでやってみようと思います、
>>737
ネット上でも実行できるのあるんですね、
便利そうですありがとうございます。
0739デフォルトの名無しさん2014/05/05(月) 15:41:05.47ID:iIm/Jmpk
RuviEditはどうかなー
もうメンテされてないみたいだし

あとの3つは有名ドコロだし、気に入ったのを使えばいいと思うけど
0740デフォルトの名無しさん2014/05/05(月) 16:29:31.91ID:7lNQc/V+
ネット上の開発環境だと、Cloud 9ってのもある
https://c9.io/

ただ、最初の開発環境はやっぱりローカルに用意したほうがいいと思う
0741デフォルトの名無しさん2014/05/05(月) 16:40:11.79ID:wgCLsPWH
>>615

pryでデバッグするときって、
いちいち、binding.pry をソースコードを編集して付け加えるの?
0742デフォルトの名無しさん2014/05/05(月) 17:03:33.32ID:4sn/7U2g
winならsublimeいったくだろ
0743デフォルトの名無しさん2014/05/05(月) 17:07:52.83ID:7lNQc/V+
金払えるならね
Windowsといわず、MacでもLinuxでも動くし
0744デフォルトの名無しさん2014/05/05(月) 18:25:02.87ID:yMM/B3tv
以前、rubyをネット上で実行できるようにするには
セーフレベルだけでは危ないみたいな記事を読んだのですが本当ですか?
ちなみにその記事には対策は書かれていなかった。
0745デフォルトの名無しさん2014/05/05(月) 19:59:08.73ID:zZf2r6l7
>>744
ユーザエージェントから受けとったデータ(クッキーやらポストデータやら)を処理する場合は、気をつけることだな。
rubyに限ったことではないけど。

ユーザエージェントからのrubyコードをサーバー上で実行させる場合は、サーバーが転んでも泣かない。
特に(標準ライブラリは例外として)第三者による拡張ライブラリ(soファイルを含むやつ)は
セーフレベルや汚染について無頓着なものが多いので、そういうライブラリは絶対に使わないこと。マジで泣きを見るからな!!
0746デフォルトの名無しさん2014/05/05(月) 21:03:59.74ID:z6Pp9a2U
>>745
ありがとうございました。
0747デフォルトの名無しさん2014/05/06(火) 01:34:39.86ID:+YksqMlB
セーフレベルはMatzも認めるクソ仕様
あんなのアテにする方が間違い
0748デフォルトの名無しさん2014/05/06(火) 10:54:59.83ID:pWnyRhI4
$SAFEは開発版にだけ入れておくべきものだったね
うまく回ればカッコイイものだったんだけど、一度もうまく回った印象がない
0749デフォルトの名無しさん2014/05/06(火) 12:36:12.29ID:MM9vq2r+
32bit向けcygwinでrbenvを使っています
ruby 2.1.1p76 (2014-02-24 revision 45161) [i386-cygwin]
gem --version は2.2.2です

gem関連の質問をします
http://takemikami.com/archives/1316
ここにあるようにnokogiriを使おうとしたらエラーが出ました

ruby get_gresult.rb
/home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': No such process - /home/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/extensions/x86-cygwin/2.1.0/nokogiri-1.6.1/nokogiri/nokogiri.so (LoadError)

gem which nokogiriの結果はこうです
/home/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.1/lib/nokogiri.rb

gemで入れたnokogiriのインストール先をkernel_requireが探せていないようなのですが
どうすればよいのでしょうか
0750デフォルトの名無しさん2014/05/06(火) 14:53:17.56ID:vwF5zeGs
Rubyじゃ無理
0751デフォルトの名無しさん2014/05/06(火) 15:25:04.61ID:MM9vq2r+
書き忘れていましたがrbenv 0.4.0-97-gfe0b243
です。
すみません。ファイルはそこにありました。

[~/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/extensions/x86-cygwin/2.1.0/nokogiri-1.6.1/nokogiri] % ls -la
-rwxr-xr-x 1 user 4.5M 2014-04-30 16:55:56 nokogiri.so*

それとエラーメッセージは正しくはこうでした。
/home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': No such process - /home/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/extensions/x86-cygwin/2.1.0/nokogiri-1.6.1/nokogiri/nokogiri.so (LoadError)
from /home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.1/lib/nokogiri.rb:28:in `<top (required)>'
from /home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in `require'
from /home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
from /home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:144:in `require'
from get_gresult.rb:4:in `<main>'
0752デフォルトの名無しさん2014/05/06(火) 17:41:02.74ID:+YksqMlB
おかしいね。No such process というメッセージは require では出ないはずなんだけど
0753デフォルトの名無しさん2014/05/07(水) 08:12:24.98ID:MZ01fZnX
無理
0754デフォルトの名無しさん2014/05/07(水) 10:48:05.15ID:VWoQm6fj
馬鹿には
0755デフォルトの名無しさん2014/05/08(木) 21:34:14.53ID:c3/Phoxn
無理
0756デフォルトの名無しさん2014/05/08(木) 23:29:13.85ID:e+dUzwlW
 
 _∧∧__   / ̄ ̄ ̄ ̄
 |( ゚д゚)| < 私も初心者です!
 |\⌒~\  \____
 \ |⌒⌒|
0757デフォルトの名無しさん2014/05/08(木) 23:55:23.33ID:tkIcXOih
おっと、気がついたら DateTime.strptime() のバグが直ってるじゃん
もう直らないと思ってたよ
0758デフォルトの名無しさん2014/05/09(金) 16:03:47.06ID:RTJJnIz3
ループの中でsystem "start #{url}"として、既定のブラウザ(Firefox)でurlを次々に開きたいのですが、複数のタブを開くのではなく、一つのタブ内で遷移させていくにはどうすればよいでしょうか?Windows 8 64bit, ruby 2.0.0p353です。よろしくお願いします。
0759デフォルトの名無しさん2014/05/09(金) 16:34:14.36ID:jmPoJJfu
開く前にタブを閉じればいいんじゃね?
0760デフォルトの名無しさん2014/05/09(金) 19:18:08.97ID:hUKEzlG4
gollumっていうgitで管理するwikiあるじゃないですか
バックアップ目的でgithubにpushしたいんですが
gollumが自動的に作成したリポジトリの内容そのままでpushしちゃていいんですか?
他にgit addしたりする必要はないですか?
07617582014/05/09(金) 19:20:40.79ID:RTJJnIz3
>>759
ありがとうございます。
タブを閉じるにはjavascriptでwindow.close()してやれば良いのかと思って、execjsというgemを使おうとしたのですが、invalid byte sequence in UTF-8というエラーが出てしまって回避策を調べているところです。
watirとかseleniumなどのwebdriverを使うと、新しくブラウザを開く必要があるみたいなので、使用中のブラウザで開くためにsystem startでURLを開こうとしているのですが、その場合にタブを閉じる方法は他にあるでしょうか?
0762デフォルトの名無しさん2014/05/09(金) 20:33:54.70ID:SjMyjWDG
wshとかでキーバインド Ctrl + W
WinAPIとかでPostメッセージ Ctrl + W
タブのスレッドを特定して Kill
ハンドルを取得して、どうにかしてWatirとかSeleniumで操作するブラウザを既存のものにするように魔改造
他・・・良さそうなgemsを探す
0763デフォルトの名無しさん2014/05/09(金) 20:51:40.58ID:SjMyjWDG
ああ、Firefoxってタブごとに別スレッドってわけじゃなさそうだった
スレッドKillでタブ閉じ無理
0764デフォルトの名無しさん2014/05/09(金) 21:18:10.66ID:JCnUB0up
>>758
試してはいないけどぐぐったらこんなのが

http://forums.mozillazine.org/viewtopic.php?f=23&;t=2065115
> I figured out a very workable workaround. :)
> I have the TabMixPlus addon installed.
> Under Tools > Tab Mix Plus Options, I set "Open links from other applications in": to "Current Tab".
0765デフォルトの名無しさん2014/05/09(金) 21:59:51.69ID:SjMyjWDG
http://wtr.rubyforge.org/rdoc/1.6.5/
ここみると
attach (FireWatir::Firefox)
ってattachなんとかってメソッドあるから多分firefoxでもやれるとは思うよ

IEでは、正しいやり方じゃないんだけど、とりあえずの動作確認出来た
Ruby\lib\ruby\gems\1.9.1\gems\watir-classic-3.7.0\lib\watir-classic\ie-class.rb
等の 645行目くらいを

#160; #160; def create_browser_window
#160; #160; #160; how = :title
#160; #160; #160; what = "Google"
#160; #160; #160; ieTemp = nil
#160; #160; #160; begin
#160; #160; #160; #160; Wait.until(IE.attach_timeout) do
#160; #160; #160; #160; #160; ieTemp = IE._find how, what
#160; #160; #160; #160; end
#160; #160; #160; rescue Wait::TimeoutError
#160; #160; #160; #160; raise NoMatchingWindowFoundException,
#160; #160; #160; #160; "Unable to locate a window with #{how} of #{what}"
#160; #160; #160; end
#160; #160; #160; @ie = ieTemp

##160; #160; #160; @ie = WIN32OLE.new('InternetExplorer.Application')
#160; #160; end


こんなんにするとブラウザ新規起動はしないでGoogleを開いてるIEのブラウザに対してフックするようになる

その他関連リンク・・・
http://rdoc.info/gems/watir/1.6.6/Watir/IE#attach-class_method
0766デフォルトの名無しさん2014/05/09(金) 22:00:46.38ID:SjMyjWDG
半角ミスった・・・・

    def create_browser_window
      how = :title
      what = "Google"
      ieTemp = nil
      begin
        Wait.until(IE.attach_timeout) do
          ieTemp = IE._find how, what
        end
      rescue Wait::TimeoutError
        raise NoMatchingWindowFoundException,
        "Unable to locate a window with #{how} of #{what}"
      end
      @ie = ieTemp

#      @ie = WIN32OLE.new('InternetExplorer.Application')
    end
0767デフォルトの名無しさん2014/05/09(金) 22:27:33.18ID:SjMyjWDG
あ、ライブラリ弄らずにattach_browser_window呼び出すにはこれでよさげ
agent = Watir::Browser.attach(:title, "Google")

firefox版は・・・誰かがどうぞ
07687582014/05/09(金) 22:46:25.11ID:RTJJnIz3
>>762
ありがとうございます!
watirのattachメソッドはwatirで開いたページへのattachなんだと思ってました。
ttp://stackoverflow.com/questions/18496262/finding-currently-open-browser-firefox-windows-with-watir
>>764
ありがとうございます!

いろいろアドバイスいただいたやり方で試してみます。ただ、そもそもrubyを使ってやる必要がなかったかもしれません。。。
0769デフォルトの名無しさん2014/05/10(土) 13:24:26.09ID:oRE/NAyL
質問です
ホソバオキナゴケか、アラハシラガゴケ
あとスナゴケ買ってきたいんですけど
東京で売ってる店ありますか?
なるべく通販とかより現物みて買いたいのですが
トレーで買える大きなものが良いです
0770デフォルトの名無しさん2014/05/10(土) 23:13:34.58ID:E1J0psG7
東急ハンズとか見てきますね
ありがとうございます
0771デフォルトの名無しさん2014/05/12(月) 00:48:59.09ID:pvK1PhqY
ンーwwwwwwwwwww
0772デフォルトの名無しさん2014/05/12(月) 14:01:07.49ID:ZYG+p79T
rbenvをインストールするシェルスクリプトを書いているのですが、

echo 'export RBENV_ROOT=/usr/local/rbenv' >> /etc/profile.d/rbenv.sh
echo 'export PATH="$RBENV_ROOT/bin:$PATH"' >> /etc/profile.d/rbenv.sh
echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh

exec $SHELL -l

とすると「exec $SHELL -l」でスクリプトが止まってしまって後の処理が実行されません。
止まらずに後の処理も実行するにはどのようなスクリプトを書けばよいでしょうか?
よろしくお願いいたします。
0773デフォルトの名無しさん2014/05/12(月) 17:18:34.10ID:fmUG0CnV
>772
echo $SHELL して出てきたコマンドの -l オプションの効果を調べる
0774デフォルトの名無しさん2014/05/12(月) 19:29:25.28ID:lYEeDc9x
>>769-771
苔の質を気にしないならヤフオクとかオススメかなり安い
色が悪くてもちゃんと管理すれば色も戻るから、着生させた後ならさほど変わらんな
0775デフォルトの名無しさん2014/05/13(火) 19:58:24.12ID:jn2b6mfU
すみません、どこで質問すればいいのかわからなかったので
ここで質問させてください。

Rubyで書いたコードをexe化するためにocraというgemを使っています。
関連するライブラリなどもexeの中に入るはずなのですが、
他のgemが入らないようで困っています。

具体的には
ruby 1.9.3  ocra 1.3.0  snmp 1.1.1
snmp を gem install したPCで require snmp を含むrubyコードを
ocraでexe化し、実行すると require snmp 実行時に強制終了します。
(require snmp の前後にログを入れて確認したので間違いないです)
ocra実行時(ocra --windows ファイル名)にはエラーは出ていません。

このプログラムをruby環境の無いPCで実行するためには
どうすればいいでしょうか?
ヒントだけでも頂けると助かります。
0776デフォルトの名無しさん2014/05/13(火) 23:56:12.82ID:xjX0qK0b
>>772
export PATH
組み込み環境変数は、exportしたらダメかも?
0777デフォルトの名無しさん2014/05/14(水) 00:01:08.64ID:H+eWXsjB
>>775
>ocraでexe化し、実行すると require snmp 実行時に強制終了します。

強制終了時のエラーメッセージを書かないと、
アドバイスしようにも無理だと思われ
0778デフォルトの名無しさん2014/05/14(水) 00:13:16.08ID:7P3aj1T+
Rubyで動的にevalで追加されたメソッドの定義を見る方法はないのでしょうか?

定義つーのは引き数とかです
0779デフォルトの名無しさん2014/05/14(水) 00:34:26.06ID:H+eWXsjB
>>778
Ruby1.9以降であれば、ClassクラスやModuleクラスで定義されている
メソッド instance_method または public_instance_method を使うと
メソッドを表現するオブジェクト UnboundMethod が返される
次に、このオブジェクトで定義されているメソッド arity を呼べば、
対象となるクラス/モジュールで定義されているメソッド定義の引数の個数が得られる

$ irb2.0
irb(main):001:0> eval "class C; def f(x,y); end; end"
=> nil
irb(main):002:0> m = C.instance_method(:f)
=> #<UnboundMethod: C#f>
irb(main):003:0> m.arity
=> 2
irb(main):004:0>
0780デフォルトの名無しさん2014/05/14(水) 08:13:42.89ID:7P3aj1T+
ありがとうございます
個数しかムリなんですね
0781デフォルトの名無しさん2014/05/14(水) 10:21:32.53ID:2naf+4Er
同じ1.9.3であっても、パッチレベルが低いと、forの中でretry使えるものがあるんだな。
0782デフォルトの名無しさん2014/05/14(水) 14:19:31.11ID:zb6ijAM3
>>778
UnboundMethodにはparametersメソッドもあるね。
こっちのほうがもう少し詳しいみたい。
0783uy2014/05/15(木) 14:13:13.27ID:Py6ct1mS
>>778

eval"
def nesi a , b
p a , b
end
"
ObjectSpace.each_object do |m|
puts m if m.to_s =~ /nesi/
end


出、出力〜wwwwww物体空間検索奴〜wwwwwwww
0784デフォルトの名無しさん2014/05/18(日) 13:57:07.33ID:YH07EY0z
Rubyは変数の型を宣言しないの?
VBA使ったときは、IntegerとかStringとかの、
変数を宣言してた記憶がるんだけど、
なんか入門書に説明書いてない・・
0785デフォルトの名無しさん2014/05/18(日) 14:42:03.70ID:9l4Azo6V
うん。Ruby の変数に型はないので宣言することもない
0786デフォルトの名無しさん2014/05/18(日) 14:46:11.25ID:BExb4OPW
>>784
Rubyの変数は文字列、配列、数値などの「オブジェクト」を指すものだが、これに型はない。
ただし変数が指している各々のオブジェクトには明確な型がある。
0787デフォルトの名無しさん2014/05/18(日) 14:52:26.23ID:YH07EY0z
そうなんですかぁ
あとでコードみたとき分かりにくくないのかなぁ
宣言してないから変数名まちがえてもエラーもでないってことですよね?
デバッグするときめんどくさくないのかなぁ
数字の変数に文字列いれたらエラーになってくれるから、
ミス分かったりすると思うんだけど、
なんか不安になってきたなぁ
Rubyの選択は正しかったのだろうか・・
0788デフォルトの名無しさん2014/05/18(日) 15:14:49.57ID:BSsm5aBJ
>>787
その代わりお気楽にコードが書けるというメリットもある
メリットとデメリットを比べて実際に決めるのはあなたなので、あとは好きにすればいい
0789デフォルトの名無しさん2014/05/18(日) 15:17:00.29ID:vXasxGe8
>>787
>あとでコードみたとき分かりにくくないのかなぁ

変数をハンガリアン記法にするといい
0790デフォルトの名無しさん2014/05/18(日) 15:18:52.16ID:cV/sH5hf
まだマシだよ。
1 + "1"とか、1 + "5foo" が全くエラーにならない言語もある。
0791デフォルトの名無しさん2014/05/18(日) 15:20:44.18ID:9l4Azo6V
比較してみよう

' VBA
Dim num as Integer
num = 123

# Ruby
num = 123
0792デフォルトの名無しさん2014/05/18(日) 15:21:54.42ID:vXasxGe8
httpdで送られてくるパラメータに型がないのも酷い
0793デフォルトの名無しさん2014/05/18(日) 15:31:34.82ID:P2EXL/Ge
>>787
変数自体に型はないけど、格納されてるデータは型があって
参照時に型チェックは行われる
自分の感覚では、気にしているような型チェックによるコーディングミスの検知は
Rubyでも十分機能している(整数と文字列を間違えるようなミスは
ちゃんと検知する)
0794デフォルトの名無しさん2014/05/18(日) 15:39:41.98ID:vXasxGe8
そうかな
0 が false であることを期待して
if hoge
fugafuga
みたいに書いてるとき
hoge が '0' だったら?
0795デフォルトの名無しさん2014/05/18(日) 15:52:52.85ID:9l4Azo6V
Ruby では偽と扱われるのは nil と false だけ
'0' も 0 も "false" もみんな真
0796デフォルトの名無しさん2014/05/18(日) 15:59:38.17ID:S+9LD5PN
>0 が false であることを期待して
あほか、期待しねーよw
perlは、0が偽ではあるけど、booleanがないから一貫している。
rubyは、booleanがある代わりに、0を偽としないことで一貫させている。
0797デフォルトの名無しさん2014/05/18(日) 16:15:30.64ID:8Wfmiw8G
素人考えだけど

外部のスクリプトのメソッド foo を利用したくて、
require, import, include で利用宣言して、
foo( arg )
んで、エラーが出る場合は、引数の型や個数が違う。
ruby には適切な引数なのか調べる方法がある。

def foo( arg )
unless arg.is_a?(Hash)
raise 'ハッシュよこせよ'
end
unless arg.respond_to?(:each)
raise 'eachメソッド使えるやつよこせよ'
end
end

型宣言って、+-*/で四則演算できる数値をクレとか、
hoge というメソッドがつかえるオブジェクトをクレ
とか、そういうことに必要な機構だとオモタ
0798デフォルトの名無しさん2014/05/18(日) 19:03:44.52ID:WdyNhwqh
JavaScriptはもっとひどい

JSに突進していく外人よりも、
Matzの方がスジが良いことは、明らか
0799デフォルトの名無しさん2014/05/18(日) 20:35:28.29ID:BExb4OPW
>>787
中身の無い変数に対してメソッド呼ぶとかしたら大概例外になる
initializeでインスタンス作るときに代入、あとはアクセサなどで弄るとかすると
基本的に参照しかしないことになるだろ?つまり例外がちゃんと起こるワケだ
0800デフォルトの名無しさん2014/05/19(月) 00:52:15.69ID:OU6AZajW
ちゃんと描けば変数とかどんどん減るから
実際、普通のOOじゃなくてプロトタイプベースみたいにして書けって事だよ動的言語は
0801デフォルトの名無しさん2014/05/19(月) 03:39:38.24ID:eoQt5gri
俺も人気の >>787 に乗っかってみよう。
なんか自分で選んで ruby に触ろうとしているみたいだけど、動機は何よ? 何に使いたいの?
なんとなく触ろうと思ったとかでもいいけど、それで合いそうに無いならば他の言語を試してみるのもいいかもよ。
whitespace (http://ja.wikipedia.org/wiki/Whitespace) なんてどうよ?
08027872014/05/19(月) 19:42:29.92ID:KxacvMpX
>>801
whitespaceはネタですよね?w
先物を自動売買するシステムを作ろうと思ったんですが、
今まではVBAとIEでやってたけど、
他のプログラム言語も試してみたくて、
Rubyは日本人が作った言語だったので、
よく調べずにこれでいいかなと思って・・
0803デフォルトの名無しさん2014/05/19(月) 20:17:15.76ID:6L2g2kAx
自動売買ソフト作ってるなら
ガベコレ走らない言語を選ぶべき
0804デフォルトの名無しさん2014/05/19(月) 21:10:56.65ID:lZyXm0tR
ミリ秒単位のガチなやつならともかく、悠長にIE操作してる暇があったら
GCによるストップザ・ワールドなんか全く無視できるわ
0805デフォルトの名無しさん2014/05/19(月) 21:57:11.29ID:UOYI7LyN
スクリプト言語は変数は型関係なくいれられることが多い
静的に変数の型を強制したいならコンパイル型の言語を選べばいい
0806デフォルトの名無しさん2014/05/19(月) 22:09:04.30ID:faWRsHH6
一応、型チェック用のライブラリもあるけどな
Contractsとかそんな名前だっけ?
0807デフォルトの名無しさん2014/05/19(月) 22:16:40.28ID:csGSXT6X
プロトタイプしろでおk
せっかくmix-inやりやすくされているのだし
型を意識しなきゃいけないコード書く時点で動的言語つかうって選択肢がズレてる
0808デフォルトの名無しさん2014/05/20(火) 15:28:39.99ID:9vxr48KW
パック10進数を数字に変換する処理を作ろうとしています。
un_packというのをWEBで拾ってきたので、
それにバイナリモードで読んだ先頭3バイトのデータを渡して
やりたいのですが、以下のエラーになってしまいます。
in `sprintf': string contains null byte (ArgumentError)

バイナリの読み込み方が悪いのでしょうか。

def self.un_pack(pack)
sprintf("%X", pack).gsub(/^(.+)(.)$/) {|str|
case $2
when "F", "C"
""
when "D"
"-"
else
raise RuntimeError.new("illegal sign. sign = [#{$2}]")
end + $1
}.to_i
end

#16進数で渡せばOK
p self.un_pack(0x102D) #=> 102
p self.un_pack(0x102C) #=> -102

BinData = open("DATA30B.sf")
BinData.binmode

while(b = BinData.read(30))
p self.un_pack(b[0,3])
end
08098082014/05/20(火) 17:31:57.95ID:9vxr48KW
なんかいろいろやってたら出来た


def self.un_pack(pack)
sprintf("%X", pack).gsub(/^(.+)(.)$/) {|str|
case $2
when "F", "C"
""
when "D"
"-"
else
raise RuntimeError.new("illegal sign. sign = [#{$2}]")
end + $1
}.to_i
end

BinData = open("DATA30B.sf")
BinData.binmode

while(b = BinData.read(30))

wk = "0x" + b[0,3].unpack("H*")[0] #先頭3バイト(パック10進数)を取り出す

p self.un_pack(wk) #パック10進数を数字変換

end
0810デフォルトの名無しさん2014/05/21(水) 18:04:58.74ID:rwjAksQw
Rubyはやっぱり、
金融関係のプログラミングには、
あまり向いてないか・・
F#とかのほうがいいのかな?
0811デフォルトの名無しさん2014/05/21(水) 19:21:37.26ID:rZK4MUe2
国語,50,算数,70,理科,80,社会,60
というような文字列を読み込んで点数を合計する場合、どんな配列にするべきか想像がつかんorz

とりあえすspritで分けたら1次元配列にはなったけど、合計がやりにくいんだよね
0812デフォルトの名無しさん2014/05/21(水) 20:00:35.58ID:YgR7gj8h
>>811
二次元配列(配列の配列)かハッシュにしてみては

s = '国語,50,算数,70,理科,80,社会,60'
s.split(',').each_slice(2).to_a
=> [["国語", "50"], ["算数", "70"], ["理科", "80"], ["社会", "60"]]
Hash[*s.split(',')]
=> {"国語"=>"50", "算数"=>"70", "理科"=>"80", "社会"=>"60"}

s.split(',').each_slice(2).inject(0){|total, (k, v)| total += v.to_i }
0813デフォルトの名無しさん2014/05/21(水) 21:36:03.59ID:x7NyX0pH
>s.split(',').each_slice(2).inject(0){|total, (k, v)| total += v.to_i }

細かいけど、最後の inject のブロック内は代入文ではなく加算式だけにすべき
X: total += v.to_i
O: total + v.to_i

あとは、いいんじゃないかと
08148112014/05/21(水) 21:44:32.01ID:hjF7pzW+
>>812
slice初めて知りました
ありがとうございます。
0815デフォルトの名無しさん2014/05/21(水) 21:47:44.61ID:YgR7gj8h
>>813
いや助かる。指摘ありがとう
0816デフォルトの名無しさん2014/05/21(水) 23:06:26.99ID:00kr0Z9f
>>810
なんでF#という変化球なのだ
0817デフォルトの名無しさん2014/05/22(木) 00:41:16.90ID:1++y104Q
>>816
いや、なんか関数型とかいうやつだったから、
計算とか強いかなと・・
F#てあまり使われてないの?
Rubyは日本人が作ったのだから、応援したい、
したいけど・・
相場のプログラミングするのに向いてる言語なんだろ?
0818デフォルトの名無しさん2014/05/22(木) 00:47:51.13ID:+hsG2blX
F#はまだメジャー言語じゃないね
同的言語が嫌なら、C#かVB.NETあたりか
0819デフォルトの名無しさん2014/05/22(木) 00:49:10.94ID:SelfAmtB
相場とかに使えるのかどうか知らんが、RとかNumPy辺りが流行ってるのかな。
0820デフォルトの名無しさん2014/05/22(木) 01:08:45.22ID:1++y104Q
ありがとおございます
いろいろありますね、
個人で使うだけだから何でもいいのかもしれないけど、
選択間違えると時間とお金を無駄にしそうでw
一応Rubyも選択肢に入れながらどれにするか決めます。
0821デフォルトの名無しさん2014/05/22(木) 01:47:32.03ID:sJNcHEkt
アクティブファンドのマネージャーとか、どんな言語使っているんだろう
0822デフォルトの名無しさん2014/05/22(木) 02:15:31.90ID:wCE9XBZd
#coding:utf-8

s = "国語,50,算数,70,理科,80,社会,60"
p s.split(',').each_slice(2).inject(0){|total, (k, v)| total + v.to_i }
p s.split(',').each_slice(2).map{|k,v|v.to_i}.inject(:+)
p s.split(',').each_slice(2).to_a.transpose.last.map(&amp;:to_i).inject(:+)
p Hash[*s.split(',')].each_value.map(&amp;:to_i).inject(:+)
p s.scan(/\d+/).map(&amp;:to_i).inject(:+)
p s.scan(/\d+/).inject(0){|a,m|a+m.to_i}
08238112014/05/22(木) 14:38:11.10ID:r8fE+JcD
811です
回答して下さった皆さんありがとうございました。

今度は、外部から並べ替え条件を指定した場合のソートについて教えてください。
外部からの指定は、開始位置、桁数、並び順で複数指定可能にしたいです。

外部からの指定が動的に変化するので、
sort条件の部分が動的に変更する必要があります。
そもそもこんな事が出来るのでしょうか?

indata = Array.new
indata.push("001YAMADA 080A") #番号,名前,点数,クラス
indata.push("015TANAKA 065B")
indata.push("010YAMAMOTO 090A")
indata.push("004UETA 070B")
puts indata
puts

s = "16,1,A,13,3,D" #外部からソートキー指定 =>クラス(昇順)、点数(降順)


sortkey_ary = s.split(',').each_slice(3).to_a #カンマで分割し2次元テーブル化

puts "class(A),tensu(D)"

puts indata.sort {|a, b|
(a[16,1] <=> b[16,1]).nonzero? ||
(b[13,3] <=> a[13,3])
}
puts
08248112014/05/22(木) 14:40:05.83ID:r8fE+JcD
s = "16,1,D,13,3,A" の場合は、下のようになって欲しい
puts indata.sort {|a, b|
(b[16,1] <=> a[16,1]).nonzero? ||
(a[13,3] <=> b[13,3])
}
0825デフォルトの名無しさん2014/05/22(木) 15:07:29.73ID:j+3vqhqP
>>817
平均以下はjava。平均以上と中学生は関数型。
0826デフォルトの名無しさん2014/05/22(木) 15:10:08.17ID:j+3vqhqP
>>818
DDDが普及しないなら、一生、陽の目なんて浴びないだろ
けれど、c#やscalaよりは遥かにマシ
0827デフォルトの名無しさん2014/05/22(木) 15:33:51.44ID:aluTz+nU
>>823
http://ideone.com/7E46HV
08288112014/05/22(木) 17:36:16.90ID:r8fE+JcD
>>827
まだ理解できてないけど、動きました。
ありがとうございました。

それにしても
こんな短いプログラムで書けるとは・・・
0829デフォルトの名無しさん2014/05/23(金) 23:11:58.39ID:+jR4IStU
gollumで
http://localhost:4567/ホームページ
みたいに日本語のページ名が作れないんですがなんか設定しないとだめですか?
0830デフォルトの名無しさん2014/05/24(土) 07:21:55.84ID:5JLWtyft
829 : デフォルトの名無しさん[sage] 投稿日:2014/05/23(金) 05:03:21.40 ID:AUTWzj1B [1/1回]
はたから見てもイミフ
それってクラスCとか追加する時どうすんの?
830 : デフォルトの名無しさん[sage] 投稿日:2014/05/23(金) 05:21:05.98 ID:drSoFeIQ [1/2回]
>>829
マジレスするとASC(昇順)/DESC(降順)の頭文字かと

sortコマンドでいけるからお題としてはイマイチ
831 : デフォルトの名無しさん[sage] 投稿日:2014/05/23(金) 05:54:11.31 ID:VJ/4Ga7W [1/1回]
スマンあまりよく読んでなかったわ

こういうやり方のソート分からんのだけど
cの中に["16", "1", "A"]が入って
そのデータが使われる事もなく上書きしちゃってるけどそれは良いの?
s = "16,1,A,13,3,D" の後半しか使わないなら
each_sliceしてる意味がよくわからない
832 : デフォルトの名無しさん[sage] 投稿日:2014/05/23(金) 06:00:38.98 ID:drSoFeIQ [2/2回]
A/Dの意味を理解してないように思えたので指摘しただけ。

オレも質問物の意図も分からないし納得したポイントも分かってないよ。
でも本人がそれで満足してるんだからほっときゃいいかなと。
833 : デフォルトの名無しさん[sage] 投稿日:2014/05/23(金) 07:33:25.62 ID:6y/Uike0 [1/1回]
>>831
> cの中に["16", "1", "A"]が入って
そうならない。なぜなら each_slice のあとに inject があるから
0831デフォルトの名無しさん2014/05/24(土) 07:24:10.88ID:5JLWtyft
運営バカ過ぎてレスまで飛ぶ
レス消えちゃったし833のバカはスルーでおk
0832デフォルトの名無しさん2014/05/24(土) 08:19:59.34ID:DTqC/a46
ログが失われるほどの鯖落ちなのに
誰も騒がないところを見ると
本当にもう2ちゃんには人居ないんだな
0833デフォルトの名無しさん2014/05/24(土) 09:41:32.95ID:6MS9Ym7b
人はいるけどもはやそんなに重要視してない感じ
もうニコニコ関連、ツイッターのほうが巨大なコンテンツだしなぁ
0834デフォルトの名無しさん2014/05/24(土) 13:50:19.90ID:35dvvibx
ニコニコで放送してるRubyプログラマって何で文字小さいんだろうかね
ライブコーディングなら文字が見えなきゃ意味ないしよ
自己満ですかい
0835デフォルトの名無しさん2014/05/24(土) 14:10:17.53ID:7/7koijJ
晒せよつかえねーな
0836デフォルトの名無しさん2014/05/25(日) 00:27:26.99ID:GqkgEupz
インスタンス変数に外部(そのクラスのメソッド)以外から
アクセサを定義せずに直接アクセスして値を取得する方法を教えて下さい!
08378362014/05/25(日) 00:34:31.83ID:GqkgEupz
もう少しやりたいことを補足します
instance_variable_setを使ってオブジェクトに動的にインスタンス変数を追加していて、
そのテストケースで、追加したインスタンス変数が定義されていることと
値のチェックをしたいのです。

定義されていることはinstance_variablesを使って行いましたが、
値の取得ができていません。
0838デフォルトの名無しさん2014/05/25(日) 00:38:54.50ID:AqTKLZGG
instance_variable_getじゃねーの?
0839デフォルトの名無しさん2014/05/25(日) 00:43:47.62ID:GqkgEupz
>>838
それでOKでした・・・お恥ずかしい
0840デフォルトの名無しさん2014/05/25(日) 00:47:01.30ID:G8SvOUrx
夜中にワロタ
0841デフォルトの名無しさん2014/05/25(日) 00:47:30.70ID:tgiyqQXE
m.times do |i|
n.times do |j|
# iとjを使った処理
end
end
のような2重ループを1重で書く方法はありますか?
Pythonを例に出して申し訳ないですがこういう↓
http://docs.python.jp/2/library/itertools.html#itertools.product
0842デフォルトの名無しさん2014/05/25(日) 00:50:44.21ID:9u8Z5x23
>>841
http://docs.ruby-lang.org/ja/search/class:Array/query:product/
0843デフォルトの名無しさん2014/05/25(日) 01:04:36.54ID:tgiyqQXE
>>842
ありがとうございます
0844デフォルトの名無しさん2014/05/25(日) 21:04:18.15ID:6jPp3Mu9
def hoge(info)
end

というメソッドがあり、infoは通常ArrayかHashが来るのですが、
そこにネストされたHashが来る場合処理を変えたいのです。

つまり通常は[:a, :b, :c]とか{ a: :X, b: :Y }とかいう引き数が来るのですが、
{
p: [:a, :b, :c],
q: { a: :X, b: :Y }.
r: [:e, :f, :g]
}
という引き数も受け取れるようにしたいのです。
これをメソッド内で判定するにはどうすればいいのでしょうか?


質問をごくシンプルにすると、ただのハッシュか、ネストされたハッシュかを判定する方法を教えて下さいということかもしれません
0845デフォルトの名無しさん2014/05/25(日) 22:22:50.56ID:AqTKLZGG
info.values.first.is_a?(Hash)
0846デフォルトの名無しさん2014/05/25(日) 23:38:06.15ID:6jPp3Mu9
ありがとうございました
08478112014/05/28(水) 17:00:05.79ID:SVdOuQRr
>>827
s = "16,1,A,13,3,D"

ソート前
"001YAMADA 080A"
"010YAMAMOTO 090B"
"011YAMAMOTO 090A"
下の様になってほしいんですが、うまく行きませんでした。
"011YAMAMOTO 090A"
"001YAMADA 080A"
"010YAMAMOTO 090B"

16,1,Aが第1キーで、
13,3,Dが第2キーなので 優先順位は第1、第2の順で並んで欲しいです。

http://ideone.com/kii3eP
0848デフォルトの名無しさん2014/05/28(水) 20:37:42.99ID:KYfVKk6v
>>847
Rubyの添字は0から
0849デフォルトの名無しさん2014/05/28(水) 20:57:26.86ID:bxqc+Cae
なんか質問の意図とコードの意図がさっぱりだから
ソート前とソート後のデータ数10件くらい出してくれたら何をどうしたいのか分かるかもしれない
08508112014/05/28(水) 21:49:11.97ID:sePIB49p
>>849

s = "16,1,A,13,3,D"
意味 17バイト目から1バイトを昇順。14バイト目から3バイトを降順に並べかえたい

いわゆる、クラス毎(Aクラス、Bクラスの順)の成績降順に並べかえたい

ソート前
"001YAMADA 080A"
"010YAMAMOTO 090B"
"011YAMAMOTO 090A"

ソート後
"011YAMAMOTO 090A"
"001YAMADA 080A"
"010YAMAMOTO 090B"

http://ideone.com/kii3eP
0851デフォルトの名無しさん2014/05/28(水) 22:02:50.69ID:KYfVKk6v
>>850
Rubyの添字は0から

> i, l, d = k[0].to_i, k[1].to_i, k[2] == 'A' ? 1 : -1
i, l, d = k[0].to_i-1, k[1].to_i-1, k[2] == 'A' ? 1 : -1
とするか
> c = (a[i, l] <=> b[i, l]) * d
c = (a[i-1, l] <=> b[i-1, l]) * d
とする
0852デフォルトの名無しさん2014/05/28(水) 22:19:59.36ID:KYfVKk6v
あぁ勘違いしてた
無視してださいな
0853デフォルトの名無しさん2014/05/28(水) 23:36:51.88ID:mtzJ02bl
>>850
inject の引数に初期値を指定する
s.split(',').each_slice(3).inject(0){|c, k|

>>830 の 831 が指摘してるのはこのことか
> の中に["16", "1", "A"]が入って
> そのデータが使われる事もなく上書きしちゃってるけどそれは良いの?
> s = "16,1,A,13,3,D" の後半しか使わないなら
> each_sliceしてる意味がよくわからない
08548112014/05/29(木) 08:41:03.84ID:yOuey9AU
>>853
とりあえず動きました
ありがとうございました。

でも、injectの意味と
i,lに何が入るのかいまいち理解出来てないorz
0855デフォルトの名無しさん2014/05/29(木) 09:26:44.70ID:6inXlVG/
s.split(',').each_slice(3).each_with_object(0) {| (i , l , d) , c |
&amp;#160; i = i.to_i # 16 , 13
&amp;#160; l = l.to_i # 1 , 3
&amp;#160; c = (a[i, l] <=> b[i, l]) * ( d == 'A' ? 1 : -1 )
&amp;#160; break c if c.nonzero?
}

injectの使い方がまず変だし
とりあえずその謎イテレータで0か0以外を返したいなら
each_with_object(0)でやったほうがまだ変数に無駄はないというか


途中で気づいたけど
その定数打ち込みみたいなのは
"001YAMADA 080A".split
が
["001YAMADA", "080A"]
になるのが分かってない奴のコードなんじゃない
0856デフォルトの名無しさん2014/05/29(木) 09:28:47.00ID:6inXlVG/
うっは半角ついに打てなくなった
0857デフォルトの名無しさん2014/05/29(木) 17:23:25.44ID:iB+Mol+9
NetBeans IDE 8.0
jruby 1.7.3

rubyで日本語文字を使うと invalid multibyte char (US-ASCII)エラーがでました
ぐぐって
1.netbeans.conf の netbeans_default_options の項目に"-J-Dfile.encoding=UTF-8"を追加
2.rubyファイルの先頭に"# encoding: utf-8"を追加

を行うとエラーは解消されたんですが、今度は文字化けするようになりました
p "あ" → "\u3042" みたいな状態です
どうやったら日本語が表示できるよになるかご存知のかたはいらっしゃいませんか?
よろしくお願いします
0858デフォルトの名無しさん2014/05/29(木) 19:24:31.76ID:wRBMavnE
rubyじゃ無理
0859デフォルトの名無しさん2014/05/29(木) 20:06:33.50ID:NXI36I92
それ文字化けちゃう
Unicode文字列や
0860デフォルトの名無しさん2014/05/29(木) 20:40:18.12ID:Of0DEwli
>>857

・puts を使う
・jruby -Eutf-8 を与える
・おすすめしないけと Encoding.default_internal = "utf-8"を使う

好きなものを選ぶといい。
0861デフォルトの名無しさん2014/05/29(木) 22:25:55.99ID:iB+Mol+9
>>857です
>>858-860さん
教えていただきありがとうございます
あれはUnicode文字列に直された「あ」であって、仕様ってことなんですね
ruby2.0.0でもターミナル上で試してみたけど同じ感じになりました

rubyは今朝から勉強しはじめたんですが、pとputsは同じものだと勘違いをしていました
>>860さんに教えてもらったputsやjrubyにオプションを使ってうまくできました
pとputsの仕様を理解して、どっちを使うか考えてみます
勉強になりました、ありがとうございます
0862デフォルトの名無しさん2014/05/30(金) 02:01:23.26ID:zROOwId2
>>861
puts は文字列を表示するためのメソッドで、通常であればこちらを使う。
p はオブジェクトを人間が確認出来るように文字列化して表示するメソッドで、どちらかというとデバッグ用途向け。
nil や "" (空文字) が p と puts でどのように表示されるか試すといい。

それと "\u3042" はもともとユニコード文字列であったものをエスケープ表記したものであって、
ユニコード文字列に直されたものではないよ。
0863デフォルトの名無しさん2014/05/31(土) 01:35:32.52ID:E8YeOxIS
Timeクラスのstrftimeについておたずねします。
リファレンスには「%C: 世紀 (2009年であれば 20)」とあって
実際の世紀より1小さい数字かとも思いましたが
2001年が20になってしまいます。
実装者が間抜けなのでしょうか?
それともリファレンスの執筆者のほうでしょうか?
0864デフォルトの名無しさん2014/05/31(土) 01:43:01.26ID:koubozEB
2001年は21世紀だから20が返るのは当然
この点に関しては間抜けなのは実装者でもなくリファレンス執筆者でもなく、お前

ただ、2000年についても20が返る
これはstrftime(3)の説明では

Replaced by the year divided by 100 and truncated to an integer, as a decimal number

と書かれており、「100で割った切り捨て」なので、世紀ではない
この点ではリファレンス執筆者が間抜けということになる
0865デフォルトの名無しさん2014/05/31(土) 01:49:55.75ID:DuPlv/A7
>>864
それ %y じゃない?
%C は Century の C で man 3 strftime は

% man 3 strftime
...
%C
is replaced by the century number (the year divided by 100 and truncated to an integer) as a decimal number [00-99].
0866デフォルトの名無しさん2014/05/31(土) 01:50:21.87ID:6uEqwFlN
ISO 8601
0867デフォルトの名無しさん2014/05/31(土) 01:52:52.83ID:koubozEB
>>865
%yは100で割った余りだろ

%Cは100で割って小数点以下切り捨てた値(the year divided by 100 and truncated to an integer)だ
これは世紀の(一般的な)定義とは一致しない
0868デフォルトの名無しさん2014/05/31(土) 02:25:34.65ID:DuPlv/A7
>>867
その通りだ。失礼した
0869デフォルトの名無しさん2014/05/31(土) 03:37:22.16ID:StQGqszV
くすくす
0870デフォルトの名無しさん2014/05/31(土) 19:55:38.67ID:pZcQQNRh
class Hoge < Fuga
foo :bar
end



このfooはいつのタイミングで実行されるのでしょうか?
コンストラクタを通過する前ですか?
0871デフォルトの名無しさん2014/05/31(土) 20:37:08.23ID:9VlbAaXB
fooのかわりに p _self とか入れてみればタイミングはわかるよ。

class ... end も評価(実行)される式であって、その評価の最中に fooo が呼ばれる。
ちな、 そのときの self は定義されつつある Hoge(Class クラスのインスタンス)。
0872デフォルトの名無しさん2014/05/31(土) 20:38:17.58ID:9VlbAaXB
ごめん、なんか謎の _ が self についてるけど無視して。
0873デフォルトの名無しさん2014/06/02(月) 16:32:33.83ID:1Or10QXx
ゾーン10進数を数字に変換したい。
例えば16進でx"303130c1"を数字の-101に変換したい
x"303130c1" #=> -101
x"31323334d5" #=> 12345
x"31d1" #=> 11

str.unpack("H*")[0]で文字列化は出来た

知識がたりなくて解決できんorz
08748732014/06/02(月) 16:51:41.26ID:1Or10QXx
符号を間違えた
x"303130D1" #=> -101
x"31323334C5" #=> 12345
x"31F1" #=> 11
0875デフォルトの名無しさん2014/06/02(月) 21:30:37.62ID:xvF/lCz4
>>873
符号についてイマイチ要領がえられんがこういうことか?

def デコード(入力)
結果 = 0
符号 = 1
桁 = 1

while 入力 > 0
n = 入力 & 0x0f
if n == 0
符号 = -1
else
符号 = 1
結果 += n * 桁
end

桁 *= 10
入力 >>= 8
end

符号 * 結果
end

p デコード 0x303130D1 #=> -101
p デコード 0x31323334C5 #=> 12345
p デコード 0x31F1 #=> 11
0876デフォルトの名無しさん2014/06/02(月) 22:28:57.90ID:oL0V5+7Q
def foo(&block)
bar &block
end

def bar(a, &block)
define_method(a, &block)
end


foo { puts :test }

2つ先のメソッドにブロックを渡したいときは、その経由するメソッドが常に&で引数を定義しているしか方法はないのでしょうか?
0877デフォルトの名無しさん2014/06/03(火) 00:00:17.22ID:21gnvLmH
>>876
ブロックを受け取る方法としては、他には引数なしで proc を呼べばできる。
08788732014/06/03(火) 04:24:41.01ID:uM/LkyJo
>>875
マスク掛ければいいのか!!!
なるほど。
勉強になります
08798732014/06/03(火) 04:47:03.82ID:uM/LkyJo
>>875
n = 入力 & 0x0f
試してないけど、符号が取得できない気がする

上位 = 入力 & 0xf0
if 上位 == 0xd0
符号 = -1
else
符号 = 1
end
とかで出来るんだろか?
0880デフォルトの名無しさん2014/06/03(火) 09:36:07.26ID:cUWl3TqT
>>877
yieldではダメなんですか?
0881デフォルトの名無しさん2014/06/04(水) 21:36:03.20ID:RXK6c4Kp
>>879
符号は最上位バイトが 0 を意味するかどうかで決まるんじゃないのか。
>>875 の方法は小さい桁から処理するようになっているから >>879 の方法をそのまま組み合わせてもうまくいかないよ。
もう少し追加する必要がある。
0882デフォルトの名無しさん2014/06/04(水) 21:40:03.92ID:RXK6c4Kp
>>880
>>876 は『2つ先のメソッドにブロックを渡したい』と言っている。
受け取ったブロックをそのままの形で渡したいという意味であれば yield は当てはまらない。
実行結果は大差ないのだろうけれど。
0883デフォルトの名無しさん2014/06/05(木) 00:41:53.02ID:Q6SBWoxC
教えてください。

タプルを使って、プロセス間の通信を行おうと思います。
で、どうなるのかな〜と、サーバ側で受信をしないまま、クライアント側で延々と送信するってことをやってみました。
サーバ側でデータがたまる?と送信側がだんだんと遅くなっていくように思えました。
この点について、

1. サーバ側で、バッファ?にたまったままのデータの総量を知ることは可能でしょうか。
2. サーバ側で、バッファ?に指定値以上のデータが溜まった場合に、
  クライアント側で送信が失敗するようにすることは可能でしょうか。

いずれも可能であれば、その方法も教えていただければと思います。お願いします。
0884デフォルトの名無しさん2014/06/05(木) 04:43:31.41ID:82BFuaye
UDP
08858732014/06/05(木) 10:13:44.42ID:mY6j5Wz3
>>881
説明不足ですみませんでした。
ゾーン10進数は、一番右端の上位がdでマイナス
cかfでプラスです
0886デフォルトの名無しさん2014/06/05(木) 11:24:57.02ID:ETtr0yD7
松江、プログラミング言語「Ruby」普及を目指しサイト開設
http://peace.2ch.net/test/read.cgi/newsplus/1401934609/
0887デフォルトの名無しさん2014/06/05(木) 18:49:38.12ID:vH4xfyJG
t =Thread.start{
  loop{
    puts "hello"
    sleep 2
  }
}
とスレッドを作っておいて、t.stop t.runで止めたり走らせたりしよとしましたが、
失敗します。どうやればいいでしょうか?
0888デフォルトの名無しさん2014/06/05(木) 21:13:02.23ID:TjofFVL8
>>883
>1. サーバ側で、バッファ?にたまったままのデータの総量を知ることは可能でしょうか。

できない

>2. サーバ側で、バッファ?に指定値以上のデータが溜まった場合に、
  クライアント側で送信が失敗するようにすることは可能でしょうか。

プロセス間通信サービス上で「フロー制御」と呼ばれる規約(プロトコル)を実現するのが真面目な解決策
フロー制御に関しては、まず最初にWikipediaを参照のこと
詳しくは「ネットワークプログラミング相談室」スレで質問を投げたほうがいい

ただし、普通はバッファが満杯で送信が一時的に不可になるとプロセス間通信サービスへの
呼び出しそのものがブロックされるので、それにまかせるのが一般的な実装
もしもブロックを避けたいのであれば、送信処理だけを独立したスレッドで実行するといった
根本的な方式設計の見直しを検討すべき
それすら難しい環境が前提であれば、はじめてフロー制御の実装も検討課題になる
0889デフォルトの名無しさん2014/06/05(木) 21:24:32.37ID:KxqpnMQp
tumblr_clientを使って取得したデータを置換したいのですが、

tumblrapi.rb:12:in `<main>': undefined method `gsub' for #<Hash:0xb8ece81c> (NoMethodError)
とエラーが出てうまくいきません。

コードの関連すると思われる部分はこんなかんじで、
tumblr = Tumblr.new.posts("hoge.tumblr.com", {:tag => "aaa"})
puts tumblr.gsub("=>",":")

Tumblr.new.posts("hoge.tumblr.com", {:tag => "aaa"})の中身は
{"blog"=>{"title"=>"題名未設定", "name"=>"hoge", "posts"=>1793, "url"=>"http://hoge.tumblr.com/";,
"updated"=>1401719378, "description"=>"", "ask"=>false, "ask_page_title"
…
ってかんじです。
どうやったらうまく行くかわかる方がいたら教えてください。
OSはxubuntu14.04LTSでrubyのバージョンはruby 2.1.1p76です
0890デフォルトの名無しさん2014/06/05(木) 21:45:51.67ID:andVixui
エラーメッセージの通り
Hashにはgsubなんてメソッドはない
0891デフォルトの名無しさん2014/06/05(木) 21:54:17.56ID:TjofFVL8
>>885
http://play.island.ac/codepaste/code?id=1579
08928832014/06/05(木) 23:28:39.57ID:Q6SBWoxC
返信をありがとうございます。

>>884
UDP で送れば、送信側では遅延が発生しないって解釈で正しいですか。

>>888
実現性について、はっきりしたので助かりました。

他人が書いたコードを引き継ぎまして。自分も ruby はあまり経験がなく。
どうも受信した側の処理速度が遅いらしく、気がつくとだいぶか前に受信したデータを処理しているなんてこともあるようでして。
この影響からか、送信側でもタイムアウトエラーが出ているようです。
それでこの対策として、「溜まってたらそれ以上送信できないようにする」という案があり、実現性と有効性を考えていました。

いくつか他にもネタがあるので、根本的な修正をそれとなく提案してはいるような状態です。
0893デフォルトの名無しさん2014/06/06(金) 05:20:22.20ID:6xRK/1HT
はじめまして。現在Rubyを勉強を始めたばかりです。

Rubyの勉強をするに当たり、自分の書いているコードがどの程度メモリを消費するのかと思い、
ObjectSpace.count_objects()
にて確認しようと思っているのですが、各項目の意味がわかりません。

マニュアル等にもこの項目の説明がないのですが、それぞれの意味はどのようなものなのでしょうか?

最初のTOTALとFREEがメモリ消費量と空き容量と考えたのですが、FREEが空いているにも関わらずTOTALが増えるなど動作がよくりかいできません。
また、この数字の単位はなにになるのでしょうか?
私の環境ではインタプリタの起動だけであれば、20000程度になるのですか単位はKBなのでしょうか?

よろしくおねがいします。
08948732014/06/06(金) 12:47:39.81ID:MzEt5DgJ
>>891
ありがとうございました。
08958732014/06/06(金) 15:49:01.01ID:MzEt5DgJ
いつもお世話になっています。
今度は渡されたパラメータによってデータを抽出したいのですが、
良いアイデアがあったらお願いします。

パラメタ説明
「位置,長さ,データ形式,演算子,比較値」を1セットとして
OR,AND,カッコ()などで条件式を自由に記述する事ができます。
データ形式「CH=文字,以外は数字」
演算子「EQ:(a == b),NE:(a != b),GT:(a > b),GE:(a >= b),LT:(a < b),LE=(a <= b)

たとえば
# (Aクラス かつ 80点以上)または(Bクラス かつ 50点以上)または(Cクラス)を抽出
#パラメタ= "(0,1,CH,EQ,"A",AND,14,3,ZD,GE,80),OR,(0,1,CH,EQ,"B",AND,14,3,ZD,GE,50),OR,(0,1,CH,EQ,"C")"

rubyで書くとこんな感じになります。
outdata = Array.new
indata.each{|s|
if (s[0,1] == "A" && s[14,3].to_i >= 80) ||
(s[0,1] == "B" && s[14,3].to_i >= 50) ||
(s[0,1] == "C")
outdata.push(s)
end
}

パラメタを解析して、上記のような抽出条件を生成したいです。
よろしくお願いします。

http://ideone.com/Mqr7Yv
0896デフォルトの名無しさん2014/06/06(金) 18:20:55.25ID:P72D4ejY
>>895
・パラメータは、1つのCSV文字列にする。
・パラメータ文字列内は、逆ポーランド記法にする。
0897デフォルトの名無しさん2014/06/06(金) 23:39:47.35ID:XcM2C4Vm
>>894
>>891を一晩置いて見直したら、より簡潔になった...かも
  http://play.island.ac/codepaste/code?id=1580

[変更点]
・String#getbyte で最終バイトを取り出すようにした
・メソッドの命名が適切ではないように思えたので、訂正した
0898デフォルトの名無しさん2014/06/07(土) 06:11:31.37ID:HlN+9CGy
チケットとかの申込をさせるプログラムを書きたいんだけどRubyは適してる?
どこから勉強はじめていいかも教えてもらえるとありがたい。
0899デフォルトの名無しさん2014/06/07(土) 06:18:37.46ID:9GBf0cSU
>>898
いきなり言語から選ぶ時点で間違っている。設計による。
0900デフォルトの名無しさん2014/06/07(土) 08:11:56.19ID:HlN+9CGy
>>899
なるほど。あまりWebに関する知識も経験もないんだけど、設計とはどんな感じですればいいのだろう?
取っ掛かりが分からなくて困ってる。
0901デフォルトの名無しさん2014/06/07(土) 09:07:48.71ID:/gMYq1Ml
Rails なら馬鹿でも使えるよ!
0902デフォルトの名無しさん2014/06/07(土) 09:37:39.73ID:HlN+9CGy
>>901
バカは喋らないでほしい
0903デフォルトの名無しさん2014/06/07(土) 10:31:39.69ID:9GBf0cSU
>>900
いつのまにwebという設計にしたが知らんが。
OMTとか既存の設計手法を使えばいいんじゃない。ただいきなりやっても失敗するだろうから、まともな設計ができる人の下について学ぶ方がいいと思う。
09048952014/06/07(土) 13:56:57.57ID:nytus6Pq
>>895
逆ポーランド記法調べたけど、難しい(汗;
初心者の俺はカッコ悪いけどeval使った方が分かりやすかったorz

ご意見をお願いします。

http://ideone.com/TRracO
0905デフォルトの名無しさん2014/06/07(土) 16:47:42.58ID:7QdOHJtS
>>893
ruby が管理しているオブジェクトの個数を表しており、バイト数ではない。
で、TOTAL は FREE も含めたオブジェクトの総数を示している。
残念ながら使用メモリ量を確認する手段は用意されていない。
OS が提供する機能を dl ライブラリを通して取得するか、gem ライブラリにあるかは不明だがそちらを探してみ。

ちなみに ObjectSpace.count_objects が返すそれぞれのキーは ruby の実装内部におけるデータ形式で、
それぞれのインスタンスだと考えていい。
例えば T_STRING は文字列 (派生を含む String クラスのインスタンス) を表している。
分かりづらいのは
* T_DATA が C 言語レベルでのデータを持つインスタンス
* T_ICLASS が特異オブジェクトのための特殊なクラス
* T_NODE が ruby スクリプトを解釈した構文木の要素
を表しているってところかな。
0906,,・´∀`・,,)っ-○○○2014/06/07(土) 17:20:34.79ID:x3Apu0jy
>>901
雛形改造レベルである程度のものが作れるのは確かだけど
バカには使わせちゃいけないのがRails
0907デフォルトの名無しさん2014/06/07(土) 22:09:30.36ID:mg6Kw861
そう思った理由とソースを書けよタコ野郎
0908デフォルトの名無しさん2014/06/09(月) 00:23:25.94ID:6m+ifHBS
rubyとpythonがよく比較にあがるらしいのですが、具体的にどんな違いがありますか?
仕事で使われる時に、何故rubyを使うのか、pythonを使うのかといった判断基準も気になります
0909デフォルトの名無しさん2014/06/09(月) 01:01:27.54ID:xabr+HDU
>>908
他言語との比較はスレ違いなので、以下のスレへ移動を:
・【PHP,JavaScript】スクリプト バトルロワイヤル43【pl,rb,py】
  http://peace.2ch.net/test/read.cgi/tech/1396153182/
0910デフォルトの名無しさん2014/06/09(月) 16:22:14.70ID:wV+5vPJS
Rubyって、サブクラスからスーパークラスの別名メソッド呼べないんですかー?
スーパークラスの同名メソッドならsuperで呼べるんですが。
09119102014/06/09(月) 16:28:05.18ID:wV+5vPJS
あ、スーパークラスのメソッドがサブクラスでオーバーライドされている時です。
0912デフォルトの名無しさん2014/06/09(月) 16:57:11.45ID:uTgA5MBX
そんなことになるなら継承しちゃいかん
0913デフォルトの名無しさん2014/06/09(月) 17:44:39.21ID:aKPgDywM
ttp://www.ruby-doc.org/core-2.1.2/Module.html#method-i-instance_method
でクラスやモジュールのインスタンスメソッドをぶっこ抜いて
ttp://www.ruby-doc.org/core-2.1.2/UnboundMethod.html#method-i-bind
でサブクラスのインスタンスを指定し
ttp://www.ruby-doc.org/core-2.1.2/Method.html#method-i-call
でメソッドを呼ぶ

使い辛いって? 推奨されない方法だからな
親飛び越えて意見できるとは思わないほうがいいぞ
09149102014/06/09(月) 18:20:01.87ID:wV+5vPJS
>>913
先生こうですか!
できました、ありがとうございます。

くだらないことでも、質問してよかったです。
ためになりました。

class A
def foo; "Super!"; end
end

class B < A
def foo; "Sub..."; end
def bar
um = A.instance_method(:foo)
um.bind(self).call
end
end

p B.new.bar
0915デフォルトの名無しさん2014/06/09(月) 20:04:31.20ID:aKPgDywM
くそっ わざわざ英語のリファレンスを選んだってのに

というかそのクラス構成ならclass Bでdef fooをする前にaliasをして
barからそのメソッドを呼ぶようにするべきだな
0916,,・´∀`・,,)っ-○○○2014/06/09(月) 20:15:13.69ID:zgyYB5Bh
何を作りたいかは知らないが
経験上単一継承で作るよりは極力必要なクラスでMix-inしたほうがいいかなと思う。

ActiveRecord::Base
    |
HogeAppBase←ここにあらゆる共通メソッドを追加
    |
  Model複数

こんな継承関係やったらコードがえらく汚くなったことがある
09179102014/06/09(月) 20:16:44.97ID:wV+5vPJS
>>915
なるほど、この方法も見事ですね。
こんなのを思いつくなんて、先生は相当な手足れですね。

class A
def foo; "Super!"; end
end

class B < A
alias baz foo
def foo; "Sub..."; end
def bar; baz; end
end

p B.new.bar

ありがとうございました。
09189102014/06/09(月) 20:18:19.39ID:wV+5vPJS
>>916
Rubyの試験受けようかと思って、いろいろ遊んでるだけです。
また教えてくださいね。
0919デフォルトの名無しさん2014/06/09(月) 21:00:09.69ID:4OU1CSGO
2.1.2でSJISとバイナリの混合データを処理し画面に
表示する場合、どのような実装が推奨されますか?
試してみたこと
1.1.8的に書く
 →$>に出力すると文字化けで読めない
2.read後にforce_encoding("Windows-31J")で文字コードをセット
 →scan(regexp)や[regexp, n]などでエラーが出る
3.適宜Windows-31JとASCII-8BITを切り替える
 →トラブルの元
4.表示するたびにNKFやKCONVで変換
 →そのためにNKFを使うのも・・・見た目もよくない
なにか、お手軽かつスマートな実装があれば・・・

よろしくお願いします
0920デフォルトの名無しさん2014/06/09(月) 21:02:32.61ID:aJwnrUlY
binaryで読んで文字列部分だけ切り出してforce_encoding
0921デフォルトの名無しさん2014/06/09(月) 23:58:48.76ID:aKPgDywM
>>917
俺が考えたんじゃなくて先達の知恵
オープンソースっつー鉱脈もあるんだから
この手のことは他人から盗むのが一番だ(コピペの意味じゃないからな、念のため)
0922デフォルトの名無しさん2014/06/10(火) 08:04:05.73ID:oUviKcQy
>>898-903
WEB系でDB を使うのは、PHP が多い
Web プログラミング板を参照
PHPのスレが数十ある

山田祥寛(よしひろ)
10日でおぼえる PHP 入門教室、第4版、2012

この本では、Apache Friendsが提供する、XAMPPを使っている
XAMPPとは、Apache ウェブサーバやMySQL, PHP
などがセットになったもの

Rubyは、シェルスクリプトやPerlを置き換えるもので、
サーバの構築などに使われる
プログラミングするというより、
条件分岐してコマンドを呼び出すのによい
0923デフォルトの名無しさん2014/06/10(火) 08:08:39.73ID:KjUuulVT
Perl代わりとしては
OSとは別個に入れて管理しなきゃいけないのと互換性の低さが致命的なんだよなあ
0924デフォルトの名無しさん2014/06/10(火) 08:54:36.77ID:fSq5srf6
>>923
PerlがOSインストールと同時に入るような環境なら、RubyもOSに合ったもの入れられるだろ。
Windowsとかの、パッケージ管理が無い環境なら論外だが。
0925デフォルトの名無しさん2014/06/10(火) 09:09:49.09ID:DTzE393w
>>923
PerlでもPythonでもそれは同じじゃないか
0926デフォルトの名無しさん2014/06/10(火) 09:53:41.53ID:pVqiHj2n
>>922
PHPはウェブデザイナが手を出しやすいから人が多いだけで、使いづらいと感じる。
0927デフォルトの名無しさん2014/06/10(火) 17:48:49.11ID:+LdDk5l6
林檎謹製Swiftだって。。。

対抗馬になりそうな言語への弾圧作戦が開始されるんだろうね
林檎箱から指令を受けたマカーによる工作が、

Pythonなど支援団体が強固なところは乗り切れるだろうが、Rubyはどうかな
マカーに祭り上げられてポヤポヤしてたときに潜入した工作員や団体が残ってるから
ダメも知らんね。すでにガタガタ言わされてるようですね。
Macサイコー!Windowsしねーみたいな感じだったでしょ、いまさらWIndowsを
拠点にするわけにも逝かないし、Linuxはやっぱり鯖用途が重視されるから
拠点を構築してても攻撃されたら一気に持っていかれそう。

JRubyみたいな感じで旧資産を吸収される流れを加速させて工作員ごと分離して
廃棄後に、国産言語枠で細々とやっていくというのが現実的なのかもね。
0928デフォルトの名無しさん2014/06/10(火) 18:02:25.46ID:txlE9CX2
>>924
Windowsにもパッケージ管理導入されるよ
0929デフォルトの名無しさん2014/06/10(火) 20:46:09.64ID:5HgHF0GA
>>927
Swiftに踊らされる馬鹿がここにも一匹

Objctive-C にあった裸のC言語によるメモリ破壊という欠点を補い、
対抗相手のJava/C++と同レベルのメモリ保護に追いついたのがSwiftだ
それがAppleの言う安全性(safety)というSwiftの利点の意味するもの
静的型付け言語としてSwiftと比較、競合されるのはObjC/Java/C++であって、
PythonやRubyといったスクリプト言語に直接的な影響を与えることはない

ましてや現時点において、OSX/iOSといったAppleプラットフォーム上で
死にかけているスクリプト言語はRubyではなくPythonのほうだ
Rubyには、MacRuby(OSX)やRubyMotion/RubyMobi(iOS)があるから、
OSX/iOSネイティブ・アプリケーションを素早く開発するための
オープンソースなスクリプト言語として最も優位な位置を占めている
それに対して、Pythonといえば旧世代の実装であるPyObjCで開発が停滞している

・Python for iOS (like RubyMotion) - Stack Overflow
 http://stackoverflow.com/questions/10456648/python-for-ios-like-rubymotion

> you can't really compare PyObjC and Macruby, PyObjC is a bridge like RubyCocoa
> as you already said MacRuby is Ruby on Top of ObjC runtime.
> By replacing the Garbage collector from PyObjC will not work since it's a Bridge.
> &#x2013; Sean Mateus May 14 '12 at 13:32
0930デフォルトの名無しさん2014/06/10(火) 21:07:15.47ID:KXd/m63n
Ruby 2.xが標準で載るのは何時なんだろ。
レン鯖は今だにサポートの終った1.8.7しか載っていないし。
0931デフォルトの名無しさん2014/06/10(火) 21:18:40.37ID:g4Ir3b+j
CentOSのパッケージに入ったときだろうな
0932,,・´∀`・,,)っ-○○○2014/06/11(水) 20:47:27.03ID:LAxb9MUT
MacユーザーこそRails使いが多い
ネイティブコード吐く言語とWebに強いインタプリタ言語じゃ全然守備範囲が違うだろ
0933デフォルトの名無しさん2014/06/11(水) 21:01:27.46ID:+K6AGXZI
Rails使いにMacユーザーが多いのは確かだが逆はそうでもない
世界的に見ればMacユーザーはPythonの圧勝だ
0934デフォルトの名無しさん2014/06/11(水) 21:20:29.46ID:uvpFnhzC
絶対プログラマ数であればPythonのほうが多いのは現実だから、
それに比例してMac/iPhoneユーザのプログラマ数でも
おそらくはRubyプログラマよりPythonプログラマが多いのだろう
(Macには個人向けUNIXワークステーションとしての用途があるからね)

ただし>>929で書いたように、言語の処理系実装という技術的視点であれば、
ネイティブOSX/iOS開発向けスクリプト言語として「Pythonの敗北は決定的」だ
PyObjCは(RubyCocoaに相当する)ブリッジを前提とした世代遅れの実装でしかない
0935,,・´∀`・,,)っ-○○○2014/06/11(水) 22:17:50.70ID:LAxb9MUT
本番環境はやっぱりUbuntuのLTSだよな
0936デフォルトの名無しさん2014/06/12(木) 02:47:24.54ID:847Pam/V
ttp://ideone.com/dHxqTh

どこかで見かけた階段の登り方の総数は。(一回に上れるのは1,2,3段)
という問題を解いていてトリボナッチ数列使えることに気づき上記のコードを書いたのですが、これ以上に最適化(高速化、より深い再帰など)ってできるんでしょうか。
0937デフォルトの名無しさん2014/06/12(木) 10:06:43.99ID:LyErUNET
それがわかるレベルの人はここにはいないので
2ch以外で聞いた方がいいです
0938デフォルトの名無しさん2014/06/12(木) 11:05:49.98ID:VXukLz1K
>>936
ほとんど変わらんけど

class TriBonacci
def initialize
@memo = [1,1,2]
end
def f(n)
@memo[n] || @memo[n] = f(n-1) + f(n-2) + f(n-3)
end
end

n = 6500
p TriBonacci.new.f(n)
0939デフォルトの名無しさん2014/06/12(木) 15:04:11.34ID:csvGFFzv
>>936
http://www.youtube.com/watch?v=Q4gTV4r0zRs
0940デフォルトの名無しさん2014/06/12(木) 16:12:24.10ID:SK659vFt
なぜTwitterは低遅延のままスケールできたのか 秒間120万つぶやきを処理、Twitterシステムの“今” − @IT
http://www.atmarkit.co.jp/news/201004/19/twitter.html

RORのままアーキテクチャの変更で10000%高速化したとな。
ttp://b.hatena.ne.jp/entry/highscalability.com/scaling-twitter-making-twitter-10000-percent-faster

ミニブログの Twitterのstats(統計)データ。
http://kaworu.jpn.org/kaworu/2008-01-16-2.php
- 350,000を超えるユーザ。
- 秒間600リクエスト
- 平均毎秒200-300コネクション。最大時は秒間800コネクション
- MySQLは秒間2,400リクエストを処理する
- 180のRailsインスタンスがある。MongrelのWebサーバを使っている。
- 1つのMySQLサーバ(1つの大きな 8コアのサーバ)と1つのスレーブ。スレーブは、統計とレポートのための読み込み専用(リードオンリー)。
- 雑用処理をするための30+のプロセス
- 8台のSun X4100s
- Railsでのリクエストの処理時間は200 msec
- データベースにかかる時間の平均は、50-100 msec
- 16GBの memcached
0941デフォルトの名無しさん2014/06/12(木) 17:32:57.78ID:847Pam/V
>>938
成る程、短絡にすると読みやすいし無駄も減りますね。

>>939
ものすごい数の場合を計算させるときは素直に計算するのではなく、アルゴリズムを考えるのが正解なんでしょうか。
0942デフォルトの名無しさん2014/06/12(木) 18:16:01.13ID:FSiTWKCJ
4コア8コア当たり前のせかいだし
シェルに投げてもいいんじゃないの?
0943デフォルトの名無しさん2014/06/13(金) 06:22:35.86ID:iDk9iIjv
>>936
http://ideone.com/tG0ln6

O(log n) のアルゴリズムで書いてみた。
n = 1000000 でも1秒かからない(結果を出力しなければ)。
分からないことがあったら聞いてくれ。
0944デフォルトの名無しさん2014/06/14(土) 03:24:05.95ID:2dTBHwj7
>>943
このアルゴリズムの成立過程が気になります。
トリボナッチ数列に固有の性質として添え字が偶数奇数かにより効率よく計算できる式が導けるける。ということでしょうか。

require 'matrix'
def f(n)
(Matrix[[1,1,1],[1,0,0],[0,1,0]]**n)[0,0]
end

なんてのも試しましたが
n = 1000000
のとき>>953のコードの凡そ15倍でした。
0945デフォルトの名無しさん2014/06/15(日) 02:27:52.26ID:bxBuaLtn
>>944
書きかけでこれから書き直すと思うけど
http://d.hatena.ne.jp/haruya12/20140614/1402766602
0946デフォルトの名無しさん2014/06/15(日) 06:29:10.87ID:/gWIMzTb
質問です。

スクリプトファイル内で、スクリプトファイルが置かれているディレクトリを
取得したいんですが、どうすればいいでしょうか。

File.basename($0) とすると、他のスクリプトファイルから呼ばれた時に、
「呼び出した側」のパスが $0 に入ってきてしまいます。

どこから呼ばれても「呼び出された側」のパスを取得できるようにしたいのです。

よろしくお願いします。
0947デフォルトの名無しさん2014/06/15(日) 08:27:44.07ID:qa4IDQI3
>>945
なるほど、一般項を出すのではなく別の表現を得るために特性多項式を用いることもできるのですね。

行列のn乗を2n乗にして比較するとかはフィボナッチ数列の場合ほどうまくいかなかったので諦めてしまったのですが、これは目から鱗でした。
0948デフォルトの名無しさん2014/06/15(日) 09:18:25.58ID:RmAzQm82
>>946
__FILE__
09499462014/06/15(日) 09:33:39.88ID:/gWIMzTb
>>948
「Ruby __FILE__」でググったところ、File.expand_path(".") で
「呼び出される側」のディレクトリが取得できることがわかりました。

ありがとうございました。
これで、どこからスクリプトを呼んでも同じ挙動をするようにできます。
0950デフォルトの名無しさん2014/06/15(日) 13:38:38.05ID:lefrVeu0
ん?
09519462014/06/15(日) 13:42:04.59ID:/gWIMzTb
>>950
あ、>>950でFile.basenameとFile.dirname間違えました。
失礼しました。
0952デフォルトの名無しさん2014/06/15(日) 18:22:50.87ID:gpx89xWw
$0
0953デフォルトの名無しさん2014/06/17(火) 23:56:38.23ID:TjnCE1Im
gnuplotみたいに
gnuplot > hoge
とか対話式のコマンドラインツールを作りたいんだけど、
editlineとかreadlineみたいな仕組みも取り入れつつ、
簡単に書けるライブラリとかないでつかね
0954デフォルトの名無しさん2014/06/18(水) 00:15:35.13ID:K2PaBBH0
>>953
標準ライブラリに readline があるよ
まずは「るりま」で公式リファレンスの解説を読み、
次に "ruby readline" でググるといいと思う
最近のこのスレだと Part52#346 にサンプルがある

 http://peace.2ch.net/test/read.cgi/tech/1370530209/346
0955デフォルトの名無しさん2014/06/18(水) 13:06:01.32ID:PX29oX8a
twittergemを使ってプログラムを作っているのですが
twitpicにアップロードされた画像のurlを取得したいのですが、
やり方がわかりません。

今作ってるプログラムとしてはリプライで送られてきた画像をローカルに保存するようなプログラムをつくっているのですが、
うまく取得できないです。
0956デフォルトの名無しさん2014/06/18(水) 22:07:51.93ID:pUJDGfyb
>>955
私も初心者なのできちゃないコーディングだけど、これでできてる

if tweet.uris?
tweet.uris.each do |value|
url=value.expanded_url.to_s
if url.include?('twitpic')
filename = url.split(/\//).last
url='http://twitpic.com/show/full/'+filename+'.jpg'
0957デフォルトの名無しさん2014/06/19(木) 15:30:50.48ID:gduOxxnf
ばっちぃです
0958デフォルトの名無しさん2014/06/19(木) 22:36:13.93ID:+wVfn22N
たのしい4版のあとにオライリーのプログラミング言語Rubyを読もうと思うのだけれど、2.xになった今でも使って大丈夫かな?
気をつけないといけないところはある?
0959デフォルトの名無しさん2014/06/19(木) 22:51:51.99ID:E/8hp7e3
>>956
プログラミング言語まったくの初心者だからぜんぜんわからないんだけど
if tweet.uris?
tweet.uris.each do |value|
この二行ってどういう意味ですか?
0960デフォルトの名無しさん2014/06/19(木) 23:20:49.46ID:oi99l3rA
>>958
最近、その2冊を購入して手元にある
どちらも 1.9 時代に書かれた書籍だから、
2.0 以降の追加/変更については書かれていない
たとえば:
・遅延評価を実現するために追加された Lazy
・廃止されたエンコーディング指定のためのマジックコメント強制(2.4.1章)
といったあたり

ただし、1.9 -> 2.0 ではインタプリタ内部の実装には多くの改善が
加わったけど、Rubyプログラマという利用者から見える言語仕様は
ほとんど変化していない
読んで誤解する部分よりも読んで得られる整理された知識という利点はずっと大きいから、
(上記のマジックコメントの箇所を除けば、)十分に役立つ書籍だと思う
Lazy等、2.x時代の新しい話題はネットで情報収集すればいい

ざっと目を通したレベルだけど、こんな印象を持った
たのしいRubyを読んで「よくわからなんけどすげえ」と感じたことが、
「おぉー、そういうことだったのか」と合点がいくようになる .... かもしれない(w
0961,,・´∀`・,,)っ-○○○2014/06/19(木) 23:26:59.39ID:EoMFkE2m
Rails 3.x→4.xに比べれば言語処理系本体の変更なんて些細なもんですよ
0962デフォルトの名無しさん2014/06/19(木) 23:30:14.97ID:kbMSHpHu
>>960
2,0ではデフォルトエンコーディングがUTF-8に変わっただけで、それ以外の
エンコーディングで書く場合には相変わらずマジックコメントは必須だよ
0963デフォルトの名無しさん2014/06/19(木) 23:37:44.51ID:+wVfn22N
>>960-962
そうなんだ。
サンプルコードを試す時は2.xを使わず1.9を使えば取り敢えず学習には問題ないんだね。
エンコードとかのそこらへんの上級のことはまだ先だから、基本部分に大きな問題がなければ良いや。
注文して来よ。

2.xに対応した改訂版がでると良いのだけれど、そろそろ出さないのかな?
0964デフォルトの名無しさん2014/06/20(金) 00:03:49.36ID:oi99l3rA
>>962
いや、2.0でデフォルトエンコーディングが
(ASCIIから)UTF-8に変わったことが大きいんです

(EUCやSJISで書かれた)古いコードの保守を
仕事にしている人を除けば、今時のほとんどのプログラマは
UTF-8を前提にしてコーディングしているでしょ
世界レベルでもASCIIデフォで満足できるのは英語圏の人だけでしょ

どうして 1.9 ではデフォを ASCII なんかにする判断をしたの?
個人的には、ふつうのプログラマの自然さ/楽しさを追求するはずの
「Rubyプロジェクトらしからぬ間違った決定」だったと思います
そして結果的には、文字列リテラルやコメントに2バイト文字を使いたい
「ふつうのRubyプログラマ」にとって、1.9 のASCIIデフォ決定は
マジックコメント強制と同じ意味になってしまったんですよ
0965,,・´∀`・,,)っ-○○○2014/06/20(金) 00:09:33.43ID:c2t2VBBN
ActiveRecordから帰って来る文字のエンコーディングがUTF-8を想定してるのに
糞gemが勝手にASCIIエンコーディングに書き換えてストレスがマッハ








deviseてめーのことだ
0966デフォルトの名無しさん2014/06/20(金) 07:35:23.24ID:+JwfTZEP
久しぶりにWin環境用のGUIツールでも作ろうとwxRubyを探したらWebページ自体が消滅している模様
wxRubyのほかに最近のRubyで動くネイティブ系のGUIツールキットってありませんか?
Tk/TclはWin標準の対応が不完全で微妙・・・
0967,,・´∀`・,,)っ-○○○2014/06/20(金) 07:55:23.83ID:c2t2VBBN
JRuby+JavaFXでいいんじゃない?
0968デフォルトの名無しさん2014/06/20(金) 10:01:00.56ID:fiYVjyLm
>>966
Windows向けGUIツールキットならば Ruby-IUP がある
IUP はよくあるマルチプラットフォーム対応なツールキットだけど、
プラットフォーム・ネイティブなウィジェットを使う点が特徴
Windows上であれば、外観からRubyアプリか否かは見分けがつかない
  http://www.tecgraf.puc-rio.br/iup/en/gallery.html
問題は:
・最終gemリリースが2010年なので、おそらく最新の2.x系では動かない(実機未確認)
・Mac上ではCocoa未対応なので、Xウィンドウ(GTK2.0)が前提(GTK+-Cocoaは未確認)
・日本語情報が皆無
なこと

もしJavaに心理的な抵抗が無い人なら、>>967の勧める JRuby がいいと思う
新しいJavaFX以外にも、ネイティブウィジェットを使い豊富な機能を提供する SWT や
(GTK等と同じく)ネイティブウィジェットではないけどJava標準でシンプルな Swing もある

ここ数年、Ruby界隈は Web へ開発パワーが集中していたから、GUI周辺は寂しい感じがするね
09699662014/06/20(金) 22:55:41.58ID:/kxP5xgK
レスありがとうございます

>JRuby+JavaFX
これはPCにJavaが入っていないと動きませんよね?
exerbで固めて配布も考えているので何かを入れないと動かない物は
なるべくさけたいです

>IUP
0.1.0は1.8用のようです。しかも情報がwxRubyよりさらに少ない気が・・・

現状だと選択肢は
2.x+Ruby/tk ・・・ Win標準操作と互換性がイマイチ
1.8+wxruby2.0.1 ・・・ 高機能だがライブラリが特大(約18MB)
1.8+wxruby0.6.0 ・・・ かなり古いがライブラリが小さい(約2MB)
1.8+ruby-iup0.1.0 ・・・ ドキュメントがwxrubyよりさらに少ない
くらいしかないのかな・・・Ruby/Pythonも大昔に止まってしまっているしなぁ

しかし、今更1.8とかセキュリティもさることながらコードの互換性ががが・・・orz
0970デフォルトの名無しさん2014/06/20(金) 23:05:59.36ID:M/JwZqVI
Win環境との親和性ならIronRubyがいいんじゃね
例に漏れず開発死んでるけど
0971デフォルトの名無しさん2014/06/20(金) 23:19:57.65ID:fiYVjyLm
>>969
そういえば IronRuby はどうしてたんだろと調べてみたら、
最新版 1.1.3 のリリースが2011年で Ruby 1.9.2 互換の
Visual Studio 2010 統合可能だった
"ironruby wpf tutorial" でググると、
英語だけどGUIアプリ開発の入門記事がいくつか見つかる
また、exe化については、(exerbの代わりに) irpack というツールを使うと、
.Net Framework または mono さえあれば IronRuby インストール無しに
実行可能な .exe ファイルを作れるみたい(ツール作者は日本人)
  https://github.com/kumaryu/irpack

自分は.Net開発環境は無知なんでこれ以上は分からんけど、参考まで
0972,,・´∀`・,,)っ-○○○2014/06/20(金) 23:25:03.12ID:c2t2VBBN
JRubyならEXE化できるし
実効に必要なJavaランタイムをインストーラに同梱することが認められてる
09739662014/06/20(金) 23:56:31.35ID:/kxP5xgK
レスありがとう

もうちょっと詳しく書くべきですね
想定される実行環境はWin7以降。用途はちょっとしたGUIツールの開発で
インストーラー不要(配布アーカイブを解凍→.exeを実行)で動くこと

.NETとJavaは経験がないので変なことを言っていたらすみません

>IronRuby
新しい物は要Silverlightっぽい。JRubyと同じオチになりそうな気が・・・
Silverlightが無くても基本的な機能は動くとか、Silverlight関連(≠インストーラー)を
配布アーカイブに同梱して動かせるのであれば挑戦してみる価値はあるかも

>>972
インストールしなくても動く形でJavaRuntimeを同梱みたいなことって出来るんですかね?
できるのであれば試してみる価値があるかも

・・・どちらもファイル同梱だけで動いたとしてもライセンス的にアウトのような気も・・・
0974デフォルトの名無しさん2014/06/20(金) 23:58:23.96ID:7hiN3zjJ
つかそんなんだったら素直にC#でやった方がいいと思う
0975デフォルトの名無しさん2014/06/21(土) 06:51:52.21ID:2OQISpPs
>>973
そんなあなたに VisualuRuby
0976デフォルトの名無しさん2014/06/21(土) 06:53:21.20ID:2OQISpPs
ついでに次スレ
http://peace.2ch.net/test/read.cgi/tech/1269609576/
0977デフォルトの名無しさん2014/06/21(土) 07:22:24.24ID:yKtnF+AD
>>966 Shoes
0978,,・´∀`・,,)っ-○○○2014/06/21(土) 07:29:57.32ID:J+qs8s+U
ランタイムのインストールを嫌う理由がわからんのだが
RubyじゃなくてHSPでも使っとけと
0979デフォルトの名無しさん2014/06/21(土) 07:31:46.58ID:2OQISpPs
https://rubygems.org/gems/gtk-webkit-ruby
https://rubygems.org/gems/webkit-gtk
0980,,・´∀`・,,)っ-○○○2014/06/21(土) 08:42:45.46ID:J+qs8s+U
Windowsでランタイム不要の単体GUIアプリ作ろうと思ったら
結局C++になったけどな俺は

そもそもエンドユーザーはランタイムのインストールを嫌うのか?
あんまり「愚者」だと思ってかかると何も作れなくなってしまうよ
0981デフォルトの名無しさん2014/06/21(土) 09:08:56.62ID:2OQISpPs
WindowsにならRubyは入れてもいいけど
GUIのためだけにGTKやTkは入れたくないな
0982デフォルトの名無しさん2014/06/21(土) 09:37:08.11ID:AC3FvT0x
開発者の中にも、ローカルに色々入れたくないから
サーバー上や仮想環境上で作業するのを好む人は結構いるだろ
それが愚かだとは全く思わないけど?
0983,,・´∀`・,,)っ-○○○2014/06/21(土) 09:42:20.23ID:J+qs8s+U
Rubyでいろんな縛りを設けてGUIやるよりもたぶん
0からC++やC#でWindowsアプリ作る方法覚えたほうが楽だと思うよ
0984デフォルトの名無しさん2014/06/21(土) 09:43:04.85ID:2OQISpPs
>>983
そこは同意してる
誰も否定していない
0985デフォルトの名無しさん2014/06/21(土) 09:49:21.21ID:2OQISpPs
QtRubyも終わってんのかな
http://myruby.seesaa.net/tag/articles/ruby%82%CCGUI%94%E4%8Ar
0986,,・´∀`・,,)っ-○○○2014/06/21(土) 10:00:09.00ID:J+qs8s+U
JIS/ISOで標準規格化されたんだしWindowsに特化した独自処理系くらい
出てきてもいいかなとは思うのだけどね。

昔やってて比較的楽だと思ったのはHTA+Rubyかな。
ActiveScriptRubyの中にもサンプルがあったはず。
WSHの知識が必要になるけど・・・
0987デフォルトの名無しさん2014/06/21(土) 15:03:21.95ID:YxaWkchc
何でこんなに終わりまくってるの

なんか世の中からプログラミングへの興味がどんどん薄れてる気がする
0988,,・´∀`・,,)っ-○○○2014/06/21(土) 15:07:21.11ID:J+qs8s+U
だいたいJIM親子のアホのせい
まともに2ch発で物作る気概のある人間はopen2chに逃げた
あるいはTwitter+GitHub
0989デフォルトの名無しさん2014/06/21(土) 15:18:02.84ID:2OQISpPs
世の中=2ちゃん
なら
その通りだろうね
0990デフォルトの名無しさん2014/06/21(土) 15:49:45.49ID:AC3FvT0x
mrubyベースのクライアントフレームワークとか出てきたら面白いと思うけどね
でもmrubyってISO Rubyとの間ですら互換性無いらしいね
0991デフォルトの名無しさん2014/06/21(土) 15:50:33.56ID:YxaWkchc
どんどんスクリプトキディのコスパが増していくんだ
フリーのTwitter-BOTサービスまであるのを見てそう感じた
こっちはチマチマと自力で作ったのに。
何か悪戯とか珍しい事をする目的でさえ、ソースコード書かなくて良くなってきてる事が多い
09929662014/06/21(土) 16:37:40.55ID:sNSBg/lN
レスありがとう。長くなってしまった。すまない

>C#, IronRuby
Win7以降のWinで共通に使える.NET Frameworkのバージョンが
無いようなのでインストール作業が必須になりそうです

>jruby+javafx
パッケージングはJREを内包できるLaunch4jでいけそうと判ったので
JDK 8u5+jruby 1.7.12+jrubyfx 1.1.0でサンプルを実行してみるも
>NameError: cannot initialize Java class javafx.scene.control.Pagination
で動かない。require 'jrubyfx'が失敗しているし、未経験の環境なので
追跡調査が大変そう。JDKのバージョンが悪いのかな?
パッケージングしたときのサイズ次第ではありかなと思っています

>Shoes
ダウンロードしてみましたが・・・これを単体で使うにはどうしたら良いんだ

>WSH+HTA+ActiveScriptRuby
ActiveScriptRubyのインストール作業を許容できればかなり魅力的な
プラットフォームですね。昔仕事でこの組み合わせを使おうかと考えたことが
あります。使えるコントロールこそ限られますが、IE準拠のUIで操作できる
メリットは大きいです

ぐぬぬ・・・これは昔使っていた1.8+wxRubyが楽なのかな・・・
言語の変更までするならPython+wxpythonあたりを考えていますが
PythonはBlenderのプラグインの開発でだいぶ苦労した経験が・・・

>>980
それは自分がランタイム類のインストールに抵抗感がある事が大きいです
特にインストールが必須な規模のアプリケーションならともかく、ちょっとした
ツール類で.NET FrameworkやJREのインストールを要求されると、棚上げする
ことがしばしばあります。宗教といわれればそうだと思います
0993デフォルトの名無しさん2014/06/21(土) 16:39:44.46ID:gpWyDe0T
.Net Framework のランタイムなんてほぼ入ってるだろうから気にしなくていいと思うけどな
0994デフォルトの名無しさん2014/06/21(土) 16:51:23.35ID:yKtnF+AD
http://www.tidesdk.org/
0995デフォルトの名無しさん2014/06/21(土) 17:45:29.63ID:2OQISpPs
http://dev.sencha.com/extjs/5.0.0/examples/desktop/index.html
0996,,・´∀`・,,)っ-○○○2014/06/21(土) 18:14:02.30ID:uJ2JJWZP
フォーム1個だけの簡単なアプリならVisual C++のWTL AppWizardの雛形改変して作ってたな昔は。
50KBくらいのコンパクトなEXEが作れるの。
STLを入れるととたんに大きくはなるがそれでもexe単体で200KBくらい。

俺ならちょっとしたツールの圧縮ファイルで何MB〜何十MBもあるほうが引くけどね
Rubyで開発しようっていうほうが間違ってると思う。
09979662014/06/21(土) 19:43:11.60ID:sNSBg/lN
自分が調べた結果では
Win7は.NET Framework2.0/3.0/3.5が入っている
Win8は.NET Framework4.5が入っていて.NET Framework3.5は無効化されている

今回の件で調べていてRubyのGUIツールキットが死屍累々な状況が今後も
改善しない場合は、pypy+Topaz+wxpythonは有望かもしれないと思いました
現状ではTopazが実用に耐えるレベルになっていないようですが

>TideSDK
落としてみたら1.8ベースでした・・・

>>996
GUIだけならその通りかもしれませんが、最近はメモリ保護付きの言語にどっぷりなので
ポインタ周りでミスる→メモリを破壊のコンボを発生させて頭を抱える自信があります
あとRubyのArray、Stringあたりが便利すぎる

ちなみにその昔wxRuby0.6.0でGUIツールを作ったときの.exeのファイルサイズはupx併用で
約1.6MByteでした
0998デフォルトの名無しさん2014/06/21(土) 21:01:17.29ID:tQVBpUxD
rubyでvim使ってる人、定番のプラグイン教えてください
0999デフォルトの名無しさん2014/06/21(土) 21:04:26.71ID:gpWyDe0T
Emacs使え
1000デフォルトの名無しさん2014/06/21(土) 21:05:47.63ID:nSPSSkcc
>>997
>自分が調べた結果では
>Win7は.NET Framework2.0/3.0/3.5が入っている
>Win8は.NET Framework4.5が入っていて.NET Framework3.5は無効化されている

Win7向けにビルドしたC#アプリを素のWin8へインストールして実行しようとすると、
.NET Frameworkのバージョン不一致で起動すらできないってこと?
そうだとしたらWindowsは糞だけど、信じられんな
OSXならCocoaフレームワークが2つ前くらい迄なら、平気で実行できるのに
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。