13/01/20 08:02:06.54
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
RoRはスレ違いよ
前スレ
Ruby 初心者スレッド Part 50
スレリンク(tech板)
るりまサーチ (リファレンス検索)
URLリンク(rurema.clear-code.com)
Rubyist Magazine - るびま
URLリンク(jp.rubyist.net)
逆引きRuby
URLリンク(www.namaraii.com)
2:デフォルトの名無しさん
13/01/20 08:18:01.48
【RoR】Ruby on Rails Part15
スレリンク(php板)
【ActiveScript】RubyをWindowsで使うスレ【GUI】
スレリンク(tech板)
書籍:ほぼ公式
「たのしいRuby 第3版 Rubyではじめる気軽なプログラミング」 (プログラミング自体が初めてでない人向け)
URLリンク(www.amazon.co.jp)
「初めてのRuby」 (同上)
URLリンク(www.amazon.co.jp)
書籍:紙のマニュアルに相当
「Rubyレシピブック 第3版 303の技」(脱初心者向け基礎テクニック集、1.9対応)
URLリンク(www.amazon.co.jp)
「プログラミングRuby 第2版 言語編」(初心者向け参考書)
URLリンク(www.amazon.co.jp)
現在、1.8 系列の最新である Ruby 1.8.7 と 1.9 系列の最新である Ruby 1.9.3 の2系統が存在。
肝心な部分がわりと違い、プログラムはそのままでは動作せず、予備知識も別個。
1.8 用のスクリプトやライブラリは 1.9.3 では動作しないので注意。
1.9.3 用の教科書があるなら 1.9.3 から始めても構わない。
Windows用Rubyは、Ruby以外のものもあらかた入っているActiveScriptRubyと
URLリンク(www.artonx.org)
RubyだけインストールされるRubyInstallerの2種類存在。
URLリンク(rubyinstaller.org)
chm(HTMLヘルプ)式のダウンロードできるマニュアルが便利
URLリンク(www.ruby-lang.org)
Rubyリファレンスマニュアル chm版リミックス
URLリンク(ruby.morphball.net)
3:デフォルトの名無しさん
13/01/20 08:26:56.03
・いつものエディタとターミナルという普段着でお越し下さい
・エディタ初めてならRubyスクリプトをを着色してくれる(できればオートインデントの)エディタ好きなの選べ
・いわゆるIDEはRubyの学習に際しては恐ろしくコスパが悪いのでRubyのためだけに新規導入するのはお勧めしない
Q.XXX を使ってるんですが Ruby も覚えたほうがいいんでしょうか?
A.好きにしろ
※RubyやRuby使いに対する不満や愚痴などは「Rubyについて」スレや「バトルロワイヤル」スレなどをご利用下さい
4:デフォルトの名無しさん
13/01/20 12:30:00.29
いまから勉強する場合Ruby2.0のほうがいいですか?
5:デフォルトの名無しさん
13/01/20 12:30:45.01
SublimeText2を使ってる人に質問です
標準だとRubyの補完が弱いのですが、それを補ってくれるプラグインってありませんか?
6:デフォルトの名無しさん
13/01/20 12:34:51.75
>>4
ruby 1.9.3がいいとおもいますよ。
一般論として、あたらしいやつは、人柱になる覚悟がいります
7:デフォルトの名無しさん
13/01/20 12:39:36.85
わかりました1.9.3から公式のマニュアル見ながらやっていきます
8:デフォルトの名無しさん
13/01/21 04:59:35.64
そもそも7以前でもRubyはWindowsには完全には対応していない
9:デフォルトの名無しさん
13/01/22 18:40:28.19
ファイル名がうまく扱えないのが致命的なんだよね
Dirクラスなんかは1.9.3でだいぶ良くなったけどコマンドラインは昔のまま
"マ"を含むファイル名がワイルドカード展開できなかったり
UNICODE(SJIS外)が?に置換されてワイルドカード扱いされたり
10:デフォルトの名無しさん
13/01/22 18:51:04.16
なにそれこわい
11:デフォルトの名無しさん
13/01/22 19:02:34.06
コマンドラインのファイル名展開とかWindows環境以外は必要ないからなあ
12:デフォルトの名無しさん
13/01/22 19:32:49.76
RubyってDLLで拡張するタイプの言語じゃないって認識で良いですか?
基本はGEMで拡張するタイプですか?
13:デフォルトの名無しさん
13/01/22 19:45:55.04
なんかめんどくさそうな認識だが、いちおうはそんな感じでよい
スクリプトのユーザーが、そのスクリプトに必要なgemライブラリを自力でダウンロードして事前にインストールして設定しておくタイプ
14:デフォルトの名無しさん
13/01/23 10:36:09.97
めんどくせーな
15:デフォルトの名無しさん
13/01/23 12:11:07.12
Bundler使って使用ライブラリを細かく調整できるのはいい
16:デフォルトの名無しさん
13/01/23 12:16:32.96
なにも知らない人にカタマリとしてどーんと渡して速攻ピコーンと動作する、というようなことは苦手
もしそういう、PCスキルが不定な不特定多数の人にも使ってもらいたいソフトウェアを作りたいのなら、Rubyは不向き
17:デフォルトの名無しさん
13/01/23 12:38:07.80
HSPからRubyに移行しようと思うのですがRubyを使うメリットとデメリットを教えてください
18:デフォルトの名無しさん
13/01/23 13:08:56.66
HSPからRubyに移行するメリット
・ (PC-)Unix系列OS上でよく動く
・ Webサーバで仕事をさせても(負荷と初回起動とメモリが他サーバ稼働言語より多いが)よく動く
・ HSPができますというよりは業務寄りな顔ができる
HSPからRubyに移行するデメリット
・ Windowsで効率よく動かない
・ Windowsで効率よく配布できない
・ HSPではなんなく作れたものがRuby単体では作れず、外部ライブラリを駆使しても非効率
結論、HSPを便利に使っている環境にいるのなら、HSPを捨てる理由はなにもない
今までHSPでやってきたことをRubyで置き換えるのは、理屈では可能だが現実的ではない
なんかこう、レンタルサーバとか借りたり仮想マシンや別マシンでLinux入れたりしてそこでRubyを別途使ってみるというのが妥当
HSPとRubyの二刀流というのは、それはそれで死角減って結構便利だと思うよ
19:デフォルトの名無しさん
13/01/23 13:35:46.00
うん、Windowsでなにかひとつやれって言われて、コマンドプロンプトで用が済まず、なおかつC#に触ると死んでしまう呪いがかかっているのなら、俺はHSPを選ぶ
20:デフォルトの名無しさん
13/01/23 14:19:40.93
いや面接に行ったんですよプログラマーやりたくて
そしたらスキルシートみたいなのを書かされて言語リストにHSPがなかったわけで
手書きでその他にHSPを書いてきました
そしたらHSPって何?と聞かれたのでGUIを作る言語ですっていったんですが
他にできるものはありませんか?ときかれてないですと答えたら気まずい空気になってきて
先ほど不採用通知のメールをいただきました
なのでRubyに移行しようかなと思った次第です
21:デフォルトの名無しさん
13/01/23 14:20:37.75
とりあえずRubyに移行して18番先生のメリットを勉強していきたいと思います
22:デフォルトの名無しさん
13/01/23 15:02:54.09
rubyはAndroidやiOSスマホでも動きますか
23:デフォルトの名無しさん
13/01/23 16:02:22.32
はい
24:デフォルトの名無しさん
13/01/23 18:45:45.30
東京で初心者向けのRuby勉強会とかありませんか
25:デフォルトの名無しさん
13/01/23 18:46:22.31
ちなみに仕事でやってないのでそういう人でも参加できるとこございませんか
26:デフォルトの名無しさん
13/01/23 20:55:31.45
>>20
わざわざRubyに「移行」って書くところが不安でしょうがない
HSPのことを全部忘れるつもりなんだろうか
27:デフォルトの名無しさん
13/01/23 23:51:27.20
>>20
そりゃHSPはそういう対象じゃないからな
あれの立ち位置はNScriptとかの仲間であって、いわゆる「プログラミング言語」ではない
というかHSPしか知らないのにマの面接とか勇敢だなお前
ちなみにそこでRubyを選んだ理由は?
HSPからRubyって全然必然性が見えない選択なんだけど
28:デフォルトの名無しさん
13/01/23 23:53:39.84
いけませんか?
29:デフォルトの名無しさん
13/01/24 00:01:34.11
はい
江戸前寿司屋の板前の募集で「クッキーなら作ったことがあります!」と答えるようなもんだ
それは単体ではいいのかもしれんが、働くところとさっぱり関連性がないし、板前の仕事を研究理解してないのではないかという危惧がある
30:デフォルトの名無しさん
13/01/24 00:32:54.40
ということでHSP勉強した人間はRubyを勉強してはいけない事になりました
31:デフォルトの名無しさん
13/01/24 00:44:29.12
RGSS使いたくてRubyの勉強始めたいと思ったけどネットも書籍もナメてんのか
その羅列が意味わかんねーから教えを請いに来たのに例をポンポン載せてもわかる訳ねーだろ
加減乗除すらおぼつかない小学生に因数分解やらせるようなもんだよ
32:デフォルトの名無しさん
13/01/24 01:55:21.87
>>31
基礎からやれよ。
33:デフォルトの名無しさん
13/01/24 01:55:38.27
irbからサブirbを起動したいんだけど、
irb(main):001:0> irb を入力すると
ArgumentError : wrong number of arguments (0 for 1)というエラーが表示される
原因を教えてください
34:デフォルトの名無しさん
13/01/24 02:17:30.76
>>33
引数が足りないみたいやけどバージョンなに?
% ruby -v
ruby 2.0.0dev (2012-12-01 trunk 38126) [x86_64-darwin12.2.0]
% irb
irb(main):001:0> irb
irb#1(main):001:0> irb
irb#2(main):001:0> irb
irb#3(main):001:0>
35:デフォルトの名無しさん
13/01/24 03:29:20.41
>>28
いいと思います。
HSPとrubyは使う分野が相当(まったく)異なるので、
都合で転身せざるを得ないのは仕方ない。
36:デフォルトの名無しさん
13/01/24 11:16:43.88
>>34
バージョンは1.8.7です
引数は何を入れればいいのでしょうか
37:36
13/01/24 11:36:36.28
>>34
サブirbでローカル変数とグローバル変数に別の値を代入すると、
メインirbに戻したときにグローバル変数は変更されるが、ローカル変数は変更されないということを
確かめたいのです
例
irb(main):001:0> fruit = 'apple'
irb(main):002:0> $fruit = 'banana'
irb(main):003:0> irb
irb#1(main)001:0> $fruit = 'orange'
irb#1(main)002:0> fruit = 'peach'
irb#1(main)003:0> fg 0
irb(main):004:0> p fruit
=> "apple"
irb(main):005:0> p $fruit
=> "orange"
38:デフォルトの名無しさん
13/01/24 16:19:34.52
>>37
うちの1.8.7でも同じエラーになった
リファレンスマニュアルより
> irb(obj)
> 新しいサブ irb インタプリタを起動します。
> オブジェクト obj が指定された時はその obj を self にします。
なので、適当なオブジェクトを生成して渡してやれば良いと思う
irb Object.new
irb self.dup
39:デフォルトの名無しさん
13/01/24 22:40:16.20
>>38
調べていただきありがとうございます
自分でも試したところ、上の3行目を
irb(main):003:0> irb self
にすればirb#1(main)になりました
40:デフォルトの名無しさん
13/01/25 19:16:15.06
Windows上でワイド文字のコマンドライン引数を取得するにはどうすればいいですか?
41:デフォルトの名無しさん
13/01/25 19:57:36.28
GetCommandLine()
42:デフォルトの名無しさん
13/01/25 20:00:33.35
CommandLineToArgvWで解析する。
43:デフォルトの名無しさん
13/01/25 20:18:04.26
すみません。言葉が足りませんでした。
Windows上で動作するRubyでワイド文字のコマンドライン引数を取得するにはどうすればいいですか?
44:デフォルトの名無しさん
13/01/25 21:30:08.28
ARGVに入ってる
ARGVはString型の配列で
そのString型のエンコーディングは
chcp 932 であれば Windows-31J
chcp 65001 であれば UTF-8
のように端末のロケールが使われる
スイッチによる解析は
require 'optparse'
してやればいい
45:デフォルトの名無しさん
13/01/25 22:01:04.23
なるほど
スレリンク(php板:356-357番)
46:デフォルトの名無しさん
13/01/25 23:32:44.11
>>44
確かにそうすればARGVはUTF-8になりましたが、>>9 の症状が出て?に文字化けします。
47:デフォルトの名無しさん
13/01/26 00:03:49.16
なるほど
スレリンク(php板:356-375番)
48:デフォルトの名無しさん
13/01/26 00:13:31.47
Rubyって日本で流行ってるから勉強しようとは思いますが
英語フォーラムってないんでしょうか?
なんか日本人だけで勝手に進化してるのか気のせい?
49:デフォルトの名無しさん
13/01/26 00:17:50.37
英語フォーラムって、たとえばどんなの? どんな人がどんな話してることを想定?
50:デフォルトの名無しさん
13/01/26 00:23:19.53
いろんな国の人の共通言語としての英語です
やっぱり日本語わかるRuby開発者は少ないと思うんですよ
51:デフォルトの名無しさん
13/01/26 00:31:24.18
ぞんぶんにruby-coreを購読してくれたまえ
52:デフォルトの名無しさん
13/01/26 13:50:49.29
死ねゴミ共がw
死ねゴミ共がw
53:デフォルトの名無しさん
13/01/26 14:14:25.42
phpのhtmlspecialcharsみたいな便利なやつはRubyではなんていうのでしょうか?
54:デフォルトの名無しさん
13/01/26 16:13:37.22
>>53
細かい挙動の差は知らんけど
# require 'erb'
ERB::Util.html_escape # hにエイリアスされている。
# require 'cgi'
CGI.escape_html
なんで逆なんだw
55:デフォルトの名無しさん
13/01/26 16:36:06.98
str.encode(:xml => :text)辺りも
56:デフォルトの名無しさん
13/01/26 17:56:39.21
>>55
ちょwそんなのあったとはww
57:デフォルトの名無しさん
13/01/26 22:39:26.64
>>31
俺はネットとたのしいRubyとツクールのマニュアルで曲がりなりにも素材を公開できるレベルにはなった
つまりお前の言い分の正当性は低い
58:デフォルトの名無しさん
13/01/27 03:16:38.07
>>31
プログラミングの基礎が出来てないだけだと思う
59:デフォルトの名無しさん
13/01/27 10:01:37.64
SublimeText2使ってるんですけどやっぱりVIM使ったほうが良いですか?
60:デフォルトの名無しさん
13/01/27 10:04:43.97
好きなの使ってください。まじで
61:デフォルトの名無しさん
13/01/27 10:05:46.74
使ってみて不自由なければメモ帳でもいいよ
62:デフォルトの名無しさん
13/01/27 10:14:42.05
UTF-8で書くときってBOMはつけるの?つけないの?
63:デフォルトの名無しさん
13/01/27 10:23:44.60
>>62
UTF-8はつけんでいいんじゃないかね
64:デフォルトの名無しさん
13/01/27 10:24:50.55
なるほど
RubyはBOMを考慮してくれるのかと思ったけど層じゃないんですね
65:デフォルトの名無しさん
13/01/27 11:01:47.72
>>31
これを貼れと言われた気がして。
電話サポートでのやりとり。
客「小学生でも判るように説明しろ!」
サポート「判りました。…ボク、お母さんと代わってくれるかな?」
66:デフォルトの名無しさん
13/01/27 11:04:32.80
その前にどこがわからないか説明させる機会を与えるべきだろうなー
67:デフォルトの名無しさん
13/01/27 11:34:53.39
UTF-8のBOMは、仕様上はあってもいいことになっている。
Rubyでは、読む時だけはエンコーディングに BOM|UTF-8 を指定することで
BOMを読み飛ばせる。
68:デフォルトの名無しさん
13/01/28 15:08:21.31
722:nobodyさん :2013/01/27(日) 22:37:47.20 ID:??? [sage]
我がRuby軍の圧倒的勝利だ!
PHPを完膚無きまでに叩き潰したぞ!
69:デフォルトの名無しさん
13/01/28 17:16:14.25
このスレの住民が向こうのスレを荒らしてますよ
70:デフォルトの名無しさん
13/01/28 17:42:36.02
>>69はレスがないのを2時間しか我慢できなかったのか
71:デフォルトの名無しさん
13/01/28 18:28:47.05
>>40は自己解決しました
72:デフォルトの名無しさん
13/01/28 18:32:42.31
解決したらなら解決方法を書いてください
73:デフォルトの名無しさん
13/01/28 18:43:03.33
Ruby初心者はこれを見てください。
松江から世界へ!プログラミング言語Ruby
URLリンク(sc-smn.jst.go.jp)
74:デフォルトの名無しさん
13/01/28 18:56:24.51
RubyInstalerのexeファイルからRuby1.9.3をインストールしたんですが
新しいバージョンが出たのでバージョンアップしたいと思います
この場合いま入ってるRubyはアンインストールしてからインストールするべきでしょうか?
75:デフォルトの名無しさん
13/01/28 18:57:35.71
あ、はい。
76:デフォルトの名無しさん
13/01/28 19:31:47.50
古いほうがもう不要ならアンインストールしてから新規インストール
古いほうがまだ必要なら別のフォルダに新規インストール
既にインストールされているRubyを不要とみなして上書きインストールするようなモードは残念ながらない
プログラミング言語本体だしある程度は仕方ないのだけども
gemはなにも指定していなければRubyフォルダの中に入るはずなので、アンインストールで全部失われる
77:デフォルトの名無しさん
13/01/28 19:46:41.74
Ruby初心者はこれを見てください。
邪魔しないで (Matz)
URLリンク(sc-smn.jst.go.jp)
78:デフォルトの名無しさん
13/01/28 21:20:34.16
たすけてください
WindowsにRuby1.9.3とredmine2.2をインストールしました
webrickはやめたほうがいいってことでmongrelを入れたんですが動かないようでググったらruby1.9.3には未対応らしい(開発版は動くらしい)ので消しました
そこで
URLリンク(higashinakatsu.com)
をみてthinを入れてみたんですが
redmineをカレントディレクトリにして
ruby C:/redmine/script/rails server thin -e productionってやると
C:/redmine/redmine/config/application.rb:59:in `instance_eval': undefined methodってエラーがでて
thin -e production startってやってみても
C:/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/runtime.rb:31:in `block in setup': You have already activated rack 1.5.0, but your Gemfile requires rack 1.4.4. Using bundle exec may solve this. (Gem::LoadError)
ってエラーになります
redmineをインストールしちゃったのですが再インストールせずに動かすとこまでアドバイスお願いします
79:デフォルトの名無しさん
13/01/28 21:53:51.08
>>75-76
そうします
しかしこれは・・・gemを入れなおすのが面倒ですね
80:デフォルトの名無しさん
13/01/28 22:55:19.37
>>78
後ろのエラーメッセージは「rackのGemfileのバージョンが合ってないので合わせろ」ってエラーっぽい
URLリンク(stackoverflow.com)
によれば「bundle update rack」しろとのこと
前半のエラーについてはギブ
81:デフォルトの名無しさん
13/01/28 23:12:20.38
なんとかインストールできましたありがとうございます
webrickと比べると速度が速いんですねthin
本当はrainbows!を入れてみたかったんですがkgioが必要らしくてこれはwindows未対応なので残念です
82:デフォルトの名無しさん
13/01/28 23:52:36.47
ruby は windos で使うと苦役っぽいよな
楽ができない
83:デフォルトの名無しさん
13/01/28 23:53:04.68
>>81
それはなによりです
bundle update rackで二つのエラーとも解決したって感じですか?
84:デフォルトの名無しさん
13/01/28 23:55:32.83
何をやってもダメで結局全部最初からいれなおしました
85:デフォルトの名無しさん
13/01/29 01:19:53.07
>>72 失礼しました
>>40はWin32APIでGetCommandLineWを呼び出しました
86:デフォルトの名無しさん
13/01/29 11:41:39.78
URLリンク(jp.rubyist.net)に乗ってるようなレンタルサーバってCGIで動くって事ですか?
RailsってCGIでうごきませんもんね
87:デフォルトの名無しさん
13/01/29 11:47:50.23
↑エスパー求む
88:デフォルトの名無しさん
13/01/29 11:51:52.98
板違い
heroku
スレリンク(hosting板)
89:デフォルトの名無しさん
13/01/29 11:53:32.12
>>88
ニュース貼り付けるだけのスレ紹介してどうすんの?
90:デフォルトの名無しさん
13/01/29 11:57:10.90
レンタルサーバとVPSの違いで話してたつもりだったんですが
91:デフォルトの名無しさん
13/01/29 11:57:05.26
ああそうだったね
だが板違いであることには変わり無い
92:デフォルトの名無しさん
13/01/29 12:00:04.49
11:57:10.90
↓
11:57:05.26
何この過去
93:デフォルトの名無しさん
13/01/29 12:27:10.64
同時に書き込まれてロックが掛かって後回しにされたんだろうな
たまにあるよ
94:デフォルトの名無しさん
13/01/29 20:27:54.76
rack枯れてないなぁ。。特にCGIモードで動かしたりするときとか。。
95:デフォルトの名無しさん
13/01/29 22:34:49.58
>>82
今時まともな開発者はみんなMacを使っているよ。
96:デフォルトの名無しさん
13/01/29 23:09:39.50
>>94
config.ru必須なのが萎える>rack
97:デフォルトの名無しさん
13/01/30 05:29:34.54
rackってruby1.9の事を考えていなくて、sjisなCGIを書こうとするとmultibyte周りではまる。。
98:デフォルトの名無しさん
13/01/30 07:10:38.27
Rackでsjis(cp932じゃなくて)でCGIとか2chでしかとれない貴重なサンプルだな
99:デフォルトの名無しさん
13/01/30 10:18:09.76
rubyの利用って大抵webサイト構築ですよね?
100:デフォルトの名無しさん
13/01/30 10:23:32.19
いちばん多い用途を上げると言われたら、自分(の所属組織)が使うパソコンまたはサーバ内で動作する
さまざまなメンテナンスまたは便利スクリプトだろうと思う
Webサーバでサイト閲覧者のアクセスに対してページを生成して返すというような用途は、
割合としては2番目くらいで、絶対数としても低めなんじゃないかな
101:デフォルトの名無しさん
13/01/30 11:16:02.41
Webページが表示するのに使うデータファイルをバックグラウンドで生成しまくる、みたいなスクリプトはRuby
ユーザーが触れる表示プログラム自体はPHP
がおそらくいちばん楽
102:デフォルトの名無しさん
13/01/30 11:24:42.04
その>>100先輩の用途で勉強したいと思います
とりあえず
ソースコードを毎日バックアップしたrMysqlのデータをバックアップするスクリプトとかが定番なんでしょうか。そこからはじめてみます
PHPは触った事ないのでわかりませんがJSPでやりたいと思います
103:デフォルトの名無しさん
13/01/30 11:39:33.26
予算とか業務効率とかが関わってるんでなけりゃ、全部Rubyでやったって構わんけどね
104:デフォルトの名無しさん
13/01/30 12:50:16.23
>>102
RailsでWebアプリケーションを一から作れる開発者と、何か知らないが役に立たないツールを作っている開発者のどちらが評価されると思う?
MySQLのバックアップツール?そんなものはHerokuにやらせれば良いよ。
105:デフォルトの名無しさん
13/01/30 13:50:14.23
そう、社内アプリなのでSJISで、ASP.Net や Rails で書くと後任者が引き継げなさそうだから、
zip ball を展開するだけで動作する anhttpd + cgi というショボイ環境に。PHPは嫌いだし
106:デフォルトの名無しさん
13/01/30 13:51:48.03
気取ってRack使うものじゃないな、、標準添付CGIライブラリに戻ろうかな
107:デフォルトの名無しさん
13/01/30 23:14:11.69
>>95
Linuxのが楽じゃないか?
108:デフォルトの名無しさん
13/01/31 10:35:01.00
[速報]RubyGemsハッキングされる
109:デフォルトの名無しさん
13/01/31 10:53:10.71
2日前にgem update --systemしたんですけどやばいですかね?
110:デフォルトの名無しさん
13/01/31 16:06:24.10
いずれかの変数が条件に該当した場合,
該当した変数に指定した処理をする,っていう場合のスマートな書き方はありますか?
if a == 1
a == 10
elsif b == 1
b == 10
end
とかけばできるのですが,なんかもっとまとめられないのかと思って。
111:デフォルトの名無しさん
13/01/31 17:07:50.68
a = 1==a?10
b = 1==b?10
112:デフォルトの名無しさん
13/01/31 17:09:01.92
>>108
そのニュース年に一回は聞くな
113:デフォルトの名無しさん
13/01/31 17:59:24.24
既に恒例行事っぽい感じはするね
>>110
条件による変数代入または変更はきちんと書いてくれ
テクニカルには書けるが、読みにくくわかりにくくなってバグの元だ
たとえばそれは a が 1 じゃなくて b が 1 だったときには a も b も変更されないし、
a と b が共に 1 だったときは a しか変更されないけど、それでいいのかとか
Ruby だと case を使うことが多いような気はする
114:デフォルトの名無しさん
13/01/31 18:15:54.12
初心者はムダにスマートを気にする
意味ないのに
115:デフォルトの名無しさん
13/01/31 19:00:19.71
その意欲と衝動は得難いものだけどな
向けるべき方向性がちょこっと違う
キレイに書くもっとよく書くというのは重要で素晴らしいが、そっちじゃねえ
116:デフォルトの名無しさん
13/02/01 00:45:17.44
でも、rubyってスマートに書けるのが売りなんじゃないの?
117:デフォルトの名無しさん
13/02/01 01:04:11.37
いい指摘だ
それはその通りで、"昔ながら"の言語よりは確実に、"今風"の言語とは同程度に、スマートに処理を記述可能
ただしそれは全部Ruby wayで書くことが許されたときという条件つきのことでしかない
今回のように「排他的に値をチェックしていって該当のときだけなんかしたい」みたいな泥臭い処理の部分だけ切り出されたら、そりゃドロドロ書いてみせるしかないよ
もうちょっと広めに聞かれたら、それごともうちょっとよく書けるかもしれないけど
a, b = case
when a == 1 then [10, b]
when b == 1 then [a, 10]
end
書けてこんなもんだろうか
118:デフォルトの名無しさん
13/02/01 01:32:29.44
>>117
すごい、そんな書き方ができるのか
しかし後で読むとわからなくなりそう
可読性は >>110 が上(あくまで私レベルで)
実行速度はどうなのだろう
119:デフォルトの名無しさん
13/02/01 07:04:29.84
そもそも等価じゃない
120:デフォルトの名無しさん
13/02/01 07:25:50.05
>>119
当たり前だ
完全に同じことが起こる完全に同じ負荷の記法なんてのがそうそうあってたまるか
121:デフォルトの名無しさん
13/02/01 07:28:07.64
そもそも論理的にも等価じゃない
122:デフォルトの名無しさん
13/02/01 07:29:35.10
if a == 1
a == 10
end
if b == 1
b == 10
end
123:デフォルトの名無しさん
13/02/01 07:30:14.72
if a == 1
a = 10
end
if b == 1
b = 10
end
124:デフォルトの名無しさん
13/02/01 08:27:16.79
>>117と論理的に等価なのはこうなるよね?
if a == 1
a = 10
elsif b == 1
b = 10
end
>>117のほうが、何が起こるのかを明確に記述できてて良いと思うけどな
125:デフォルトの名無しさん
13/02/01 13:43:16.98
Module Hoge
class A
処理1
end
class B
処理1
end
end
処理1をカプセル化したい場合どうすればいい?
①Hogeに処理1を特異メソッドとして定義(Hoge::処理1みたいに使う)
②hoge内に新しいクラスを作って処理1をインスタンスメソッドとして定義(class A < Cみたいに継承して使う)
③新しいモジュールを作ってクラス毎にinclude
④組み込みのクラスに処理1を定義
が考えられるけど
①→毎回Hoge::書くのがめんどいダサい
②→毎回継承するのがめんどいダサい
③→毎回includeするのがめんどいダサい
④→何か怖い
何か他にいい方法はないんだろうか?
126:デフォルトの名無しさん
13/02/01 14:06:07.73
Aというクラス自体には関係するんだけどAのインスタンスそのものには無関係な処理をメソッドとかにしたい場合、
クラスAのクラスメソッドにするのが妥当であり、そこで変に凝ってあったらむしろ殴る
ということで (1)
A.hoo と記述するのは別にダサくはない
めんどいが
127:デフォルトの名無しさん
13/02/01 14:13:10.86
>>126
ありあり
そんじゃ①にするわ
128:デフォルトの名無しさん
13/02/01 14:15:30.34
クラスAとクラスBで同じ処理が必要ってことは二つのクラスは似たようなクラスなの?
だとしたら元からクラスCを継承する形になってるだろうから②
129:デフォルトの名無しさん
13/02/01 14:24:16.91
ユーティリティモジュールを作ってincludeするのがいちばんいいと思う
名前考えるのめんどくさいんだけど
>>128
機能追加のために継承してはいけない
MIx-inなら多重してもいいのかという話は確かにあるが
130:デフォルトの名無しさん
13/02/01 14:25:10.42
>>128
②はカプセル化のために拡張用のクラスを作るって意味で元々は存在してない
131:デフォルトの名無しさん
13/02/01 14:32:45.99
>>129>>130
全く違うクラスで同じ処理が必要な場合のイメージ沸かなかったから言ってみたんだ・・・
元々存在してないのであれば③だわ
132:デフォルトの名無しさん
13/02/01 14:36:01.61
inspectみたいなものなら④したくなるのを我慢して①かな
133:デフォルトの名無しさん
13/02/01 14:37:25.61
ちょっとそれるけどモジュールAがモジュールBをincludeしたら
モジュールA内のクラス内でincludeせずにモジュールBのインスタンスメソッドって使えたっけ?
134:デフォルトの名無しさん
13/02/01 14:37:49.56
module Hogeの全classに処理1が必要なら①
いくつかで良いなら③かな
135:デフォルトの名無しさん
13/02/01 14:38:30.54
>>133
使える
136:デフォルトの名無しさん
13/02/01 14:54:49.11
>>132
inspectみたいなものだわ
open_uri使って複数のサイトをスクレイピングしてページを解析するアプリなんだけど
ヘッダに文字コード情報ついてない場合はopen_uriがASCII-8BIT返すからその時にNKFとかkconvで適切な文字コードをセットしてやる必要があって
処理1はそのためのもの
137:デフォルトの名無しさん
13/02/01 14:56:01.93
>>135
ありあり
138:デフォルトの名無しさん
13/02/01 15:02:30.24
そういうのはuri_read相当のメソッドの中に入れとけ
クラスとか関係ねえ
139:デフォルトの名無しさん
13/02/01 15:09:46.13
>>138
煽りとかじゃなくメソッドの中に入れるってどういうこと?
140:デフォルトの名無しさん
13/02/01 19:34:35.52
すいません至急>>109のアドバイスお願いします!
141:デフォルトの名無しさん
13/02/01 20:00:03.61
[速報]Engine Yardのサポートからrubygems安全宣言
URLリンク(support.cloud.engineyard.com)
142:デフォルトの名無しさん
13/02/01 21:02:54.49
まじすか安心していいのですね
Windowsの再インストールするべきか悩みました
143:デフォルトの名無しさん
13/02/01 22:15:58.37
んなもん知らんがな
ちょっと調べりゃ出てくるもんを丸投げしてなんちゅう言い草だ
144:デフォルトの名無しさん
13/02/02 00:20:54.09
サクラエディタでシコシコ日本語を含むプラグラム書いていざロードしたらinvalid char云々のエラーが大量に出ました
文字コードだと思いutf-8で保存してプログラムの最初に#! ruby -Ku書きましたが依然として同じエラーがでます
どうすればよいでしょうか
ruby1.87です
145:デフォルトの名無しさん
13/02/02 00:24:02.74
外部エンコーディングじゃないの?
146:デフォルトの名無しさん
13/02/02 00:31:20.92
1.87
147:デフォルトの名無しさん
13/02/02 00:36:16.70
BOMつきで保存してるんじゃね
148:デフォルトの名無しさん
13/02/03 10:58:53.10
RubyInstallerで1.9.3を入れたんですけど
ファイルにrequireでtkをインクルードしてもそんなのないよってエラーがでます
149:デフォルトの名無しさん
13/02/04 00:04:49.00
>>148
これも定期的にくるな
ActiveTcl((だったかな?)をインストールしてくれたまえ
詳しくはググれ
150:デフォルトの名無しさん
13/02/04 00:38:54.42
あれ、最近のRubyInstallerはActiveTcl入れなくても
標準でRuby/Tk使えるはずだよ
現に俺の環境だとActiveTcl入れてなくても require 'tk' ができる
(mswin32版では、自分でActiveTcl入れないといけないとかあるけど……)
もしかしてmsi(Windowsインストーラ版)を使っていて
なおかつインストール時に「Tcl/Tkサポートをインストールする」に
チェックを入れなかったのでは?
(これにチェックを入れた場合か、もしくはzip版の場合のみTcl/Tkが使える)
151:デフォルトの名無しさん
13/02/04 06:04:08.59
RubyってQt使えるんですか?
152:デフォルトの名無しさん
13/02/04 09:34:15.95
馬鹿には無理
153:デフォルトの名無しさん
13/02/04 12:42:30.03
equal? についてお伺いします。
以下のコードで、 a.equal? c がtrue になるのはなぜでしょうか。
a = 10 を a="10"
b = 10 を b="10" に変えれば、予想通りa.equal? c がfalseになってくれるのですが・・・
===使ったコード===
a = 10 #aはオブジェクト10を指す
b = 10 #bは、オブジェクト10(aが指すのとは別のオブジェクト)を指す
c = b #cは、bが指すオブジェクト10を指す
print("a==b is " )
puts a==b
print("a==c is " )
puts a==c
print("a.equal? c is " )
print a.equal? c
===実行結果===
a==b is true
a==c is true
a.equal? c is true
Complete(0)
154:デフォルトの名無しさん
13/02/04 12:46:53.94
>>149-150
たぶんインストーラーでそういうのあったかもしれません
どうしましょう!
もうgemとかdevkitとかインストールしたのでまた再インストールとかパネェことできないです
一回案インストールしないでインストーラー使っても大丈夫ですかね?
155:デフォルトの名無しさん
13/02/04 13:14:44.10
Rubyでオブジェクト動作の調べ事をするときはその対象に整数を使ってはいけないということはどんな参考書にも書いてあるはず
なぜなら、同じ整数値であるならばオブジェクトIDが常に同じという特殊な存在だから
(何百万回と整数が呼ばれるたびにいちいち新規オブジェクトを生成なんてしてたら負荷で死ぬわボケという理由による)
このへんのこと書いてなかったら、いい機会だからその本捨てろ
156:デフォルトの名無しさん
13/02/04 14:54:06.27
RHG 最強ですねわかります
157:153
13/02/04 16:26:21.79
>>155
ありがとうございます
例外的に、整数値(10)は同じidで管理されるということですね
本は、今のとは別の本を探してみます ありがとうございました
158:デフォルトの名無しさん
13/02/04 16:37:22.23
>>144ですがwindowsでロードするとinvalidchar云々出るんですがubuntu環境では正常にロードできます
どういう問題が考えられますか?
ruby1.8.7でした
159:デフォルトの名無しさん
13/02/04 16:58:42.97
>>158
>>145-147はチェックしましたか?
160:デフォルトの名無しさん
13/02/04 17:17:35.69
なんかわかりませんが一度BOM付きで保存してから再びBOM無しで保存するとロードできるようになりました
最初はBOM付きで保存するのチェック外してたんですけどね
すいませんでした
161:デフォルトの名無しさん
13/02/04 23:51:46.04
>>157
正確にいうと、整数(Fixnum)、Symbol、nil、true、falseは即値として扱われる
でも、この事実書いてる記事や本ってそんなにあるかなー
俺はリファレンスマニュアルの用語集ぐらいでしか見たことないんだが
162:デフォルトの名無しさん
13/02/05 00:14:09.59
>>154
とりあえず試さずに書くけど
zip版を落としてきて、フォルダごと上書きすればいけるんじゃなかろうか
この方法なら少なくとも、一度インストールしたgemとdevkitは
おおむねそのまま残るはず
やる場合は、念のためバックアップをとってからやってね
163:デフォルトの名無しさん
13/02/05 00:15:58.02
>>162
了解です
親に怒られるので明日学校終わったら試してみます
164:デフォルトの名無しさん
13/02/05 09:58:45.05
>>161
本も書かわずにウェブだけでてきとうに調べて
習得した気になってる俺でも知ってるようなことだし「でも」って言うほどでもない気はする
165:157
13/02/05 12:28:01.13
>>161
教えて頂き、ありがとうございます。
今使っている本よりもっと詳しい本・ウェブを探してみます
166:デフォルトの名無しさん
13/02/05 13:11:55.06
どなたかMeCab-rubyを使っている方はいらっしゃいますか?
MacOSX 10.6.8
ruby1.9.3p374
MeCab0.995
MeCab-ruby0.99
という環境なのですが、途中で停まってしまいます。
irb(main):001:0> require "MeCab"
=> true
irb(main):002:0> str = "¥u592a¥u90ce¥u306f¥u3053¥u306e¥u672c¥u3092¥u4e8c¥u90ce¥u3092¥u898b¥u305f¥u5973¥u6027¥u306b¥u6e21¥u3057¥u305f¥u3002"
=> "太郎はこの本を二郎を見た女性に渡した。"
irb(main):003:0> mecab = MeCab::Tagger.new
(irb):3: [BUG] Segmentation fault
ruby 1.9.3p374 (2013-01-15 revision 38858) [x86_64-darwin10.8.0]
何か良い方法があれば、ご教授願います。
167:デフォルトの名無しさん
13/02/06 13:13:13.15
0 < x < 1の一様乱数を発生させるメソッドは無いの?
0 <= x < 1はあるみたいだけど。
168:デフォルトの名無しさん
13/02/06 13:45:32.85
用途がマイナー過ぎるので標準ではついてない
169:デフォルトの名無しさん
13/02/07 07:47:29.16
Ruby-mswin32 or ftpの更新が止まっちゃっているんだけど
最新安定版のmswin32バイナリのアーカイブが落とせる所って無いの?
ActiveScriptRubyはmsiだし余計な物が一緒になっているみたいだし・・・
170:デフォルトの名無しさん
13/02/07 07:58:12.74
>>169
「mswin32版」というところにこだわりがなく、Windowsで使えればよいのであれば
RubyInstallerのzip版がオススメ
導入が楽、ファイルサイズが軽い
devkit導入でネイティブgemがインストールできるといいこと尽くめ
171:169
13/02/08 06:59:24.27
>>170
レスthx
mswin32を使っている理由はWindows上で実行速度が一番速いためです
・・・自分でビルドするしかないのか?orz
172:デフォルトの名無しさん
13/02/08 19:10:44.95
mswin32版よりmingw32版の方が速いよ(マイクロベンチでは)
1998年のVC++6と最新のGCCじゃ最適化能力が違う
RubyがGCC向けにコーディングされているとかもあるかもしれないけど
ActiveScriptRubyの1.9.2以降はVC++10でコンパイルされてるのでGCCに迫るけど
ランタイムライブラリが違ってしまうので、バイナリライブラリの互換性が無い
それと、Windows2000以下では実行できない
MingwのラインタイムライブラリはVC++6と同じものを使ってるので
mswin32とmingw32では(Ruby1.8からは)バイナリライブラリに互換性をもたせている
どうしてもmswin32版がよくてVC++6があるのなら自分でビルドするのがいいのでは
今となってはVC++6が入手できないそうなので(有料だし)
173:デフォルトの名無しさん
13/02/08 19:31:30.31
The Computer Language Shootout Benchmarksのマンデルブロを引数1000で実行
実行ファイルのロードも含んだ実行時間、単位は秒
たぶん浮動小数点数の計算能力をみるベンチマーク
41.766 ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32] (う)さんの
32.406 ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-mingw32] 自分でビルド
26.828 ruby 1.9.2p0 (2010-08-18 revision 29036) [i386-mswin32] (う)さんの
15.078 ruby 1.9.3p374 (2013-01-15) [i386-mswin32_100] artonさんの VC++2010製
13.188 ruby 1.9.3p327 (2012-11-10 revision 37606) [i386-mingw32] 自分でビルド
14.453 ruby 1.9.2p0 (2010-08-18 revision 29036) [x64-mswin64_80] (う)さんの VC++2005製
14.313 ruby 1.9.3p327 (2012-11-10) [x64-mswin64_100] artonさんの能楽堂に入っているVC++2010製
09.719 ruby 1.9.3p286 (2012-10-12 revision 37165) [x64-mingw32] Mingw64のサイトにあるやつ
05.578 ruby 2.0.0dev (2012-11-01 trunk 37411) [x64-mingw32] Mingw64のサイトにあるやつ
つい最近Windows8(64) を導入したので調子に乗ってマイクロベンチしてみた
Ruby2.0 64bit版だけの新機能 Flonumのパワーを見たかった
174:デフォルトの名無しさん
13/02/10 22:07:56.75
Rubyってマック専用言語なんですか?
175:デフォルトの名無しさん
13/02/10 22:51:35.92
メインターゲットはUNIX系OSね。
結果的にMacもその一家に。
176:デフォルトの名無しさん
13/02/10 23:39:00.76
Matzは、Debian Linuxをつかってるよ
177:デフォルトの名無しさん
13/02/10 23:41:27.77
>>174
androidで動いた。
178:デフォルトの名無しさん
13/02/10 23:43:39.71
Re: Best Linux Distro for Ruby?
Posted by Yukihiro Matsumoto (Guest) on 2011-01-03 03:51
Hi,
I use Debian sid, and see no problem developing in Ruby.
matz.
ww.ruby-forum.com/topic/785744
179:デフォルトの名無しさん
13/02/11 07:30:01.74
単にWindowsではそれほど効率的には動作しないという程度の意味しかない
Windowsで効率よく動作しないと家族が危険に晒されるというのなら、Rubyを使うべきではない
180:デフォルトの名無しさん
13/02/11 10:30:47.18
Ruby使える人って他にも何の言語使える?
181:デフォルトの名無しさん
13/02/11 11:20:40.72
perl
182:デフォルトの名無しさん
13/02/11 11:59:41.04
haskell
183:デフォルトの名無しさん
13/02/11 12:35:26.33
coffeescript
184:デフォルトの名無しさん
13/02/11 12:46:18.72
Japanese
185:デフォルトの名無しさん
13/02/11 12:48:06.77
モッモル
186:デフォルトの名無しさん
13/02/11 14:39:47.81
Cがいいよ
187:デフォルトの名無しさん
13/02/11 14:47:36.54
Rubyは、バージョンごとにスクリプトを用意しなければならない
188:デフォルトの名無しさん
13/02/11 18:15:30.12
開発者は本当もうすこし互換性を気にしてくれよと思う
189:デフォルトの名無しさん
13/02/11 18:17:29.99
あと名前からこれはなにをするのかさっぱりわかんないようなネーミング
pとかね
190:デフォルトの名無しさん
13/02/11 18:58:06.09
ほう、他には?
191:デフォルトの名無しさん
13/02/11 19:05:56.30
UnixとCをある程度知っているという初期の大前提に立つと、…pくらいだろうか
あれは「pというメソッドを他人が読むことは絶対にない(デバッグ以外の使い方をしてはならない)」という意図もあるな
192:デフォルトの名無しさん
13/02/11 19:29:43.69
>>189
お前がRubyのこと何一つ知らないで書き込んだってことだけは伝わった
193:デフォルトの名無しさん
13/02/11 19:33:30.73
一人で組む分には個人的に最高なんだけど
仕事では使えんのよなー
194:デフォルトの名無しさん
13/02/11 19:55:19.28
世の中にはソースコードを納品する仕事しか存在しないわけではあるまい
195:デフォルトの名無しさん
13/02/11 19:58:24.34
>>194
そゆことっすなー
あらゆることをRubyで行なえないのは、まあ、残念ではあるんだけど、適材適所ということでひとつ
196:デフォルトの名無しさん
13/02/11 21:03:17.35
>>192
じゃあ教えてくれよ
197:デフォルトの名無しさん
13/02/11 21:04:12.98
pじゃxmlオブジェクト見えないしデバッグにも使えない
198:デフォルトの名無しさん
13/02/11 21:19:37.72
なんのXMLオブジェクトかは知らないがto_s相当のメソッドがあるだろうから
それ呼んでpすればいい
199:デフォルトの名無しさん
13/02/11 21:35:10.62
>>197
それはそのxmlオブジェクトというもののクラスを作った人が悪いな
Rubyのあらゆるクラスはinspectを適切に定義することということになってる
あるオブジェクトをpで表示してみてなにがなんだかわからない(内部変数丸見えのままの)表示だったら、クラス作成者に文句言うといいぞ
200:デフォルトの名無しさん
13/02/11 21:38:25.55
大抵の場合はppがかろうじて読めるレベルにしてくれる
201:デフォルトの名無しさん
13/02/11 21:38:33.19
あ、p自身がオブジェクトを解釈して表示してるわけじゃないので、pのほうに文句言わないように
p hoge は inspect メソッドを呼んで puts hoge.inspect とほぼ同じ動作をしているだけに過ぎない
202:デフォルトの名無しさん
13/02/11 21:57:07.22
処理側は呼ぶメソッドが決まってるというだけで、
実際には引数オブジェクト側というかクラス側がいろいろ用意しなければならないというのがオブジェクト指向的なのかもしれん
p は 引数オブジェクトの inspect メソッドを、puts は 引数オブジェクトの to_s メソッドを呼ぶということが決まっている
このへんのことを書いていない解説書や解説サイトがあったら今後も役に立たない可能性が大なので投げ捨てろ
203:デフォルトの名無しさん
13/02/11 22:15:09.86
>>199
inspectはデバッグ用だからオブジェクトの文字列表現を返すものとはいえ
ある程度は内部状態を見せてくれたほうがユーザは助かるんじゃないかと
to_sと同じもの見せられても嬉しくない
irb(main):002:0> a = Nokogiri::XML("<a>apple</a>")
=> #<Nokogiri::XML::Document:0x55d55c name="document" children=[#<Nokogiri::XML::Element:0x62aa34 name="a" children=[#<Nokogiri::XML::Text:0x629fbc "apple">]>]>
irb(main):004:0> a.to_s
=> "<?xml version=\"1.0\"?>\n<a>apple</a>\n"
irb(main):005:0> require 'rexml/document'
=> true
irb(main):006:0> doc = REXML::Document.new("<a>apple</a>")
=> <UNDEFINED> ... </>
irb(main):008:0> doc.to_s
=> "<a>apple</a>"
204:デフォルトの名無しさん
13/02/11 22:33:56.30
>>203
君のXMLの知識はゼロだということがよくわかった
205:デフォルトの名無しさん
13/02/11 22:44:51.81
>>204
どのへんでゼロだと判断したの?
206:デフォルトの名無しさん
13/02/11 23:57:49.80
>>179
でもWindowsで効率的に動作しない(というかインストールすらままならない)というのは
大半のコンピュータで効率的に動作しない、というのと同じことでは?シェア的に考えて。
207:デフォルトの名無しさん
13/02/11 23:59:13.14
サーバ用途ならそうでもない
208:デフォルトの名無しさん
13/02/12 00:01:51.87
シェア的にはもうWindowsが大半っていう状況でもなくなってきたな
209:デフォルトの名無しさん
13/02/12 00:10:23.79
え?
210:デフォルトの名無しさん
13/02/12 00:28:46.26
macで動けば充分
211:デフォルトの名無しさん
13/02/12 00:32:56.10
島根県民専用言語になるのも時間の問題だしな
212:デフォルトの名無しさん
13/02/12 00:56:48.19
Windowsがいいにきまってるでしょ。それがわからんのが信じられないよ
213:デフォルトの名無しさん
13/02/12 01:01:10.28
Windowsは、オープンソースでない
214:デフォルトの名無しさん
13/02/12 01:03:29.33
RubyのWindows用の作業環境を自分で作れないような奴がソフトウェア開発とかするなよ迷惑だから
215:デフォルトの名無しさん
13/02/12 04:03:15.31
いつも態度がでかい
216:デフォルトの名無しさん
13/02/12 05:32:24.48
windowsならpytonの方が相性良い
217:デフォルトの名無しさん
13/02/12 11:10:22.90
0 < x < 1の一様乱数の作り方がわかんない…
218:デフォルトの名無しさん
13/02/12 11:13:59.00
0 ≦ x ≦ 1 で生成して、0 と 1 が出たら捨ててやり直しすればいい。
どうせ確率的にはほとんど出ないんだから。
219:デフォルトの名無しさん
13/02/12 14:03:55.88
えー…
220:デフォルトの名無しさん
13/02/12 14:46:27.60
C, C++
/* generates a random number on [0,0xffffffff]-interval */
unsigned long genrand_int32(void)
(中略)
/* generates a random number on (0,1)-real-interval */
double genrand_real3(void)
{
return (((double)genrand_int32()) + 0.5)*(1.0/4294967296.0);
/* divided by 2^32 */
}
mt19937ar.cpp
221:デフォルトの名無しさん
13/02/13 00:41:46.55
>>220
4294967296.0って何?意味わかんない。
どこのトーシロが書いたプログラムだよ…
222:デフォルトの名無しさん
13/02/13 06:28:38.91
Pythonのが五倍速いんでしょ?
223:デフォルトの名無しさん
13/02/13 09:28:47.88
何ってコメントにも書いてある通り2の32乗だろ
224:デフォルトの名無しさん
13/02/13 10:57:24.59
マグニチュードが 0.2 上がると地震の規模は 2 倍になります
つまりマグニチュードが 1.0 上がると地震の規模は 2 の 5 乗で 32 倍になります
なんとマグニチュードが 2.0 上がるだけで地震の規模は 1024 倍にもなるのです
225:デフォルトの名無しさん
13/02/13 13:05:30.46
>>214
他の開発環境がないと構築できないスクリプト言語とか^^;
Rubyはオワコン
226:デフォルトの名無しさん
13/02/13 14:39:08.38
他の開発環境ってなんだ?
227:デフォルトの名無しさん
13/02/13 19:08:14.48
Rubyに翻訳しろよ
CならできるのにRubyでできないの?
228:デフォルトの名無しさん
13/02/13 19:27:58.30
>翻訳
229:デフォルトの名無しさん
13/02/13 22:38:41.00
アクセス制限ってこういう風に書くしかありませんか?
class Test
def abc()
end
private :abc
end
こうかくと2度もメソッド名を記述しないといけないので効率悪いと思うんですが何故こういう仕様なんでしょうか?
private def abc()みたいに書ける方がらくだと思うんです
230:デフォルトの名無しさん
13/02/13 22:46:36.72
「ruby private」でググレば出てくると思うが・・・
class Test
private
def abc()
end
end
231:デフォルトの名無しさん
13/02/14 13:03:28.16
rexmlで空要素が閉じられてないHTMLを読み込むとエラーが出るんですが
html5は空要素を<img~ />って書かなくてもOKなので<img~>でも取得できたら良いんですが方法ありませんか?
232:デフォルトの名無しさん
13/02/14 14:04:16.46
自分の好きなようにXMLを定義すればいい
233:デフォルトの名無しさん
13/02/14 14:08:28.28
>>232
そりゃその通りなんだが回答レベルとしてどうよという
rexmlでXMLとして解釈してるんじゃないかね
空要素が閉じられてなくてもいいHTMLのDTDを明示的に指定するとたぶん文句言わないぞ
234:デフォルトの名無しさん
13/02/14 14:20:02.33
re = REXML::Document.new(url)
re = REXML::DocType.new('html', PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "URLリンク(www.w3.org)')
空要素をとじる必要なhtml4のdtdを読み込んでみましたがダメなようでした
235:デフォルトの名無しさん
13/02/14 14:27:19.80
そもそもエラーってなんだ
他人に解決求めるならそのへんは勝手に解釈省略すんな
236:デフォルトの名無しさん
13/02/14 14:50:00.25
XHTML5は閉じタグ必須だぞ
REXMLでXHTMLじゃないHTMLは読めない
237:デフォルトの名無しさん
13/02/14 15:23:31.07
>>231
>>236とかぶるけどHTMLを読みたかったらHTMLパーサを使う
REXMLはXMLパーサでHTMLパーサじゃない
NokogiriはたしかXML/HTML対応だからそっち試してみては
238:デフォルトの名無しさん
13/02/14 15:33:36.83
XHTML5ってなんだ?XHTML5なんて存在しないぞ?
239:デフォルトの名無しさん
13/02/14 16:18:23.32
本家より「5倍速い」PythonベースのRuby実装が登場
URLリンク(developers.slashdot.jp)
240:デフォルトの名無しさん
13/02/14 16:59:55.07
3倍でいいのに
241:デフォルトの名無しさん
13/02/14 17:55:34.72
>>238
HTML5仕様書ではHTML構文のHTML5とXHTML構文のXHTML5を定義している
URLリンク(www.w3.org)
>This specification defines version 5 of the XHTML syntax, known as "XHTML5".
242:デフォルトの名無しさん
13/02/14 17:58:35.55
known as
243:デフォルトの名無しさん
13/02/14 20:55:30.78
HTML5のXMLは互換のために残してるだけ
244:デフォルトの名無しさん
13/02/16 01:45:53.31
1度SJISで書いてしまったテキストのエンコードをUTF8に変えるにはどうすればいいのでしょうか
小一時間ほど文字化けが不可避なんですけど全部打ち直しですか?
245:デフォルトの名無しさん
13/02/16 03:58:56.38
馬鹿はそうする
246:デフォルトの名無しさん
13/02/16 07:17:04.31
SJISで読み込む→エンコーディング変換→UTF-8で保存 でおk
247:デフォルトの名無しさん
13/02/16 07:37:45.52
>>244
1.8だとこんなとこ
require 'kconv'
File.open(utf8file,'w'){|f| f.write(File.read(sjisfile).toutf8) }
248:デフォルトの名無しさん
13/02/16 17:42:33.55
>>244
たとえば、どの文字が文字化けを生じたの
249:244
13/02/16 18:06:23.00
色々試したんですが単にコマンドプロンプトではUTF-8での表示ができないだけっぽいですね
windowsだけならShiftJISで問題ないんですけど今度はubuntuで実行した時に文字化けしまくるから嫌なんですよね
皆さんはどうしているのでしょうか
250:デフォルトの名無しさん
13/02/16 18:20:48.40
あきらめて、ファイルを生成して、そのファイルをエディタでひらきます
251:デフォルトの名無しさん
13/02/16 18:35:41.61
>>249
windowsではmintty
252:デフォルトの名無しさん
13/02/16 18:54:16.14
URLリンク(tanakh.jp)
253:デフォルトの名無しさん
13/02/16 21:02:56.01
Rubyエンジニアって具体的にどういうコード書いてるの?
254:デフォルトの名無しさん
13/02/17 00:08:59.66
俺は、PCを起動したらいつもirbも同時に起動しているよ。
こいつをフロントエンドにして、いろんなことするんだ。
255:デフォルトの名無しさん
13/02/17 00:52:12.82
>>249
OSがなんだろうとその上でutf8を扱える同じソフトを使ってれば問題ない。GNUアプリケーション群とかサポートするOSも多くて良い。
256:デフォルトの名無しさん
13/02/17 13:15:17.41
ruby1.8.7sw
open("hoge.txt", "a"){|f| f.write("hoge")}
を実行するときに別のプログラムでhoge.txtを開いているとエラーが出ますが、どのように回避出来ますか?
257:デフォルトの名無しさん
13/02/17 13:30:41.43
>どのように回避
こっちのセリフだw
書き込んでしまいたいのかリトライさせたいのか強制終了させたいのかお前の希望をまず言えよ
258:デフォルトの名無しさん
13/02/17 13:33:55.92
エラーが出るとプログラムがそこで止まっちゃうので、「書き込みに失敗しました」とか表示でもして次の命令に進んで欲しいですね
書き込んでしまえるのならそっちのほうがいいですが
259:デフォルトの名無しさん
13/02/17 14:14:39.55
>>256
別のプログラムでそのファイルをロックしない。
260:デフォルトの名無しさん
13/02/17 14:15:34.26
>>258
try
261:デフォルトの名無しさん
13/02/17 14:39:01.02
Rubyのこれ探してます
1.定番のテンプレートエンジン
2.PHPのCodeIgniterのような軽量フレームワーク(RoRほど高機能なものは必要ないため)
3.Ruby使うならこれはいれとけっていう定番のgem
262:デフォルトの名無しさん
13/02/17 22:30:21.88
>>261
1. 定番はない。まあまあメジャーなのはERB(とその後継のErubis)、次いでHamlあたり
2. Sinatra or Padrino
3. (Ruby 1.9系列であれば)ない。たぶん100人に聞いたら100人とも微妙に回答が違う
個人的にはBundlerは入れるべき
263:デフォルトの名無しさん
13/02/17 23:02:34.16
1.8なRailsアプリを維持しています。2.0もでるし、時間がたてばたつほど移行が大変になりそうなので、
さっさと移行計画立てたいのですが、上司は移行コストは無駄だと怒ります。どうすれば上司を説得できるでしょうか。
264:デフォルトの名無しさん
13/02/18 00:31:58.89
>>263
移行するって何にですか? 1.8のまま維持するのがなぜ駄目なんですか?
265:デフォルトの名無しさん
13/02/18 01:25:32.92
上司に同意だな
266:デフォルトの名無しさん
13/02/18 05:42:37.83
>> n=Time.now
>> n.year*365+n.month*30+n.day
=> 734823
という感じの毎日1ずつ増えていく数値が欲しいんですが
もうちょっと厳密でまともな書き方あったら教えて下さい
267:デフォルトの名無しさん
13/02/18 07:32:31.37
>>263
そりゃ移行コストに見合うだけのメリットを示せないと説得はできないだろう
時間がたてばたつほど移行が大変になる、ってのはそうだと思うが
「だからといって敢えて今やる必要はない」ってのが上司の理屈だ
だから今やっておかないと、後でこんなに困るんです!っていうのを具体的に示せないと
説得はムリ
ちなみに、企業的に今一番説得力があるであろうと思われる理由は
「2013年6月でRuby 1.8.7のサポートが切れる予定なんです」
URLリンク(www.ruby-lang.org)
>>266
n.year*366 + n.yday
うるう年があるので366じゃないとダメ
268:デフォルトの名無しさん
13/02/18 07:34:26.43
>>266
ぱっと思いつくのはこれくらい
Time.now.to_i / (60*60*24) # 1970年1月1日午前0時から
require 'date'
(Date.today - Date.new(0,1,1)).to_i
269:デフォルトの名無しさん
13/02/18 08:29:31.30
>>268
Date.today.jd でいいんじゃ?
270:デフォルトの名無しさん
13/02/18 09:08:21.98
いいのかな?いいのかも?よぐわがんね
マニュアルのユリウス日の説明見るとスゲー日付が基準になってるからさ
266の目的にあえばいいんじゃないかな
271:デフォルトの名無しさん
13/02/18 19:30:59.70
rubyのwindows版にあるコマンドラインのマルチバイト文字を正しく解釈できないバグは2.0では直りますか?
272:デフォルトの名無しさん
13/02/18 20:56:09.07
Windows版の1.9.3は日本語を含むパスにあるファイルがrequire出来ない
1.8.xや1.9.2の頃は出来るのに
273:デフォルトの名無しさん
13/02/18 22:01:09.76
>>270
いいんだよ。
通日数が分かればあとは特定の起点に対する相対値にするだけだ。
274:デフォルトの名無しさん
13/02/18 22:57:52.23
>>249
Ruby 1.9系なら、プロンプトへの出力時に自動で
適切なエンコーディングに変換してくれるようになっている
WindowsならShift_JIS(Windows-31J)に、UbuntuならUTF-8に、というように
275:デフォルトの名無しさん
13/02/18 23:23:39.12
>>263
上司にRails Castのそれ関係のビデオ見せる。
276:uy
13/02/20 07:49:50.11
>>271
1。93で直ってなかったっけ
277:uy
13/02/20 07:54:26.86
>>272
WindowsがUTF8じゃないからだろ
今pcないから感だけど
ソースコードの文字コードをシフトジスにして実行したら読めるんじゃね?
やめたほうがいいけど
278:デフォルトの名無しさん
13/02/20 13:47:09.21
PHPにしとけばいいのに
279:デフォルトの名無しさん
13/02/21 00:29:22.37
>>272
Windows をやめる。
以上。
280:デフォルトの名無しさん
13/02/21 03:49:21.67
Goldに受からなければ会社クビだって言われている
281:デフォルトの名無しさん
13/02/21 08:08:45.10
Goldってまあまあ難しいけど大丈夫なのか
282:デフォルトの名無しさん
13/02/21 08:33:02.29
goldってなんですか
283:デフォルトの名無しさん
13/02/21 09:41:09.53
ゴールド!金!
284:デフォルトの名無しさん
13/02/21 18:55:34.18
Windows7でrubyを使っていますが少々不便に感じるところがあります。
コマンドプロンプトでスクリプト名を入力してEnterを押すとそのスクリプトが実行され、
エクスプローラーでスクリプトファイルをダブルクリックすると関連付けたエディタで開く
というようなことはできないでしょうか?
285:デフォルトの名無しさん
13/02/21 19:14:57.50
>>284
たぶんできる
> コマンドプロンプトでスクリプト名を入力してEnterを押すとそのスクリプトが実行され、
環境変数PATHで指定したディレクトリにスクリプトを置く
> エクスプローラーでスクリプトファイルをダブルクリックすると関連付けたエディタで開く
関連付け Win7 でぐぐる
286:デフォルトの名無しさん
13/02/21 19:43:32.14
コマンドプロンプトでエンターもエクスプローラーでダブルクリックも
そのファイルタイプの規定のアクションが呼び出されるような気がするから
それぞれで違う動作は無理かもしれないしできるかもしれない。分からん
287:デフォルトの名無しさん
13/02/21 19:46:07.37
答え: 出来ない
288:デフォルトの名無しさん
13/02/21 19:55:10.57
>>286
ああそういうことか。PATHとかの問題じゃないね
*.rbはエディタに関連付けるとして
コマンドプロンプトからはruby hoge.rbのようにインタプリタと
スクリプトを陽に指定すればいけるだろうか
289:デフォルトの名無しさん
13/02/21 20:26:12.65
ahk使ってExplorerで^eしたら右クリ|編集(&E)を呼び出すことならできる
#include ime_func.ahk
#IfWinActive, ahk_class CabinetWClass
^E:: ; 選択ファイルを編集する
if IME_CHECK("A")=0
{
Send,{AppsKey}E
}
return
290:284
13/02/21 22:05:55.87
出来ないが結論っぽいですね
皆さんありがとうございました
291:デフォルトの名無しさん
13/02/21 22:09:58.17
>>284
NYAOSなどの代替シェルを使う
292:284
13/02/21 22:29:47.89
ちょうど代替シェル探してたんですよ
UNICODEは扱えるのかな
293:デフォルトの名無しさん
13/02/21 22:54:32.18
nyaosは使い物になりません
標準入力ができないのでやめましょう
294:デフォルトの名無しさん
13/02/21 23:24:29.10
というか、コマンドプロンプトからスクリプト名のみ指定で実行という場面があまり思いつかない
どうせ hogehoge.rb って rb まで書かないといけないんだし、俺ならそういうのは特別にbatファイルを作っておくかな
エクスプローラからダブルクリックで実行は危険過ぎるので編集に切り替え
295:デフォルトの名無しさん
13/02/22 00:54:58.80
sh使って、一行目にrubyのパス書いとけばいいだろ。というかそれが普通だろ?
296:デフォルトの名無しさん
13/02/22 02:38:49.26
>>294
pathext指定しろ
297:291
13/02/22 07:56:06.28
>>292
UNICODEは残念ながらムリ
ちなみに293が「標準入力できない」と書いているが
少なくとも俺がみた限りでは普通にできる
298:デフォルトの名無しさん
13/02/22 21:39:10.74
Net::HTTPを使って、リクエストパラメータを送るにはどうしたらいいですか。
URLリンク(doc.ruby-lang.org)
を見ていますが、
get(path, header = nil, dest = nil) -> Net::HTTPResponse
とあるけどリクエストパラメータがありません。
path?x=1 のようにしないといけないのでしょうか。
299:デフォルトの名無しさん
13/02/22 21:58:21.39
はい
というか Net::HTTP の get は「最終送信メソッド」であり、それ以前にクエリ文字列は完成されていなければなりません
なんか Hash とか配列の配列とかからてきとうにクエリ文字列を作るのは他のライブラリやメソッドの仕事
300:デフォルトの名無しさん
13/02/23 16:28:55.27
Goldゲットしたー
これでクビにならずに済んだ。ホッ
301:デフォルトの名無しさん
13/02/23 16:32:12.92
WindowsでRuby2.0で勉強したいんですけどいつでまうsか?
302:デフォルトの名無しさん
13/02/23 18:16:33.38
ソースは明日リリース予定だから、Windows用バイナリはその
数日あとじゃね?
303:デフォルトの名無しさん
13/02/25 03:12:31.27
str.encode('UTF-16','EUC-TW') とかエラーになるけど、encodeの直交性ってどうなってるの?
304:デフォルトの名無しさん
13/02/25 04:15:06.78
エラーっていうなエラー名を書け
305:デフォルトの名無しさん
13/02/25 05:12:51.37
ncoding::ConverterNotFoundError: code converter not found (EUC-TW to UTF-16)
306:デフォルトの名無しさん
13/02/25 06:54:43.49
Windows用バイナリ出たね
307:デフォルトの名無しさん
13/02/25 10:05:56.46
ruby2.0でredmineとrailsは動きますか?
308:デフォルトの名無しさん
13/02/25 10:11:07.59
pikで1.9と2.0をwindowsに入れる場合rubyinstallerで両方のバージョンをいれると環境変数のpathは壊れませんか?
309:デフォルトの名無しさん
13/02/25 10:36:20.40
>>303
RubyはEUC-TWを扱えるけどEncodingによる変換はできない
バグトラッキングに上がったことがあったけど「このへんどうすればいいかよくわからんのでパス」という理由でリジェクトされたはず
※ より正確にはlack of feedback、EUC-TWがどうあるべきかについて詳しい人がいなかった
「本当に」EUC-TWで書かれたテキストが必要なのならIconvを使う
310:デフォルトの名無しさん
13/02/25 10:43:57.08
文字エンコード関連をWIkipediaとか見ながら想像で実装するとあとあと酷い目に遭う…
311:デフォルトの名無しさん
13/02/25 10:48:22.97
redmine2.3っていつ出ますか?
312:デフォルトの名無しさん
13/02/25 11:19:15.60
bundlerでインストールしたgemを全て削除する方法を教えてください
313:デフォルトの名無しさん
13/02/25 11:52:04.53
ひとがいない
314:デフォルトの名無しさん
13/02/25 12:41:24.85
Ruby2.0とredmine2.2.3で
ruby script/rails server webrick -e productionってやると
以下のエラーがでます
どう対処したらいいでしょうか?
Unable to load the EventMachine C extension; To use the pure-ruby reactor, requi
re 'em/pure_ruby'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/eventmachine-1.0.0-x86-mingw32/lib/
rubyeventmachine.rb:2:in `require': cannot load such file -- 2.0/rubyeventmachin
e (LoadError)
315:デフォルトの名無しさん
13/02/25 16:25:42.99
>>309
ありがとう。 iconvは削除されたので、iconvgemを使えということですね。
しかし、Iconvはbig5-UAOとか新しめのはサポートされてない・・・
ここでも条件分けですかね。
316:デフォルトの名無しさん
13/02/25 17:43:00.31
>>314
EventMachineのバイナリライブラリがないのじゃなかろうか
2.0は1.9とはバイナリ互換性がないので
別途2.0用にコンパイルされたライブラリが必要になるはず
gem fetch eventmachineってしてダウンロードしてみたら
eventmachine-1.0.0-x86-mingw32.gem には
1.8と1.9用のバイナリしか入ってなかったよ
エラーメッセージで「EventMachineC拡張がロードできないので pure-ruby版を使え」
って言われてるのでeventmachine の代わりにem/pure_rubyをrequireすればいいみたいなので
どこかrequire 'eventmachine'よりも先にrequire 'em/pure_ruby'を書けばいいのだろうけど
Railsはわからん
RubyInstaller Development Kitもインストールすると
2.0用バイナリのコンパイルとか出来るのかな?試さないけど
317:291
13/02/25 23:31:37.63
>>308
基本的には壊れないはずだけど
(pikはあくまで、プロセス内限定でPATHを変更するものなので)
何か気になるところがある?
>>312
URLリンク(keijinsonyaban.blogspot.jp)
bundle cleanコマンドの説明のところ
318:デフォルトの名無しさん
13/02/26 15:16:34.86
まじっすか
やっぱ2.0でredmineはあきらめたほうがよさそうですね
ひょっとしたらem/pure_ruby書いたら良いかもしれませんがもう何回もRubyを再インストールとgemでupdateしたらbundlerでgem入れるの繰り返しをしてたのでHDDをいためそうなので2.0でredmineするのはあきらめて1.9でやることにします
1日以内に範囲を絞ってググってみても誰もwindowsでruby2.0でredmineを動かす記事書いてないから厳しいですね
319:デフォルトの名無しさん
13/02/26 16:11:09.20
初心者スレでRuby2.0インストールする人はほとんどいないんじゃないかな
やるとしたら2.0.1だろう
320:デフォルトの名無しさん
13/02/26 17:10:29.30
Ruby2.0.0でプログラミング始めようと思ったけど
まずcファイルをコンパイル?(ビルド?)できない
バイナリ出るまで待とう。。
321:デフォルトの名無しさん
13/02/27 00:09:41.65
>>320
ruby 2.0.0のバイナリ、もうRubyInstallerに出てるよ
322:デフォルトの名無しさん
13/02/27 08:04:19.55
早く枯れると良いな
323:デフォルトの名無しさん
13/02/27 08:25:06.75
そうそう、Ruby2.0を使おうとするのは初心者
初 心 者 ス レ で し た
>>322
1.9よりかは早いと思うよ、あれは変更が大胆で面倒過ぎた
半年もすれば解説なり説明なりが増えて使えるようになるんじゃないかな
俺らはライブラリ作成者とか先っぽの人たちが頑張るのを応援してればいい
324:デフォルトの名無しさん
13/02/27 10:00:45.72
なんか似たことをものすごく前にも言った気がするんだが、
とりあえず今は1.9.3を使って、んで2.0の解説が山盛りになってからおもむろに2.0の新機能を勉強するといいぞ
1.9.xの解説なら山のようにある(希望)し、1.9.1で使えて2.0で使えない考え方というのもrequire_relativeを除いてないといっていい
require_relativeは1.9.1→1.9.2で唯一激変した「カレントディレクトリにあるrbファイルをbasenameでrequireできない」にまつわるもの
もともと筋がよくなかったし、require './hoge.rb' と書く人も当時の時点で多かったから、それほど問題はなかったんだけど
1.9.1対応の解説で、カレントディレクトリの自作rbファイル hoge.rb を require で読みたいときに
require 'hoge'
と書かれているものがあったら、それは現在の1.9.3および2.0では間違いで
require './hoge.rb'
とパスつきで書くか
require_relative 'hoge'
と相対requireしなければなりません
相対パスで書くのは1.9.1でも1.8.7でも(カレントディレクトリさえ妥当なら)動くので、こっちが人気
325:デフォルトの名無しさん
13/02/27 16:13:57.92
一方 CoffeeScript は・・・
326:デフォルトの名無しさん
13/03/01 16:39:27.07
質問です。rubyのバージョンは1.9.3p125です。
rubyでgetsを使うとコマンドプロンプト上で実行すると大丈夫なのですが、RDEで実行すると入力要求のタイミングがおかしいんですがなぜでしょうか?
例えば
puts "あ"
b=gets.chomp
puts"い#{b}"
実行すると画面に”あ”が表示される前に入力が要求されます
327:デフォルトの名無しさん
13/03/01 18:29:47.84
ストリームがフラッシュされないとかじゃない?
328:デフォルトの名無しさん
13/03/01 18:50:26.65
それはRDEの設定を弄れば直るものなんでしょうか?
もしそうならどう設定すればいいか教えていただきたいです。
329:デフォルトの名無しさん
13/03/01 20:29:55.66
まつもとさんに直接質問したらやっぱり怒られますか?
330:デフォルトの名無しさん
13/03/01 20:48:52.67
そうだろうね。あの人、瞬間湯沸かし器で有名だから。
331:デフォルトの名無しさん
13/03/01 21:46:56.81
それ以前にRDEについて聞かれたって知らんとしか答えられんだろう
332:>>328
13/03/01 21:57:15.53
いや、>>329さんとは別人です
333:デフォルトの名無しさん
13/03/01 22:06:13.03
res328.ip_addr == res329.ip_addr
=> true
334:>>328
13/03/01 22:15:24.83
お、おう
335:デフォルトの名無しさん
13/03/01 22:28:41.41
無理やり
STDOUT.sync = true
puts "input"
puts(gets)
とかやると"input"までは出力されるけど、改行はつかないね
変なの
336:デフォルトの名無しさん
13/03/01 22:46:03.28
RDEはRubyの動作に熟練した人が使う
Ruby初心者は決して使ってはいけない
だからたとえば>>326のようなトラブルには絶対に遭遇しないし、誰も直す気もアドバイスする気もない
なぜなら、Rubyでgetsなんて使わないからだ
あるいは、使うとしてもこれにぶち当たった時点でスクリプトの動作を一旦変える
どうせ文字列がどこから来るかの違いなんだし
337:>>326
13/03/01 22:55:45.54
>>336
了解です、素直にコマンドプロンプトでやります
どうもでした
338:デフォルトの名無しさん
13/03/02 01:10:23.62
:piyo-piyoって書きたいのに、
:'piyo-piyo'ってしなきゃダメなのはどういう理由?
339:デフォルトの名無しさん
13/03/02 01:31:57.65
:piyo - piyo って解釈されるから
340:デフォルトの名無しさん
13/03/02 01:32:51.93
解釈しないようにすれば良いのに
解釈しなきゃいけない理由があるの?
Ruby言語的に。
341:デフォルトの名無しさん
13/03/02 01:40:50.46
逆に:piyo - piyoって解釈してほしいときと区別が難しいだろ
空白の有り無しとか言い始めるのか
大体の言語で変数名は英数字と_のみじゃないの
342:デフォルトの名無しさん
13/03/02 08:50:16.10
LispとかForthとか変なのを除けば、だいたいそうだな
343:デフォルトの名無しさん
13/03/02 09:18:10.73
>>338
-のほうが"優先順位"が高いから
演算記号の"優先順位"を低くするというルールを作ると :a-b というシンボルや変数名が一発で書けるようになるが、
そのかわり「:aからbを引く(思いつかないならaからbを引く)」と書きたい場合
「3-2って続けて書けるからa-bって書いたらエラーになった、
そういやこれ変数として解釈されるんだっけ、変数と解釈される要素の前後には空白を【絶対に書かなければならない】のね」
という新しい(そして、明らかに煩雑な)ルールが別途できてしまう
344:デフォルトの名無しさん
13/03/02 10:25:04.68
○○すれば良いのに
とか言っちゃう奴は何も考えてない奴が多いから参考にならない法則
345:デフォルトの名無しさん
13/03/02 11:16:54.45
このへんのパーサやトークン解釈については、自分で疑問持たないと進歩しないので、
なんでこんな動作なんだこっちのほうがいいのに、と思ってもらうこと自体はなにも問題がない、というか思ってもらったほうがいい
納得してもらえるかどうかだけが問題
346:デフォルトの名無しさん
13/03/02 11:56:05.01
すいません、今の場合は何も問題ないです
分かってない奴に「すれば良いだけだから簡単でしょ」
と言われ続けたストレスをついここで発散してしまいました
347:デフォルトの名無しさん
13/03/02 11:59:44.87
1.9.3 の Zlib::GzipReader ですが、readline() でencoding が指定できず、set_encoding()も
受け付けないのですが、自分で更にラッパーをかけて使っているのでしょうか?
348:デフォルトの名無しさん
13/03/02 13:11:44.52
いい加減privateとprotectedの仕様を他の言語に合わせろボンクラ開発者!!!!!!!
349:デフォルトの名無しさん
13/03/02 13:13:28.83
それではもうレスもらえないと思う
350:デフォルトの名無しさん
13/03/02 13:25:52.83
>>349は>>347宛ね
351:デフォルトの名無しさん
13/03/02 13:41:57.06
とまあ、技術的な話題についていけずレスだけ欲しい人がム板にはこびりついています
1週間もすれば自分の身にも振りかかってきてわかってくることではあるけど、
これから入学就職のシーズンでプログラミングに触れる人も増えるだろうし、まったくの新参の人は注意
352:デフォルトの名無しさん
13/03/02 19:02:10.46
技術的な話題についていけない人はいつまでもprivateとprotectedに対する議論を避ける傾向にある
353:デフォルトの名無しさん
13/03/02 20:59:11.51
>>352
どうでもいい事だからってだけ
まあ確かに紛らわしいのはわかるが
今その辺を変えて、後方互換性が爆死するのは困るから
正直今変えてほしくない
354:デフォルトの名無しさん
13/03/02 22:46:19.76
というか誰もアクセス制御なんて使ってないし気にしてないから話なんて振られても困るし、
「誰も気にしてないということがわからないような位置にいる人」が言ってるんだろうという確証になるから余計スルー
355:デフォルトの名無しさん
13/03/02 23:08:24.16
誰もというのはどの程度の母集団なんだろうかね
気にしない人って所詮その程度のものなんだろう
君(もしくは少数)の意見が全員一致の意見だと思わないほうがいい
356:デフォルトの名無しさん
13/03/03 00:45:20.81
どうせオープンクラスだからどうにでもできちゃうからな
357:デフォルトの名無しさん
13/03/03 04:02:54.61
元々Matzは変えようとしてたけど、互換性を大事にする方針になったから、もう変えないでしょ
358:デフォルトの名無しさん
13/03/05 07:18:25.08
「_」という変数ってなんか言語的に特別な意味はあるん?
それとも、普通の変数と同じで、無名変数的に扱う場合にこうしてるだけ?
359:デフォルトの名無しさん
13/03/05 08:27:01.19
>>343
hoge?fuga:hage
360:デフォルトの名無しさん
13/03/05 11:16:38.72
>>358
特別な意味はないよ
361:デフォルトの名無しさん
13/03/05 18:07:00.77
Windows版で**/がうまく動きません
フォルダ名が日本語のフォルダが無視されます
362:デフォルトの名無しさん
13/03/05 20:34:54.56
2.evalby( :Math#sqrt )
=> 1.4142135623730951
こういった風にオブジェクトを指定の方法で処理する書き方ってありますか?
もちろん上のは Math.sqrt(2) と同じ結果ですが、
someobj.を〇〇する.それを△△する.さらに□□する.
といったように加工の順番どおりに記述できないのかなぁということです。
363:デフォルトの名無しさん
13/03/05 20:53:31.84
Numericなどを独自拡張するしか無さそうな気がするんだけど
364:デフォルトの名無しさん
13/03/05 21:31:02.00
>>363 なるほど拡張ですか
class Object
def evalby(&blk)
blk.call(self)
end
end
2.evalby{|x| Math.sqrt(x)}
=> 1.4142135623730951
2.evalby{|x| Math.sqrt(x)}.evalby{|x| x**2}
=> 2.0000000000000004
見よう見まねで試してみましたが、もっとましな実装方法があれば教えてください
365:デフォルトの名無しさん
13/03/05 21:47:50.85
別バージョン
class Object
def evalby(code)
code.call(self)
end
end
2.evalby(Math.method(:sqrt)).evalby(->x{ x**2})
=> 2.0000000000000004
この辺で自分的には満足ですが拡張無しでも出来るのなら知りたいです。
366:デフォルトの名無しさん
13/03/05 22:07:25.46
>>361
Dir.glob(**/)なら動かない環境があるよ
367:デフォルトの名無しさん
13/03/05 23:51:06.10
>>365
>> 2.instance_eval(&Math.method(:sqrt))
=> 1.4142135623730951
>> 2.instance_eval(&Math.method(:sqrt)).instance_eval(&->x{x**2})
=> 2.0000000000000004
368:デフォルトの名無しさん
13/03/06 00:18:54.23
>>367 ありがとうございます
やはり素人が思いつくような機能は大抵は備わっている感じですなんですなあ・・・
369:デフォルトの名無しさん
13/03/06 00:20:36.41
そりゃそうよ、開発効率重視の言語なんだからさ
PHPみたいなゴミとは訳が違う
370:デフォルトの名無しさん
13/03/06 00:28:48.66
>>362
メソッドチェーンのことだったらRubyでもPHPでもできる
371:デフォルトの名無しさん
13/03/06 00:51:09.59
メソッドチェーンが主目的ではなくて
objが○○する.成果物が△△する
ではなく
objに対して(xxxが)○○する.成果物に対して(yyyが)△△する
的な事をしたいという話でした
372:デフォルトの名無しさん
13/03/06 02:58:45.17
そういうの前から欲しいと思ってた
2.sqrt ==> x # 代入のつもり
x**2.puts(file)
みたいな
373:デフォルトの名無しさん
13/03/06 10:48:48.62
>>361
RubyをWindowsで使っちゃうひとって
374:デフォルトの名無しさん
13/03/06 11:12:29.20
上にも似たようなことがあったが、WindowsでRuby使う人はRubyに慣れてる人なんだよね
Linux(いやMacOSXでもいいけど)上では普通に動くのにWindowsではなんか変だな、しゃあないかわりに○○するか、で終了
迂回できる知識があるので「困ってない」、から、いつまでたっても直らない
今回だとDir.globの*はあんまりにも他の部分と動作解釈が違うので、Linux上ですら意図的に避けられていることが多い
Dir.entriesを正規表現で掬い上げるとか、そっちのほうが単純確実
375:デフォルトの名無しさん
13/03/06 11:36:54.71
初心者や Ruby に慣れてない人や Linux に慣れてない人は、
Windows ではなんか変だな、しゃあないかわりに Python するか、で終了。
なのにね。
なんでわざわざ障害の多い Ruby 使おうとするんだろう。
376:デフォルトの名無しさん
13/03/06 13:25:04.44
Windowsがいいにきまってるでしょ
377:デフォルトの名無しさん
13/03/06 17:20:02.85
RubyをWindowsで使っちゃうひとって
378:デフォルトの名無しさん
13/03/06 20:28:24.38
LinuxでRuby使っちゃうひとって
379:デフォルトの名無しさん
13/03/06 21:42:44.64
最新のハッカーは、Windowsw、だぜ。