X



Ruby 初心者スレッド Part 64
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/09/01(土) 19:25:16.66ID:wk35+pf/
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 63
https://mevius.5ch.net/test/read.cgi/tech/1523954817/

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

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

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
0678デフォルトの名無しさん
垢版 |
2018/10/16(火) 00:37:42.37ID:0EEpB7o8
>>674
まったく別の言語だからね。しかたないね。
Perl5は今でもアップデートされてる。

ただ、互換させようともしてたはず。
Perl5スクリプトをPerl6エンジンが直接解釈できるようにして。
0679デフォルトの名無しさん
垢版 |
2018/10/16(火) 03:48:20.65ID:t3pQN/xM
>>677
中田氏
0680デフォルトの名無しさん
垢版 |
2018/10/16(火) 05:06:21.14ID:TeNN2wBh
>>661
「ruby == === eql equal」で検索!

たいてい、Ruby では、== 、JavaScript では、=== を使う

>>665
「ruby python strptime strftime 」で検索!
0682デフォルトの名無しさん
垢版 |
2018/10/17(水) 18:51:33.45ID:RzUo3BE1
Windows10 で、MSYS2 を入れていないので、WebSocket gem がコンパイルできません。
どこかに、バイナリがありませんか?

Rails の日付時刻や、数字をカンマで3桁区切りにする関数などを使いたいので、
Rails のUtility 関数だけ、インストールできませんか?

WebSocket が無いので、Rails をインストールできないのです
0685682
垢版 |
2018/10/17(水) 20:09:00.30ID:RzUo3BE1
ありがとう

Windows10 で、WSL は入れているけど、コンパイル環境は数GB もあるだろ。
漏れのノートPC は、100GB ほどのSSD で、Windows だけで半分使っているから

コンパイル済み、バイナリだけ欲しい
0686デフォルトの名無しさん
垢版 |
2018/10/17(水) 20:13:17.85ID:pcmrmHBT
ドキュメント軽視とWindows蔑視はRubyコミュニティの伝統。
コードが仕様だ!Windowsなんて使ってる奴が悪い!
0687デフォルトの名無しさん
垢版 |
2018/10/17(水) 20:17:44.70ID:z+Rs6gUv
Unixで開発してるとGCCツールチェインは自然に入ってるからね
はっきり言うね、Windows使いに人権はありません
0689デフォルトの名無しさん
垢版 |
2018/10/17(水) 20:27:21.59ID:z+Rs6gUv
まあWSLはUNIXそのものだからね
Macより互換性高いくらいだ
いっそ「WinならWSL使え」でWin版は完全に切り捨てたほうが、
初心者が勘違いしてWin版入れてしまって得るものの皆無な地獄を見る悲劇が起きなくて幸せだと思うわ
0690デフォルトの名無しさん
垢版 |
2018/10/17(水) 20:33:29.32ID:t+3zMNmx
UNIXじゃなくてLinuxな
NTカーネル上でLinuxカーネルを全く使うことなく
Linuxカーネルそのものをエミュレートしてしまった
0692682
垢版 |
2018/10/17(水) 21:21:48.42ID:RzUo3BE1
Windows10 で、MSYS2 無しのRuby Installer を入れた

漏れのノートPC は、2コア・i3 の安物だから、VirtualBox を使えない。
SSD の残りも、数十GB しかないし

Windowsのirb は日本語でバグるから、WSL で、grep, irb を使っている

WindowsのExplorer では、BOM 無しUTF-8 は、日本語で検索できないから、WSLからgrepを使う。
BOM 有りUTF-8なら、Explorerでも検索できるけど、Linux系のアプリでバグるから使えない
0695デフォルトの名無しさん
垢版 |
2018/10/19(金) 12:59:34.33ID:jQ8EJjtV
WSLのためだけにWin10にするひとって・・・
0696デフォルトの名無しさん
垢版 |
2018/10/19(金) 13:00:05.07ID:jQ8EJjtV
>>691
だよな
0698デフォルトの名無しさん
垢版 |
2018/10/19(金) 14:03:39.94ID:7EbyWZ6s
Qemuが軽い
0699デフォルトの名無しさん
垢版 |
2018/10/19(金) 14:43:37.15ID:Gv4RzDVV
>>697
VirtualBoxは営利でもサポート不要なら無料って見解が出てたのと

VMwareはWindowsゲストのパフォーマンスには力入れてるけど
Linuxゲストはあんまり充実してないイメージ(偏見)
0700デフォルトの名無しさん
垢版 |
2018/10/19(金) 16:20:25.47ID:zBWz8HK+
Perlは正規表現で貢献した
ただ、そのおかげで将来正規表現だけでプログラム書けそうな気がしてくる
0701デフォルトの名無しさん
垢版 |
2018/10/19(金) 16:37:24.25ID:peD230zx
チューリング完全じゃないよね?
0702デフォルトの名無しさん
垢版 |
2018/10/19(金) 16:46:40.15ID:fdWiEMtL
>>699
Linuxディストリビューションが多くてサポートできないから、vm-toolsをオープン化するので、各ディストリビューターが自分達で用意してねっじゃなかった?
0704デフォルトの名無しさん
垢版 |
2018/10/19(金) 18:21:14.61ID:uYziTuig
SQLなんてプログラミング言語じゃないだろ
っていうのと
正規表現なんてプログラミング言語じゃないだろ
っていうのと
どっちが違和感ある?
0709デフォルトの名無しさん
垢版 |
2018/10/20(土) 17:37:10.50ID:JU35Hjk+
Rubyでexeファイルを作る方法を調べWindowsのコマンドラインプロンプトで実行する
プログラムをocraを使いexeファイル化しました。コマンドプロント画面がすぐに閉じてしまうのですが、

どうすれば表示したままにできますか?
教えてくださいよろしくお願いします。

Ocraで、rubyからWindowsの実行ファイル(exe)を作る
http://myruby.seesaa.net/article/124126159.html

sleepコマンドとか使うんですか??
助けてください。。。
0710デフォルトの名無しさん
垢版 |
2018/10/20(土) 17:47:54.81ID:wp9EeO+Y
>>709
コンソールアプリケーションはダブルクリックで実行するものではない
予めコンソールが開いている状態で、その中で実行すれば勝手に閉じない
被差別ドザには分からないかもしれないが、Ruby界における唯一絶対のプラットフォームであるUNIXにおいては、
コンソールは常に開いていてコマンドでの作業を日常的に行うもんなんだよ
コマンドプロンクソなんかとは根本的に違うの
0711デフォルトの名無しさん
垢版 |
2018/10/20(土) 17:52:38.22ID:O4sbTglp
>>709
日本語環境ならneriの方がお勧めだよ(そもそもexeにするのがお勧めじゃないというのはナシ)
コマンドプロンプトから実行するかrbファイルの最後に
puts '終了します'
gets
とでも付け足しておこう
0712デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:01:57.88ID:wp9EeO+Y
exeで配布するようなアプリで最後にputsとか最低最悪でしょ
そのようなユーザーとの対話を必要とするコマンドラインアプリは自動化の妨げになるため、非常識な行為として極めて嫌われ蔑まれる
ドザはただでさえRuby界では人間扱いされてないんだから、路上にウンコしない程度の畜生としての最低限のマナーは守りなさい
0713デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:03:16.66ID:OaSao/It
rubyエンジニアはエンジニアの頂点に位置するからドザみたいなミジンコの糞みたいな存在は許さないんだよ
0714デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:04:34.16ID:V0y1IBp6
> そのようなユーザーとの対話を必要とするコマンドラインアプリは自動化の妨げになるため、

vim「・・・」
0715デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:08:52.17ID:wp9EeO+Y
>>714
vimはCUIアプリではあるけど通常はコマンドラインアプリではないし、非対話モードにも対応しておりコマンドラインから使用することも可能だ
そんなだからいつまでもRubyistが真の上級民から蔑まれてドザがはけ口にされるんだよ
0718デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:26:16.08ID:J/4W9td6
>>717
配布する予定がないなら試す必要ないでしょ
時間の無駄じゃね?
どうせRubyなら実運用環境はLinuxなんだし
0719デフォルトの名無しさん
垢版 |
2018/10/20(土) 19:26:56.02ID:wLnLpjF6
>>718
それはさすがにエンジニア心を分かってなさすぎな発言だと思うけど
エンジニアは「面白そうだからやってみる」という好奇心で動くことも多いんだし
0722デフォルトの名無しさん
垢版 |
2018/10/21(日) 03:23:57.17ID:b36eij4d
macbook無印でRailsやってる人、開発してる中でCPUの性能不足を感じることあります?
0723デフォルトの名無しさん
垢版 |
2018/10/21(日) 10:59:48.51ID:PQvzxFzP
ない
Railsは10年前に流行ったレガシープラットフォームであり、当時から開発環境はほとんど進化していない
0724デフォルトの名無しさん
垢版 |
2018/10/21(日) 12:26:31.68ID:maGFzjnq
開発はサーバー上でやってるからMacだろうがWindowsだろうが何も変わらない
CPU性能すら普通で問題ない
0727デフォルトの名無しさん
垢版 |
2018/10/23(火) 13:45:42.65ID:oO1V5V+n
問題文も不親切だと思う
名前を入れたら年齢と住所が出てくるようにすればいいのか、名前を入れて住所だけ表示する、住所を入れて年齢だけ表示すると言うふうにしないといけないのか……
わからない……
0728デフォルトの名無しさん
垢版 |
2018/10/23(火) 14:27:48.54ID:UJUp/CV/
>>726
profiles の要素を一つ一つ調べて与えられた条件と比較してtrueを返す要素を返せばよい

def search(profiles, key)
  profiles.select{|profile| yield profile[key]}
end

search(profiles, :age){|age| age >= 20}
# => [{:name=>"静岡 太郎", :age=>34, :address=>"静岡県"},
 {:name=>"名古屋 次郎", :age=>25, :address=>"愛知県"}]
0730デフォルトの名無しさん
垢版 |
2018/10/23(火) 16:50:50.47ID:9qrW/tmi
ruby でストリームで zip を作るのってどうしたらいいんですか?

zip を扱うには rubyzip っていうのを使う記事が多いけど
zip を作るときにストリームでファイル1つ1つ追加できるっていうだけで
出力は完成してからしないといけないみたいで
少しずつ中身を取り出す方法ってないでしょうか?

ZIP自体はストリームに対応してるみたいなんですが
0731デフォルトの名無しさん
垢版 |
2018/10/23(火) 16:56:54.29ID:yFsvvFWj
zlib
0732デフォルトの名無しさん
垢版 |
2018/10/23(火) 20:03:22.28ID:9qrW/tmi
zlib ドキュメントよんでみたんですけど
複数ファイルをZIPにするってどうやるんですか?
単一ファイル操作しかないようにみえるんですけど
0734デフォルトの名無しさん
垢版 |
2018/10/24(水) 02:27:17.69ID:2LYWqLo0
以下を実行したら、ABCDE, 0 の順番で出力された。
( )に関係なく、左側から順番に評価された!
Java でも同じらしい

ary = [ ]

def getValue ( str )
puts str; 0
end

p ary[ getValue("A") ] = getValue("B") + ( getValue("C") + ( getValue("D") + getValue("E") ) )
0735デフォルトの名無しさん
垢版 |
2018/10/24(水) 08:53:32.74ID:+vpF9pgu
irbの設定ファイルである~/.irbrcを任意の場所に任意の名前で設定することってできますか?
irb(1)のマニュアルを読む限り設定できなさそうなのですが なにぶん素人なので実は勘違いだということもあり質問しました。
よろしくおねがいします。

https://linux.die.net/man/1/irb
0736デフォルトの名無しさん
垢版 |
2018/10/24(水) 08:57:45.64ID:roEuQo4O
>>728
>>729
ありがとうございます!
0737デフォルトの名無しさん
垢版 |
2018/10/24(水) 10:23:23.61ID:u4k0FB1t
>>735
環境変数 IRBRC
0738デフォルトの名無しさん
垢版 |
2018/10/25(木) 00:21:03.53ID:R/0gSUq3
>>737
うーん。ログインシェルで
export IRBRC=~/LOCAL/irbrc
としてるんですけどどうやら反映されていませんね。
irbにおいて
> puts ENV['IRBRC']
とやると/home/username/LOCAL/irbrc
と返ってくるので場所は読み込まれていると思うんですけどね……。

irb 0.9.6 on Debian 9
0739デフォルトの名無しさん
垢版 |
2018/10/25(木) 00:44:40.77ID:9zbDNBNy
>>733
https://docs.ruby-lang.org/ja/latest/library/zlib.html
これじゃないんですか?

https://docs.ruby-lang.org/ja/latest/class/Zlib=3a=3aGzipWriter.html
かきこみ
https://docs.ruby-lang.org/ja/latest/class/Zlib=3a=3aZStream.html
ストリーム

あたりよんでみたんですけどファイルを指定できるのは1つだけで
途中でファイルやオブジェクト、エントリを追加するみたいなメソッドが1つもない気がするんですが
0740デフォルトの名無しさん
垢版 |
2018/10/25(木) 12:19:50.90ID:MxtFgRlu
railsのform_withって何をループさせてるの?
0743デフォルトの名無しさん
垢版 |
2018/10/26(金) 00:07:25.47ID:PFgc5eHH
>>730です
サーバーサイドで複数のファイルをZIPにつめてダウンロードさせたいけど
ファイル数が多いから一度にメモリ上におきたくない
0744デフォルトの名無しさん
垢版 |
2018/10/26(金) 00:28:35.43ID:pE8f1AMr
>>743
そんなもん一旦ファイルに保存してzipコマンド呼んで解凍すればよい
それがスクリプト言語やUNIXの正しい使い方だ
他のプロセスに役割を任せることは恥ではない
0745デフォルトの名無しさん
垢版 |
2018/10/26(金) 01:05:46.27ID:PFgc5eHH
あきらめてその方向で実装してるけど
今度はダウンロードが始まるまでに時間がかかるせいで
JSで何かしらプログレスかindicatoorつけなきゃいけないんだけどめちゃめちゃ難しい
これ以上はスレチだからいわないけど正直rubyでストリームDLできればこんな苦労しなくてすむのに…
0747デフォルトの名無しさん
垢版 |
2018/10/26(金) 01:47:51.93ID:E+2rE/Ml
>>744
> それがスクリプト言語やUNIXの正しい使い方だ

APIやライブラリ呼ぶなってこと?
C言語使う意味ないだろ
0749デフォルトの名無しさん
垢版 |
2018/10/26(金) 01:53:20.93ID:E+2rE/Ml
はぁ、zlibってzipなどのファイル形式で使用されてる
圧縮アルゴリズムのライブラリじゃん
アルゴリズムだけあったってファイル作れるわけ無いだろ
0750デフォルトの名無しさん
垢版 |
2018/10/26(金) 06:02:16.85ID:9dCnW3IN
>>747
思想を理解してないみたい
APIやライブラリを呼ぶことこそUnix流なんじゃないの?
だから、Pythonはその代表格
0751デフォルトの名無しさん
垢版 |
2018/10/26(金) 08:14:34.19ID:pE8f1AMr
APIやライブラリを呼ぶのと役割以上の余計なことをしないのは別問題だよ
zipコマンドがzlibを使うのは当然だが、例えばインターネットのURLからのダウンロード機能を備えるべきではない
0752デフォルトの名無しさん
垢版 |
2018/10/26(金) 08:33:59.35ID:GwvyvDN1
アプロダの様にタイムカウンターを付けて時間を稼ぎ、用意できたらリンクを表示するようにすれば良いのでは?
0754デフォルトの名無しさん
垢版 |
2018/10/26(金) 08:57:37.12ID:PFgc5eHH
ていうか独学で半年 じつむで半年rubyさわったけど
ここみてるとまだ初心者でもなかったんだなって
回答のレベルが高すぎるのか不親切なのかわからないけどまったくやり方がわからない
Railsの案件なんか手出すんじゃなかったわ

JavaやJavascriptは独学でも質問スレやteratailあたりで回答してくれる人が結構いるんだけど…
0755デフォルトの名無しさん
垢版 |
2018/10/26(金) 10:24:27.55ID:8kUYcP+w
初心者スレには初心者しかいないんだから、
茶化すだけでちゃんと答えもったやつがいるわけないだろ
0756デフォルトの名無しさん
垢版 |
2018/10/26(金) 12:38:53.19ID:xBIHPZW8
>>730
完成前に内容を取り出すのは、Ruby の機能じゃない。
YouTube などのライブ配信機能

やって来たデータだけを変換して、すぐに送り返す

質問者は名前欄に、質問したレス番号を入れてくれ
0757デフォルトの名無しさん
垢版 |
2018/10/26(金) 14:07:36.32ID:ScQN6FWl
gemについての質問です
$ gem install xxx --user-install
とした場合
~/.gem/ruby/2.3.0/bin/
に実行可能なファイルが作成されますがこのディレクトリを取得する方法を知りたいです。
$ gem env GEM_PATH
などでも一意に絞れず……。

$ gem install xxx --user-install
した時のパスを取得する方法ってないんですかね。
0758デフォルトの名無しさん
垢版 |
2018/10/26(金) 14:56:11.56ID:2qgVXRaq
>>757
$ ruby -e 'puts Gem.bindir(Gem.user_dir)'
0759デフォルトの名無しさん
垢版 |
2018/10/26(金) 18:42:13.63ID:ScQN6FWl
>>758
ありがとうございます! 無事、パスが取得できました。
gemコマンドでは取得できないんですね……。
なにか理由あるのでしょうかね。
0760デフォルトの名無しさん
垢版 |
2018/10/26(金) 22:11:17.44ID:PFgc5eHH
>>755
やっぱりそうですよねー
できないならできないでいいんだけどzlibでできるっていうから調べたのにその後音沙汰ないし
できないことをできるっていってソースだしてくれないのが時間だけ無駄になるから一番困る

>>756
最終的に a b c 3つのファイルをまとめたZIPを作る際に
a だけを追加した瞬間のデータを取り出すというのは
プラットフォーム関係ないデータや文字列上の操作の話ですよね

それをクライアントに送り消す方法とかになるとサーバーフレームワークやブラウザ依存の話になってくるけど
0761デフォルトの名無しさん
垢版 |
2018/10/27(土) 00:09:38.25ID:5/IIU5Ep
>>760
Kernel.openやIO.popenでコマンドとパイプつなげられる。ファイルがどこかに置いてあるならzipコマンドからSTDOUTに出力させてパイプでつないで受け取ればいいんじゃね?
0762デフォルトの名無しさん
垢版 |
2018/10/27(土) 00:23:01.64ID:QbA5AMkn
UNIXコマンドよびださなきゃ言語内だけでは何ひとつまともなことができないゴミ言語だってはっきりわかんだね
0763デフォルトの名無しさん
垢版 |
2018/10/27(土) 00:26:30.74ID:5/IIU5Ep
添付ライブラリにあるzlibとstringioとThread使っても出来そうな気はするがそこまでやる気はない
0764デフォルトの名無しさん
垢版 |
2018/10/27(土) 00:29:10.59ID:5/IIU5Ep
zipの仕様よく知らないけどファイナライズしないで途中の内容確定するのかな
0765デフォルトの名無しさん
垢版 |
2018/10/27(土) 00:42:16.82ID:QkHwtfgJ
>>762
ほんそれ
0766デフォルトの名無しさん
垢版 |
2018/10/27(土) 00:44:57.26ID:4RrrP6U6
> UNIXコマンドよびださなきゃ言語内だけでは何ひとつまともなことができないゴミ言語だってはっきりわかんだね

C言語「・・・」
0767デフォルトの名無しさん
垢版 |
2018/10/27(土) 00:50:08.68ID:4RrrP6U6
言語の標準機能は必要最小限にしてライブラリを使いましょう派
 VS
ライブラリなんかいらない、なんでも言語の標準機能にしてしまえ派


俺は前者だな。C言語、JavaScript、Rubyなんかが当てはまる

後者に当てはまる言語はPHPか?
0768デフォルトの名無しさん
垢版 |
2018/10/27(土) 00:52:27.94ID:4RrrP6U6
恐ろしいことに、PHPはZIPライブラリが言語標準機能なんだよなぁ

http://php.net/manual/ja/zip.installation.php

> これらの関数を利用するには、設定オプション --enable-zip を使用して
> zip サポートを有効にして PHP をコンパイルしなければなりません。
>
> PHP 5.6.0 からは、--with-libzip=DIR オプションが追加されました。これを指定すると、
> システムにインストールされた libzip を利用します。 libzip 0.11 以降が必要です。0.11.2 以降を推奨します。
0770デフォルトの名無しさん
垢版 |
2018/10/27(土) 02:00:16.08ID:QbA5AMkn
exec からシェル呼び出してコマンドたたいてしかもパイプでつないでとかライブラリとはよばん
0771デフォルトの名無しさん
垢版 |
2018/10/27(土) 07:32:29.11ID:4RrrP6U6
つまり>>770が言いたいことは、libz.soとかのC言語などで使った
ライブラリをRubyから呼ぶことができるならば、
Rubyは素晴らしい言語ということです。
0772デフォルトの名無しさん
垢版 |
2018/10/27(土) 08:05:45.26ID:S4VvuAVS
ようするにシェルスクリプトで十分ということか
ルビーみたいなウンコいらないという結論になるな
0773デフォルトの名無しさん
垢版 |
2018/10/27(土) 08:22:49.85ID:QbA5AMkn
マジレスすると zipline 使え
やりたいことが1行でかける
なんで回答に出ないのか謎だわ
0775デフォルトの名無しさん
垢版 |
2018/10/27(土) 10:29:27.94ID:4RrrP6U6
すべてのライブラリの機能を把握してない
Rubyプログラマなんてこの程度やで

まあこういうレスがくるんでしょうなぁw
0777デフォルトの名無しさん
垢版 |
2018/10/27(土) 14:44:58.20ID:BbyQQXdF
~/.irbrcってどんな感じにしてます?
readlineとirb/completionくらいは有効にしてるけど
なんかインタラクティブで便利な小関数とかあったら教えてほしいです。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況