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/ トリップはずして荒らしに来てるのかよ ほんと荒らしうぜー >>139 Windows で、irb は、日本語でバグるので使わない方がよい。 どうしても使いたいなら、WSL・Ubuntu を入れて、Linux 側で使う VSCode の拡張機能、Code Runner を入れたら、 右クリックメニューから、選択したコード、またはファイル全体を実行できる 漏れは、ユーザー環境変数に、UTF-8 を指定している。 ただし、irb はエラーで起動しなくなる。 RUBYOPT --encoding=UTF-8 >>150 テキスト・ファイル処理 >>159 は信じなくていいぞ 毎回、複数回線で自演して嘘を付きまくってる奴だから 当然、Winでirb入れて日本語使ってるけどバグッた事無い というか最近ちょっとパイキチの荒らしが酷すぎないか? 何焦ってるんだパイキチ 次世代言語スレを追出されたのがそんなに悔しいのか? 色々弄ってたらデバッグは押せるようになったんですが 実行結果が何やってもエラーが出てきます; 後は何が足りないんでしょうか Uncaught exception: cannot load such file -- C:/Users/user1/Documents/.vscode/bin/rails C:/Ruby25-x64/bin/rdebug-ide:23:in `load' C:/Ruby25-x64/bin/rdebug-ide:23:in `<main>' C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/ruby-debug-ide-0.6.1/lib/ruby-debug-ide.rb:92:in `debug_load': cannot load such file -- C:/Users/user1/Documents/.vscode/bin/rails (LoadError) from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/ruby-debug-ide-0.6.1/lib/ruby-debug-ide.rb:92:in `debug_program' from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/ruby-debug-ide-0.6.1/bin/rdebug-ide:182:in `<top (required)>' from C:/Ruby25-x64/bin/rdebug-ide:23:in `load' from C:/Ruby25-x64/bin/rdebug-ide:23:in `<main>' VSCode の拡張機能、Code Runner を入れたら、 右クリックメニューから、選択したコード、またはファイル全体を実行できる。 これで実行するのが、最も簡単! 1行ずつデバッグする事など、まずない。 面倒くさいだけ p, pp, tap でインスタンスの中身が見れる。 puts, print で、インスタンスを文字列化できる。 あちこちに、p, pp を付けておけばよい それと、gem は、最初に、bundler だけをインストールする。 シェル(コマンドプロンプト・PowerShell)で、 gem install bundler それ以後は必ず、bundlerを使って、gemをインストールする事! Gemfile という雛形ファイルの中に、 gem "nokogiri" gem "selenium-webdriver" みたいに、使いそうなgem名を、一杯書いておく。 rack-test, rspec, selenium-webdriver, nokogiri, mechanize, sqlite3 まあ、rails を入れれば、依存関係で使っているgemも、同時にインストールされる。 各gemは、C:\Ruby25-x64 以下のフォルダにインストールされる そうそう、荒らしが一杯わいてきてるけど、無視して >C:/Users/user1/Documents/.vscode/bin/rails ひとまず、ruby-debug-ide デバッガーなど使わないでよい。 漏れは、VSCode のRuby の拡張機能は、エラーが出るから使っていない まず、Documents の下に、適当な作業フォルダを作って、 C:/Users/user1/Documents/Ruby/proj01 gem install bundler それ以後は必ず、bundlerを使って、使うgemをインストールする それで、テキスト・ファイル・配列操作などの、基礎的なプログラミングを学ぶ そうそう、Web系では、すべてのファイルは、BOMなしUTF-8 で統一すること! ただし、Explorer では文字列検索できなくなるので、 WSL・Ubuntu でgrep を使うか、 Ruby・PowerShell で、特定のフォルダ以下を再帰的に、 文字列検索できるようなプログラムを書く >>164 ありがとうございます gem install bundlerってVScode内のターミナルで実行でいいんですよね? やりました。文字打ったら関数に色が付くようになりました。 https://gyazo.com/20845455564ff726435b992e68820b75 右クリックcode実行で実行は出来るようになりました!おかげさまで。 ただ、Helloworldと一回目は実行したんですけど、それを消して TESTと打ってもう一度実行したらTESTと表示されずに前回の実行結果(Helloworld)が表示されるのですが何故でしょうか? VScodeを再起動したら新しい実行結果が表示されましたがプログラムを書き換えるたびに再起動してたじゃあまりに不便すぎます; VSCode のターミナルを、コマンドプロンプトから、PowerShell に変える それと、cd, ls など、基本的なLinux コマンドを覚えた方がよい。 PowerShell でも使えるから シェルでは、cd で、今着目するカレントフォルダを変える。 コマンドは相対パスなら、そのフォルダから実行される 絶対パスなら関係ないけど、 内部で呼ばれるプログラムが、カレントフォルダを意識しているかも知れない >>166 >TESTと打ってもう一度実行したら 「Ctrl + S」でファイルをセーブしてから、実行すれば? VSCode の拡張機能、Code Runner は便利。 選択したコードだけも実行できるから、irb を使わなくてよい クッソ参考になる情報産休 環境構築が面倒だからCloud9使ってるけどIDEがしょぼいからVS codeからCloud9にアクセスできるプラグイン使おうかなと思っとる >>167 ありがとうございます セーブしたら新しいコードも実行できるようになりました…! 当面はこれで大丈夫そうです 実行結果PowerShellに変えようと想ったんですが設定を書き換える必要があるみたいで 敷居高そうなのでおいおいやってみます。 自分なりにもググってるんですがqitaで少ししか引っかからなくて 日本語で解説してるサイトあまりないんですね… >>170 ついでにCloud9をリモートで接続して操作するのもやってここに報告して >>161 pythonに押し付けるなよ、ruby産のキチガイだろうが。 pythonやjsのスレでもいきなりrubyのコード出してきたり、いきなりrubyとrubyの本を薦めだしてきたりして暴れまわってるrubyキチガイ。 Railsチュートリアルも関係ないスレでいきなり勧めるのはどうかと思うね Linuxにも色々種類があることを知って衝撃受けました。Rubyを使う上でオススメのLinuxってあるんですか? ない。どれでも一緒 Linuxなんて設定とバージョンが細かく違うものが たくさんあるだけ rails体系的に学べる書籍やサイトでオススメありますか? >>175 そうなんですか!最近プログラミングを始めたばかりなんですが、WindowsとRubyは相性が悪いと聞いたので適当なLinuxを導入してみようと思います。ありがとうございます 今ならLinuxは、CentOSかUbuntuの二択になるだろう。 サーバーよりならCentOS、コンシューマーよりならUbuntuかな? サーバーよりならUbuntu・Debian https://news.mynavi.jp/article/20180404-610038/ 業務システムなら、有料サポートがあるRed Hat そのRed Hatに憧れるがお金がないものが使うのがCentOS プログラム初心者(というかパソコン初心者っぽい)にCentOSだのDebianだのは酷だろ 普通にqiitaかどっかのスクショだらけの記事読みながらwindowsにruby入れた方がマシ 日本語云々は後から考えればよい やっぱりRubyスレであばれてたのもPyキチか こいつ複数回線つかって自演でマッチポンプしようとするからうざいんだよ Pythonスレもこいつが 度々荒らしてきてて 誰か何とかしてくれない? こいつ次世代言語スレもワッチョイでたててくそスレ増やしやがったんだよ というか複数回線の時点でワッチョイの意味無い Windows で、Rails を使っている動画も、YouTube にある。 初心者は、progate で文法を覚えるのが先じゃないの? Rails の前に、シンプルサーバー・Sinatra・RSpec などで、練習した方がよいかも >>170 コマンドパレット(Ctrl+Shift+P)で「terminal default」と入力すれば、既定のシェルを設定できる JSON で、 "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" >>157 ほんそれ ブラウザに拒否されて見れんかったわ マッツがプログラミング初心者向けに5分くらいちょっとしたこと喋るだけの動画だぞ 櫛形構造ってのは if hoge fuga elsif piyo hage else hagehage end の左側が髪をとかす櫛みたいに見えるからなんだとか 始祖はその哀れなIT奴隷の手に赤い宝石で作られた美しい櫛を握らせ、告げた。「この櫛でその紐を梳かしなさい。」 言われるままに、その手の施しようのない程に絡み合った紐にIT奴隷が櫛を通すと、 たちまちその紐は魔法のように解け、IT奴隷達は死の行進から解放された。 Ruby作るのとRails作るのどっちが大変ですか? また尊敬すべきなにはRubyを作った人とRailsを作った人のどちらですか? 世界ではrubyなど思考の外だよ 尊敬もクソもない そもそも使われていない >>191 なんで使われていない言語のスレを覗いてるんですかねぇ… >>182 ←コイツが色んなスレで荒らし回ってるから興味ない人までここに注目してしまう説 vagrantfileってruby? node.vm.box = "CentOS-7" node.vm.network :public_network, ip: "192.168.111.11", bridge: "wifi" ↑node.vm.networkって変数?関数?イコールかカッコ省略してるの? :public_network, ip: "192.168.111.11", bridge: "wifi"って引数なの? つかこれ糖衣構文なの?愚直に書くとどうなるの? node.vm.network(:public_network, :ip => "192.168.111.11", :bridge => "wifi") シンボルとかキーワード引数とか、かっこなしメソッド呼び出しとか、イカれた文法が多いよな。 だからDSLが定義しやすいとか、もうバカかと。 199が長年このスレに粘着している所からみて Rybuが便利って事の証明だな HTML でよく使う、でたらめの単語を並べる、Lorem Ipsum を使おうと、Faker gem を入れたけど、 出力に、5秒もかかる なんで、こんなに遅い? CPU-i3, Windows10, VSCode ライブラリにあるプロファイラーを使えよ これでどこが遅いかすぐわかるだろ rubocopでは引数無しかDSLかputsとかよく使うの以外の()の省略を禁じてたね 別にカッコ省略は強制じゃないからね 状況に応じてカッコをつけたり外したり、 そんな可読性というか美的センスが求められる たとえば >>196 であれば、記述が一行に収まらなくなるほど 長くなれば、カッコをつけたほうがカッコいい node.vm.network( :public_network, ip: "192.168.111.11", bridge: "wifi" ) こうしておけば、保守性の向上を目的として各行にコメントを付けられる >>206 言語をそのままDSLとして流用しようというのがちょっとイカれてると思うな。 >>208 それは括弧が必須だろ。 文法における改行の扱いがいいかげんなのはダメなところ。 >>209 イカれてるってのは、Rubyに対する最高の賛辞だ なにせRubyは関数型(Lisp)をベースとして 手続き型(Perl)とオブジェクト指向(Smalltalk)を融合するという、 イカれた設計思想で誕生したんだから http://peace.2ch.net/test/read.cgi/tech/1409526637/857/ で、その当時、XML設定ファイル地獄にあえいでいた Java Webアプリ開発者が、内部DSLを多用するイカした Rails フレームワークに流れ込んで、Rubyは全世界で知られるようになった rubyはじめようとして本屋いったらrubyが数冊あったはずのがpythonに 変わってたのでpython買ってきた >>214 今すぐ返品するんだ 人工知能でも作る気がないならRubyを勧める どこでもそうだけどスレタイと別の言語の話してるヤツはスルーするに限る >>212 文の区切りが書き方やバージョンによって変わるくらいなら、セミコロンくらい喜んで書く。 >>217 どのバージョンでどういう風に変わったの? >>209 内部DSLだとコストが低いから何かと便利だぞ >>219 そうか? 内部DSLなんかやりだしたら開発者がマスターベーションを始めて無駄に工数を浪費するだけだよ 外部DSLだと「面倒臭い」という意識が働くから結果的に安くつく >>217 >>218 と同じく、どう変わったのかな? 自分は1.6系がリリースされた直後の1999年から使っているけど、 Rubyで「文の区切りや書き方がバージョンによって変わる」なんて 経験が無いから、それが事実なら驚天動地の新発見になる すごく興味があるから、ホラやデマカセでなければ、ぜひ教えてください >>220 Rubyの内部DSLを設定ファイルとして採用する著名な構成管理ツールには、 >>196 の Vagrant だけでなく、Chef や Puppet もあるんだけど、 こうしたツール作者に正面から喧嘩を売れる男の子ってカッコいいですね(棒 実際プログラミングの能力って個人差があるから、あまりにも他人より努力しなきゃいけないようなら そこを乗り越えても最終的には不幸な人生になる可能性が高いよ 本当に辛いなら我慢しないほうがいい 改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9/7 改訂版が出たよ。 こちらの方が、Rails チュートリアルよりも簡単かも カッコは、VSCode の、Bracket Pair Colorizer で、 対応するカッコをカラフルに表示できるし、 開始・終了カッコを示す、ガイドラインも付く f ( ) ただ、関数名とカッコの間に、空白を入れると、文法エラーになる。 昔はエラーの理由がわからず、これでかなり苦しんだ >>218 >>221 ま、細かいとこだよ。 以前はエラーになってたのがいけるようになったんだっけかな。 >>232 いやいや、そんな遠慮なさらずに、変わったところを教えてくださいよ だって >>217 じゃ天下取ったみたいな口調で変わったと断言したのですから、 まさか今頃になって忘れちゃったなんて言わないですよね? すごく興味があるから、ホラやデマカセでなければ、ぜひ教えてください >>231 >ただ、関数名とカッコの間に、空白を入れると、文法エラーになる。 >昔はエラーの理由がわからず、これでかなり苦しんだ それ、Bracket Pair Colorizer のバグですね >>233 いちいち覚えてるわけないだろ。 目的が煽りでないならちょっと調べてもいいけど、人にものをたずねる態度じゃないな。w >>235 え、わざわざ調べなければならないほど記憶が曖昧なのに、>>217 じゃ: >> 文の区切りが書き方やバージョンによって変わるくらいなら、セミコロンくらい喜んで書く。 とカキコしちゃたのですか? どうやら、ID:j4wJNE6l にとって議論に勝ちさえすれば真実はどうでもいいらしい >>217 のようなホラやデマカセの類を吐いても平然としていられる 日本人の私には、とうてい信じられない行動ですね def foo ( x ) puts x; end foo ( 1 ) あれれ? 関数名の後ろに、空白が入っていても、正常に動く 解釈があいまいになる場合に、エラーになるのかな? >>237 それは括弧が引数の括弧として解釈されてないだけだから puts (1+2) は puts((1+2))と解釈されている 次の例からも明らか puts (1+2).succ #=> 4 puts(1+2).succ #=> NoMethodError: undefined method `succ' for nil:NilClass # putsの戻り値nilにsuccを呼び出そうとしているので >>235 お前バカか? 目的が煽りでないならとかじゃなくて、「ありもしないバージョンによる改行の扱いの変更をでっちあげて Rubyを貶めたいだけなんだろ?」って堂々と疑われてることにも気づかないのかよ そこで「いちいち覚えてるわけないだろ」なんて疑いを確信に変えるだけじゃん バカはおまえらだ。 そういうことなら、説得する義理なんかないから、どうでもすきに思え。 とにかく事実として存在したんで。 Rubyはいいかげんなところが多いが、改行の扱いもそうだった。 ま、それでもいいとも思う。 それで問題ないところで使うし。 > そういうことなら、説得する義理なんかないから、どうでもすきに思え。 ここに及んでまだ具体例を出せないってことは、嘘八百ってことをついに認めるに至る、ってことね 1.9辺りで改行の扱い変更されてなかったっけ? http://www.rubyist.net/ ~matz/slides/rc2003/mgp00021.html >>243 2.0のような気がしてたけど、1.9だったか。 そういえば、オレは1.9はスキップしたんだった。 >>231 "ただ、関数名とカッコの間に、空白を入れると、文法エラーになる。" これマジ?気付かなかったな 文法チェック入れてないからか? そりゃ当たり前でしょ hoge (1, 2) ってあったら(1, 2)の結果をhogeに与えようとするからsyntaxerror 引数無しのメソッドでも hoge () ってすればまず()の結果であるnilをhogeに与えてhoge(nil)になるからargumenterror なるほどね VB/VBAもそんなのあったな やっぱりrubyは糞 文法の一貫性が損なわれるのは括弧省略の大きな欠点だよね 言語の驚きを最大化するには良い方法 たしか、Perl5もそう。 スクリプト系言語はしかたないね。 Rubyの文法を理解できなかったって素直に言えよ 自演してないで 空白の個数で意味が変わるような文法は糞だが、空白の有無ならまぁ許容できる。 >>248 文法の一貫性を保ったまま、括弧が省略できる言語がある。 括弧が省略と言うか、そもそも括弧がない。 その言語とはシェルスクリプトだ This is a pen がそのまま実行可能にできる言語はシェルスクリプトだけ >>252 > This is a pen がそのまま実行可能にできる言語 その式はSmalltalkでもリーガルだし しかるべくクラスやメソッドを定義すれば実行可能にできるよねw https://ideone.com/61xGq2 >This is a pen がそのまま実行可能にできる言語 パーサ組んで新言語作ればいいだけ なお実用性があるかどうかは別問題 そういや任天堂のruby謎解きパズルみたいなので what is the answer みたいな感じで実行すると答えになるってのが昔あったな 文の途中で改行するときも、あいまいに解釈されない場所で、改行しないといけない。 カンマ前置スタイルで、改行できるかな? a, b, c a ,b ,c 言語の文法を理解できなかった ↓ 文法に一貫性が無いのが原因だ 自演してまでこんな酷い言い訳を言いたいのか? 最近はKotlinとかも改行に意味を持たせるようになってきてるのにね セミコロン主義者の主張はわからん ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる