Ruby 初心者スレッド Part 64
■ このスレッドは過去ログ倉庫に格納されています
プログラミング言語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/
>>682 そんな不便なWindows 10なんか、さっさと捨てなさいな。 >>682 ActiveSupport だけ入れればよろし ありがとう Windows10 で、WSL は入れているけど、コンパイル環境は数GB もあるだろ。 漏れのノートPC は、100GB ほどのSSD で、Windows だけで半分使っているから コンパイル済み、バイナリだけ欲しい ドキュメント軽視とWindows蔑視はRubyコミュニティの伝統。 コードが仕様だ!Windowsなんて使ってる奴が悪い! Unixで開発してるとGCCツールチェインは自然に入ってるからね はっきり言うね、Windows使いに人権はありません Windows 10「WSLでその常識を全部覆してみせたで?」 まあWSLはUNIXそのものだからね Macより互換性高いくらいだ いっそ「WinならWSL使え」でWin版は完全に切り捨てたほうが、 初心者が勘違いしてWin版入れてしまって得るものの皆無な地獄を見る悲劇が起きなくて幸せだと思うわ UNIXじゃなくてLinuxな NTカーネル上でLinuxカーネルを全く使うことなく Linuxカーネルそのものをエミュレートしてしまった >>682 VirtualBoxにCentOS7を入れてやるのが現実的だと思う 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系のアプリでバグるから使えない もっと言えばSSDの残りが何バイトとかも関係ないしな vmware playerの方が良くね?(非営利の個人なら無料) >>697 VirtualBoxは営利でもサポート不要なら無料って見解が出てたのと VMwareはWindowsゲストのパフォーマンスには力入れてるけど Linuxゲストはあんまり充実してないイメージ(偏見) Perlは正規表現で貢献した ただ、そのおかげで将来正規表現だけでプログラム書けそうな気がしてくる >>699 Linuxディストリビューションが多くてサポートできないから、vm-toolsをオープン化するので、各ディストリビューターが自分達で用意してねっじゃなかった? SQLなんてプログラミング言語じゃないだろ っていうのと 正規表現なんてプログラミング言語じゃないだろ っていうのと どっちが違和感ある? SQLはQuery Language(言語) 正規表現はRegular Expression(表現) >>704 前者。ただSQLはクエリーだけにとどめておきたい。 Rubyでexeファイルを作る方法を調べWindowsのコマンドラインプロンプトで実行する プログラムをocraを使いexeファイル化しました。コマンドプロント画面がすぐに閉じてしまうのですが、 どうすれば表示したままにできますか? 教えてくださいよろしくお願いします。 Ocraで、rubyからWindowsの実行ファイル(exe)を作る http://myruby.seesaa.net/article/124126159.html sleepコマンドとか使うんですか?? 助けてください。。。 >>709 コンソールアプリケーションはダブルクリックで実行するものではない 予めコンソールが開いている状態で、その中で実行すれば勝手に閉じない 被差別ドザには分からないかもしれないが、Ruby界における唯一絶対のプラットフォームであるUNIXにおいては、 コンソールは常に開いていてコマンドでの作業を日常的に行うもんなんだよ コマンドプロンクソなんかとは根本的に違うの >>709 日本語環境ならneriの方がお勧めだよ(そもそもexeにするのがお勧めじゃないというのはナシ) コマンドプロンプトから実行するかrbファイルの最後に puts '終了します' gets とでも付け足しておこう exeで配布するようなアプリで最後にputsとか最低最悪でしょ そのようなユーザーとの対話を必要とするコマンドラインアプリは自動化の妨げになるため、非常識な行為として極めて嫌われ蔑まれる ドザはただでさえRuby界では人間扱いされてないんだから、路上にウンコしない程度の畜生としての最低限のマナーは守りなさい rubyエンジニアはエンジニアの頂点に位置するからドザみたいなミジンコの糞みたいな存在は許さないんだよ > そのようなユーザーとの対話を必要とするコマンドラインアプリは自動化の妨げになるため、 vim「・・・」 >>714 vimはCUIアプリではあるけど通常はコマンドラインアプリではないし、非対話モードにも対応しておりコマンドラインから使用することも可能だ そんなだからいつまでもRubyistが真の上級民から蔑まれてドザがはけ口にされるんだよ だから対話モードのコマンドプロンプトアプリとして作れば良いのだよ >>712 配布じゃなくてocra試してみただけなんだと思ってレスしたんですけど…… >>717 配布する予定がないなら試す必要ないでしょ 時間の無駄じゃね? どうせRubyなら実運用環境はLinuxなんだし >>718 それはさすがにエンジニア心を分かってなさすぎな発言だと思うけど エンジニアは「面白そうだからやってみる」という好奇心で動くことも多いんだし macbook無印でRailsやってる人、開発してる中でCPUの性能不足を感じることあります? ない Railsは10年前に流行ったレガシープラットフォームであり、当時から開発環境はほとんど進化していない 開発はサーバー上でやってるからMacだろうがWindowsだろうが何も変わらない CPU性能すら普通で問題ない U-22プログラミング・コンテスト2018 最終審査会 2018/10/21(日) 11:50開始 http://live.nicovideo.jp/watch/lv315793125?ref=qtimetable& ;zroute=index 問題文も不親切だと思う 名前を入れたら年齢と住所が出てくるようにすればいいのか、名前を入れて住所だけ表示する、住所を入れて年齢だけ表示すると言うふうにしないといけないのか…… わからない…… >>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=>"愛知県"}] というか>>726 の模範解答間違ってるな =~使ってるせいでageでsearchできない ruby でストリームで zip を作るのってどうしたらいいんですか? zip を扱うには rubyzip っていうのを使う記事が多いけど zip を作るときにストリームでファイル1つ1つ追加できるっていうだけで 出力は完成してからしないといけないみたいで 少しずつ中身を取り出す方法ってないでしょうか? ZIP自体はストリームに対応してるみたいなんですが zlib ドキュメントよんでみたんですけど 複数ファイルをZIPにするってどうやるんですか? 単一ファイル操作しかないようにみえるんですけど 以下を実行したら、ABCDE, 0 の順番で出力された。 ( )に関係なく、左側から順番に評価された! Java でも同じらしい ary = [ ] def getValue ( str ) puts str; 0 end p ary[ getValue("A") ] = getValue("B") + ( getValue("C") + ( getValue("D") + getValue("E") ) ) irbの設定ファイルである~/.irbrcを任意の場所に任意の名前で設定することってできますか? irb(1)のマニュアルを読む限り設定できなさそうなのですが なにぶん素人なので実は勘違いだということもあり質問しました。 よろしくおねがいします。 https://linux.die.net/man/1/irb >>737 うーん。ログインシェルで export IRBRC=~/LOCAL/irbrc としてるんですけどどうやら反映されていませんね。 irbにおいて > puts ENV['IRBRC'] とやると/home/username/LOCAL/irbrc と返ってくるので場所は読み込まれていると思うんですけどね……。 irb 0.9.6 on Debian 9 railsのform_withって何をループさせてるの? >>738 /home/username/LOCAL/irbrc ここに、ディレクトリ・ファイルを作っていないとか? >>730 です サーバーサイドで複数のファイルをZIPにつめてダウンロードさせたいけど ファイル数が多いから一度にメモリ上におきたくない >>743 そんなもん一旦ファイルに保存してzipコマンド呼んで解凍すればよい それがスクリプト言語やUNIXの正しい使い方だ 他のプロセスに役割を任せることは恥ではない あきらめてその方向で実装してるけど 今度はダウンロードが始まるまでに時間がかかるせいで JSで何かしらプログレスかindicatoorつけなきゃいけないんだけどめちゃめちゃ難しい これ以上はスレチだからいわないけど正直rubyでストリームDLできればこんな苦労しなくてすむのに… >>744 > それがスクリプト言語やUNIXの正しい使い方だ APIやライブラリ呼ぶなってこと? C言語使う意味ないだろ はぁ、zlibってzipなどのファイル形式で使用されてる 圧縮アルゴリズムのライブラリじゃん アルゴリズムだけあったってファイル作れるわけ無いだろ >>747 思想を理解してないみたい APIやライブラリを呼ぶことこそUnix流なんじゃないの? だから、Pythonはその代表格 APIやライブラリを呼ぶのと役割以上の余計なことをしないのは別問題だよ zipコマンドがzlibを使うのは当然だが、例えばインターネットのURLからのダウンロード機能を備えるべきではない アプロダの様にタイムカウンターを付けて時間を稼ぎ、用意できたらリンクを表示するようにすれば良いのでは? >>749 だからどうすればいいか質問したんだけど zlibよめばできるっていうから… ていうか独学で半年 じつむで半年rubyさわったけど ここみてるとまだ初心者でもなかったんだなって 回答のレベルが高すぎるのか不親切なのかわからないけどまったくやり方がわからない Railsの案件なんか手出すんじゃなかったわ JavaやJavascriptは独学でも質問スレやteratailあたりで回答してくれる人が結構いるんだけど… 初心者スレには初心者しかいないんだから、 茶化すだけでちゃんと答えもったやつがいるわけないだろ >>730 完成前に内容を取り出すのは、Ruby の機能じゃない。 YouTube などのライブ配信機能 やって来たデータだけを変換して、すぐに送り返す 質問者は名前欄に、質問したレス番号を入れてくれ gemについての質問です $ gem install xxx --user-install とした場合 ~/.gem/ruby/2.3.0/bin/ に実行可能なファイルが作成されますがこのディレクトリを取得する方法を知りたいです。 $ gem env GEM_PATH などでも一意に絞れず……。 $ gem install xxx --user-install した時のパスを取得する方法ってないんですかね。 >>757 $ ruby -e 'puts Gem.bindir(Gem.user_dir)' >>758 ありがとうございます! 無事、パスが取得できました。 gemコマンドでは取得できないんですね……。 なにか理由あるのでしょうかね。 >>755 やっぱりそうですよねー できないならできないでいいんだけどzlibでできるっていうから調べたのにその後音沙汰ないし できないことをできるっていってソースだしてくれないのが時間だけ無駄になるから一番困る >>756 最終的に a b c 3つのファイルをまとめたZIPを作る際に a だけを追加した瞬間のデータを取り出すというのは プラットフォーム関係ないデータや文字列上の操作の話ですよね それをクライアントに送り消す方法とかになるとサーバーフレームワークやブラウザ依存の話になってくるけど >>760 Kernel.openやIO.popenでコマンドとパイプつなげられる。ファイルがどこかに置いてあるならzipコマンドからSTDOUTに出力させてパイプでつないで受け取ればいいんじゃね? UNIXコマンドよびださなきゃ言語内だけでは何ひとつまともなことができないゴミ言語だってはっきりわかんだね 添付ライブラリにあるzlibとstringioとThread使っても出来そうな気はするがそこまでやる気はない zipの仕様よく知らないけどファイナライズしないで途中の内容確定するのかな > UNIXコマンドよびださなきゃ言語内だけでは何ひとつまともなことができないゴミ言語だってはっきりわかんだね C言語「・・・」 言語の標準機能は必要最小限にしてライブラリを使いましょう派 VS ライブラリなんかいらない、なんでも言語の標準機能にしてしまえ派 俺は前者だな。C言語、JavaScript、Rubyなんかが当てはまる 後者に当てはまる言語はPHPか? 恐ろしいことに、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 以降を推奨します。 >>762 そんなゴミ言語スレをわざわざ覗いてるのは何でなんでしょうねぇ… exec からシェル呼び出してコマンドたたいてしかもパイプでつないでとかライブラリとはよばん つまり>>770 が言いたいことは、libz.soとかのC言語などで使った ライブラリをRubyから呼ぶことができるならば、 Rubyは素晴らしい言語ということです。 ようするにシェルスクリプトで十分ということか ルビーみたいなウンコいらないという結論になるな マジレスすると zipline 使え やりたいことが1行でかける なんで回答に出ないのか謎だわ すべてのライブラリの機能を把握してない Rubyプログラマなんてこの程度やで まあこういうレスがくるんでしょうなぁw ~/.irbrcってどんな感じにしてます? readlineとirb/completionくらいは有効にしてるけど なんかインタラクティブで便利な小関数とかあったら教えてほしいです。 ハッシュ内に、あるキーが存在するかどうかだけを知りたい場合、 配列の要素をキーにして、配列からハッシュを作るのに、 以下のように書いていますが、もっとよい書き方がありますか? ただし、ハッシュの値は使わないので、nil 以外なら何でもよい h = { } %w(a b c).map{ |e| h[e] = true } p h なんかhas_keyとかあんだろ? そんなクソコード書くなよ ただ単に、配列の要素を、ハッシュのキーに登録して、その文字列の存在確認だけをしたい場合に、 ハッシュの値は使わないので、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} ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる