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/
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くらいは有効にしてるけど
なんかインタラクティブで便利な小関数とかあったら教えてほしいです。
0779デフォルトの名無しさん
垢版 |
2018/10/30(火) 01:46:25.15ID:tLch1bmf
ハッシュ内に、あるキーが存在するかどうかだけを知りたい場合、
配列の要素をキーにして、配列からハッシュを作るのに、
以下のように書いていますが、もっとよい書き方がありますか?

ただし、ハッシュの値は使わないので、nil 以外なら何でもよい

h = { }

%w(a b c).map{ |e| h[e] = true }
p h
0781デフォルトの名無しさん
垢版 |
2018/10/30(火) 15:01:28.07ID:p4LrBCE7
begin
rescue
end
0782779
垢版 |
2018/10/30(火) 21:46:09.04ID:tLch1bmf
ただ単に、配列の要素を、ハッシュのキーに登録して、その文字列の存在確認だけをしたい場合に、
ハッシュの値は使わないので、nil 以外なら何でもよいので、以下のように書いています

もちろん配列で、Enumerable のinclude?, member? を使えば、要素の存在確認ができるのですが、
配列では要素を全探索(計算量 O(N))してしまうため、わざわざハッシュに入れています。
全探索では計算量 O(N)ですが、ハッシュでは、O(1)なので要素数に左右されないため

こういう用途で皆さんは、どのように書いていますか?

h = { }

%w(a b c a).map{ |e| h[e] = true }
p h #=> {"a"=>true, "b"=>true, "c"=>true}
0783デフォルトの名無しさん
垢版 |
2018/10/30(火) 22:20:43.93ID:Zbq+CYDW
>>782
Setを使うのが普通だろうね
Setは内部ではHashを使ってるので、やってることは変わらないけど
0785デフォルトの名無しさん
垢版 |
2018/10/30(火) 22:59:41.01ID:4k+bjVEd
commonmarker 0.17.x から0.18.xに上げたら、html混ざりmarkdownをコンバートすると
htmlは省略だぁ〜ヒャッハー
となるようになってしまった。OTL
0787779
垢版 |
2018/10/30(火) 23:16:04.14ID:tLch1bmf
Ruby に、set があったのか!

配列で集合演算するから、忘れていたわ
0789デフォルトの名無しさん
垢版 |
2018/11/04(日) 14:01:58.67ID:72B38wDh
記号の読み方について
!= はノットイコールだよね?
=> はファットカンマだよね?
=~ に読みかたってある?
あと、\(バックスラッシュ)のこと何て呼んでる?そのままバックスラッシュ?
教えて
0790デフォルトの名無しさん
垢版 |
2018/11/04(日) 14:08:45.24ID:5RY1Lh2I
go c
0792デフォルトの名無しさん
垢版 |
2018/11/04(日) 14:24:33.61ID:72B38wDh
>>790
go chiebukuro?
0793デフォルトの名無しさん
垢版 |
2018/11/04(日) 14:24:58.57ID:72B38wDh
>>791
かわいい
0796デフォルトの名無しさん
垢版 |
2018/11/04(日) 18:27:11.42ID:rLQVzKFu
>> 792
5c
0799デフォルトの名無しさん
垢版 |
2018/11/09(金) 16:54:13.33ID:ALrpS26S
ttps://www.ruby-lang.org/ja/downloadsから
「RubyInstaller1.3.3」をダウンロードしたいんだけど、どこにありますか?
0802デフォルトの名無しさん
垢版 |
2018/11/09(金) 20:28:20.74ID:ALrpS26S
>>800
はい。そうです。

>>801
私がやりたいことはバージョンが上でももないとのことでした。
返信ありがとうございました。
0804デフォルトの名無しさん
垢版 |
2018/11/09(金) 21:40:15.28ID:ALrpS26S
>>802
誤字ってたので訂正

× 私がやりたいことはバージョンが上でももないとのことでした。

○ 私がやりたいことはバージョンが上でも問題ないとのことでした。

>>803
ありがとうございます
0805デフォルトの名無しさん
垢版 |
2018/11/09(金) 22:07:29.84ID:LcYc+UJI
>>804
この辺>>686-687も参考にせいぜい頑張ってねw

686 デフォルトの名無しさん 2018/10/17(水) 20:13:17.85 ID:pcmrmHBT
ドキュメント軽視とWindows蔑視はRubyコミュニティの伝統。
コードが仕様だ!Windowsなんて使ってる奴が悪い!

687 デフォルトの名無しさん sage 2018/10/17(水) 20:17:44.70 ID:z+Rs6gUv
Unixで開発してるとGCCツールチェインは自然に入ってるからね
はっきり言うね、Windows使いに人権はありません
0809デフォルトの名無しさん
垢版 |
2018/11/12(月) 12:14:58.73ID:XIxjtr9D
30歳無職なんだけど俺にもプログラミングできるかな?
https://www.loserblog.net/
0810デフォルトの名無しさん
垢版 |
2018/11/13(火) 03:53:48.37ID:gWmuHRek
Ruby installer のDevkit 無し(ポータブル版)は、MSYS2/MINGW、GNU コンパイラが無いので、
ソースコードからコンパイルできないけど、サイズは2〜3GB 小さい

WebSocket, Rails, VSCode のデバッグ機能などは使えないけど、
Sinatra, Nokogiri, Selenium WebDriver などは使える
(WebSocket のバイナリをネットで探したけど、見つからなかった。どこかにない?)

漏れは、Windows10 で、ruby 2.4.4 を使っている。
2.5 系は、まだ新しいから使わないように

ポータブル版を、C:\Ruby24-x64 に置いて、
ユーザー環境変数PATH に、C:\Ruby24-x64\bin を追加すればよい

漏れは、ユーザー環境変数RUBYOPT に、--encoding=UTF-8 も設定しているけど、
これで、irb は使えなくなる

ただし、Windows のirb は、日本語がバグるので、
irb を使うのなら、WSL で、Ubuntu 16.04 に、Ruby 2.3.1 を入れて、そちらを使う。
Ubuntu 18.04 は、まだ新しいから、もうちょっと様子を見る

入力補完が効かないけど、VSCode で作ってる。
MSYS2 を入れれば、入力補完できるのかね?
0811810
垢版 |
2018/11/13(火) 04:09:32.58ID:gWmuHRek
Windows10・WSL の、Ubuntu が、日本語でも入出力できるのは、
コマンドプロンプトの画面と同じものを使っているから

でも、irb みたいに、Linux 側のソースコードで、
独自にWindows 向けにコンパイルしたものは、半角英数字しか動かない。
日本語など、他の言語はバグル

pry も、irb を使っているのだっけ?

漏れの希望としては、Windows10・WSL の、Ubuntu みたいに、
コマンドプロンプトの画面と同じものを使って、作ってほしい

そうそう、最初にgem で、パッケージマネージャーのBundler を入れる。
それ以後は、gem を使わず、Bundler で他のgem をインストールすればよい
0812デフォルトの名無しさん
垢版 |
2018/11/13(火) 07:22:43.54ID:e2cmk+aq
なんじゃそりゃ
windowsでマルチバイト文字が文字化けするのはreadlineの所為
pryとirbはソースレベルで全く別物
0813デフォルトの名無しさん
垢版 |
2018/11/13(火) 08:58:09.11ID:M3rNGpof
こいつ>>810>>811、Ruby関係ないスレで脈絡なく自分語りとRubyの宣伝しだしたり、他言語専用質問スレでRubyで回答してからRubyの宣伝しだしたり非常にウザいんだが。
このスレから出てこないようにしとけよ。
0814デフォルトの名無しさん
垢版 |
2018/11/13(火) 18:35:35.73ID:EVOGh0na
Ruby糞
0815810
垢版 |
2018/11/13(火) 23:41:18.63ID:gWmuHRek
そのreadline を使っていると、Windows で日本語でバグるのだろう。
Windows で半角英数字以外には、対応していないのだろう

Windows10・WSL の、Ubuntu では、
メニューなどもコマンドプロンプトの画面と、全く同じだから、日本語でもバグらない
0818デフォルトの名無しさん
垢版 |
2018/11/14(水) 09:06:46.01ID:BvL9P3zV
vs codeからvimに乗り換えようと思う。マウス捨てればいいんだろ?
0823デフォルトの名無しさん
垢版 |
2018/11/14(水) 20:23:51.58ID:D2WaC5Jp
>>820
require 'win32ole'
colItems = WIN32OLE.connect('winmgmts://./root\CIMV2').ExecQuery("Select * from Win32_PNPEntity Where (Name like '%(COM%)')" )
colItems.each{|obj| puts obj.Caption }
0824デフォルトの名無しさん
垢版 |
2018/11/15(木) 09:15:54.74ID:NWUUxe6q
ぶっちゃけvlmがvscodeに勝ってるところなんてあるか?
0825デフォルトの名無しさん
垢版 |
2018/11/15(木) 09:46:17.53ID:P9aoBmqQ
>>824
vimはRuby界における公式エディタであるemacsの仇敵だし、vscodeはMSという大悪魔に魂を売ることになる
目糞鼻糞
0826デフォルトの名無しさん
垢版 |
2018/11/15(木) 12:05:23.30ID:tGnWpqvT
vimからRuby呼び出してスクリプトによる編集処理してもいいんじゃない?
0827デフォルトの名無しさん
垢版 |
2018/11/15(木) 12:52:11.17ID:lNkjj0jr
>>825
Haskellerの癖にvi使いになった自分からすると、ぶっちゃけ編集能力の割に軽いってのがある。
編集能力単体ならemasやvscoreの方があるかも知れないが、軽さとのコスパはvi。
ちょっと編集したい程度ならviの方が速い。
0830デフォルトの名無しさん
垢版 |
2018/11/15(木) 22:08:27.47ID:g74yzjtM
Ruby で、PowerShell から、Web サーバーを起動すると、WEBrick が起動する。
ruby -run -e httpd . -p 8080

これで複数のブラウザから、index.html をアクセスできる。
http://localhost:8080

Nokogiri, Selenium WebDriver, ERB などを使って、
原始的に文字列から、HTML タグを構築して、ブラウザで見る

漏れはその方法で、自分のPC 内の画像フォルダ内の画像を、ブラウザで見てる

他には、5ch の書き込み内のリンク(a タグ)を取得して、
それが画像の拡張子なら、img タグに変換して、画像として表示したりしてる

GUI は、HTML, CSS, JavaScript を使えばよい
0833デフォルトの名無しさん
垢版 |
2018/11/16(金) 19:08:35.86ID:dkx8E2i6
>>830
世界最大のソフトウェア開発プラットフォームで最も人気なプログラミング言語は何なのか?
https://gigazine.net/news/20181116-top-programming-languages-2018/

さすがRuby!貫禄のランクイン!!
Railsで作られたサービスということを差し引いてもすごい!
0834デフォルトの名無しさん
垢版 |
2018/11/16(金) 23:07:52.34ID:6qpmN5uX
改訂2版 Ruby逆引きハンドブック、2018/8/28
株式会社マネーフォワード

今読んでいるけど、この本もすごい!

著者は、初版の「るびきち」から、上場企業のマネーフォワードの9人に変わったけど、
何人か、Rubyコミッターもいる

この会社もRubyでは、Cookpad 並みにすごいかも
0835デフォルトの名無しさん
垢版 |
2018/11/16(金) 23:56:41.91ID:agF7AI+S
2015年まで5位の座を占めていたRubyは
2018年になると10位へ転落し、
トップ10から陥落しかけている状況。
0836デフォルトの名無しさん
垢版 |
2018/11/17(土) 00:09:37.31ID:+2RnQZxl
rubyは落ち目だな
今のうちにPythonに乗り換えとくわ
0839デフォルトの名無しさん
垢版 |
2018/11/17(土) 05:07:41.72ID:n+7enX5R
pycharm-ceの出来がいいから、ついpythonで書いちゃうな
rubymineもceバージョン出してくれんかな(´・ω・`)
0840デフォルトの名無しさん
垢版 |
2018/11/17(土) 15:41:40.28ID:+2RnQZxl
atom使ってる人いる?
何故atomを使うのか聞きたい
0842デフォルトの名無しさん
垢版 |
2018/11/17(土) 16:05:28.35ID:rc62Vrp5
Railsで世界最高の開発者向けサービスを作って今はMSの社員としてMSから高給を貰っている方々によって開発されたエディタだからな
これはもうRubyがAtomを生み出したと言っても過言ではない
0843デフォルトの名無しさん
垢版 |
2018/11/17(土) 16:11:27.29ID:5f4S6inB
VSCodeは元々Atomからフォークされたものであるから、VSCodeの起源もまたRubyにあると言っても過言ではない
0844デフォルトの名無しさん
垢版 |
2018/11/17(土) 16:47:00.84ID:DG9kgnl3
MSは俺が出した金から社員に給料を出しているわけだから、
俺の先祖がAtomを生み出したと言っても過言ではない
0845デフォルトの名無しさん
垢版 |
2018/11/17(土) 17:39:21.46ID:+xB40+7+
Railsの超初心者の質問なのですが、例外をキャッチしたらエラー画面を出さずにエラーメッセージをビューに送る処理を書きたいのですがうまく行きません。
コードです。
https://ideone.com/ubaMxO
0848デフォルトの名無しさん
垢版 |
2018/11/17(土) 18:34:31.02ID:DG9kgnl3
>>847
その答えは失格だなぁw

正しい答えは「例外をキャッチしたらエラー画面を出さずにエラーメッセージをビューに送る処理を書いたらだめ」だ
0849デフォルトの名無しさん
垢版 |
2018/11/17(土) 19:07:10.27ID:+xB40+7+
>>848
あんまりよくわからないです
インスタンス変数はビューから参照出来るんですよね?
それとも例外の処理書き間違えていますかね?
0851デフォルトの名無しさん
垢版 |
2018/11/17(土) 19:11:04.46ID:+xB40+7+
>>850
ではエラーメッセージはどうやってビューに渡すんですか?
0852デフォルトの名無しさん
垢版 |
2018/11/17(土) 19:58:22.61ID:c8NyF4AG
例外が発生したらそのままプログラムを終了させてしまえと主張する気違いはたまに発生する
0854デフォルトの名無しさん
垢版 |
2018/11/17(土) 22:06:33.92ID:+xB40+7+
なんかバカな質問してました
手段忘れたけど自己解決しました
0856デフォルトの名無しさん
垢版 |
2018/11/18(日) 02:34:46.70ID:tOYW/MHy
>>851
エラーメッセージやなくて例外やろ?
例外は渡さなくていいって言ってるの
rescueもしなくていいって言ってんの

なんのためにRails使ってるんだよ?
そんなクソ面倒なことRailsにやらせろよ
0857デフォルトの名無しさん
垢版 |
2018/11/18(日) 02:35:32.08ID:tOYW/MHy
>>852
> 例外が発生したらそのままプログラムを終了させてしまえと主張する気違いはたまに発生する
そいつはバカだな。Railsは例外発生してもプログラム終了しないからな。さすがやで
0858デフォルトの名無しさん
垢版 |
2018/11/19(月) 17:01:29.63ID:0ckbPJ2E
掲示板実装できた
これで初心者から初心者にステップアップだ
■ このスレッドは過去ログ倉庫に格納されています

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