Ruby 初心者スレッド Part 64
レス数が900を超えています。1000を超えると表示できなくなるよ。
プログラミング言語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/ 30歳無職なんだけど俺にもプログラミングできるかな?
https://www.loserblog.net/ 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 を入れれば、入力補完できるのかね? Windows10・WSL の、Ubuntu が、日本語でも入出力できるのは、
コマンドプロンプトの画面と同じものを使っているから
でも、irb みたいに、Linux 側のソースコードで、
独自にWindows 向けにコンパイルしたものは、半角英数字しか動かない。
日本語など、他の言語はバグル
pry も、irb を使っているのだっけ?
漏れの希望としては、Windows10・WSL の、Ubuntu みたいに、
コマンドプロンプトの画面と同じものを使って、作ってほしい
そうそう、最初にgem で、パッケージマネージャーのBundler を入れる。
それ以後は、gem を使わず、Bundler で他のgem をインストールすればよい なんじゃそりゃ
windowsでマルチバイト文字が文字化けするのはreadlineの所為
pryとirbはソースレベルで全く別物 こいつ>>810>>811、Ruby関係ないスレで脈絡なく自分語りとRubyの宣伝しだしたり、他言語専用質問スレでRubyで回答してからRubyの宣伝しだしたり非常にウザいんだが。
このスレから出てこないようにしとけよ。 そのreadline を使っていると、Windows で日本語でバグるのだろう。
Windows で半角英数字以外には、対応していないのだろう
Windows10・WSL の、Ubuntu では、
メニューなどもコマンドプロンプトの画面と、全く同じだから、日本語でもバグらない localhostにssh接続して
好きなターミナルエミュレータつかえば vs codeからvimに乗り換えようと思う。マウス捨てればいいんだろ? WinもMacOSも消してLinuxをCUIだけで入れたらいいよ windowsで
comポートの一覧出す方法教えてください >>820
require 'win32ole'
colItems = WIN32OLE.connect('winmgmts://./root\CIMV2').ExecQuery("Select * from Win32_PNPEntity Where (Name like '%(COM%)')" )
colItems.each{|obj| puts obj.Caption } ぶっちゃけvlmがvscodeに勝ってるところなんてあるか? >>824
vimはRuby界における公式エディタであるemacsの仇敵だし、vscodeはMSという大悪魔に魂を売ることになる
目糞鼻糞 vimからRuby呼び出してスクリプトによる編集処理してもいいんじゃない? >>825
Haskellerの癖にvi使いになった自分からすると、ぶっちゃけ編集能力の割に軽いってのがある。
編集能力単体ならemasやvscoreの方があるかも知れないが、軽さとのコスパはvi。
ちょっと編集したい程度ならviの方が速い。 rubyってちょっと編集するくらいでアプリ作れちゃうの? >>828
MS Accessの劣化版みたいなアプリならね
それ以上のことをするなら要件相応の手間は必要 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 を使えばよい >>830
世界最大のソフトウェア開発プラットフォームで最も人気なプログラミング言語は何なのか?
https://gigazine.net/news/20181116-top-programming-languages-2018/
さすがRuby!貫禄のランクイン!!
Railsで作られたサービスということを差し引いてもすごい! 改訂2版 Ruby逆引きハンドブック、2018/8/28
株式会社マネーフォワード
今読んでいるけど、この本もすごい!
著者は、初版の「るびきち」から、上場企業のマネーフォワードの9人に変わったけど、
何人か、Rubyコミッターもいる
この会社もRubyでは、Cookpad 並みにすごいかも 2015年まで5位の座を占めていたRubyは
2018年になると10位へ転落し、
トップ10から陥落しかけている状況。 rubyは落ち目だな
今のうちにPythonに乗り換えとくわ PythonはもうAIが機械学習で自動コーディングしてくれるそうだ むかしPerlで書いてたような書捨てスクリプトはRubyのが楽だし
適材適所 pycharm-ceの出来がいいから、ついpythonで書いちゃうな
rubymineもceバージョン出してくれんかな(´・ω・`) atom使ってる人いる?
何故atomを使うのか聞きたい Railsで世界最高の開発者向けサービスを作って今はMSの社員としてMSから高給を貰っている方々によって開発されたエディタだからな
これはもうRubyがAtomを生み出したと言っても過言ではない VSCodeは元々Atomからフォークされたものであるから、VSCodeの起源もまたRubyにあると言っても過言ではない MSは俺が出した金から社員に給料を出しているわけだから、
俺の先祖がAtomを生み出したと言っても過言ではない Railsの超初心者の質問なのですが、例外をキャッチしたらエラー画面を出さずにエラーメッセージをビューに送る処理を書きたいのですがうまく行きません。
コードです。
https://ideone.com/ubaMxO ideoneを使ってるだけで初心者って臭いがするなw >>845
render 使わないと何も返さないよ >>847
その答えは失格だなぁw
正しい答えは「例外をキャッチしたらエラー画面を出さずにエラーメッセージをビューに送る処理を書いたらだめ」だ >>848
あんまりよくわからないです
インスタンス変数はビューから参照出来るんですよね?
それとも例外の処理書き間違えていますかね? >>849
だから、例外は放っておけばいいの
余計なことしなくていい >>850
ではエラーメッセージはどうやってビューに渡すんですか? 例外が発生したらそのままプログラムを終了させてしまえと主張する気違いはたまに発生する コンソールアプリならアリかな。
それ以外は原則ナシだけども。 なんかバカな質問してました
手段忘れたけど自己解決しました Rails の質問は、web制作管理板の方へ書き込んでください >>851
エラーメッセージやなくて例外やろ?
例外は渡さなくていいって言ってるの
rescueもしなくていいって言ってんの
なんのためにRails使ってるんだよ?
そんなクソ面倒なことRailsにやらせろよ >>852
> 例外が発生したらそのままプログラムを終了させてしまえと主張する気違いはたまに発生する
そいつはバカだな。Railsは例外発生してもプログラム終了しないからな。さすがやで 掲示板実装できた
これで初心者から初心者にステップアップだ おめでとう
おれはまだRailsすらinstallできてない 漏れは、Windows10 で、MSYS2 コンパイラを入れていないから、
websocket のバイナリが無いから、Rails は使えない。
どこかに、websocket のバイナリは無いの?
https://www.mirrorcommunications.com/blog/how-to-install-ruby-on-rails-on-windows-10-with-postgresql
2017/04/22
Windows10, WSL
Ruby 2.4.1
Rails 5.0.1
動画もある
まあ、Rails の話は、webprog 板へ書き込んで! rails+windowsはツラすぎるから
WSLかVagrant使え ツラ過ぎるというより意味がないんだよ
どうせ運用環境はLinuxなんだからWinでの苦労なんて便所の落書き以下の意味すらない >>862
これマジ?
既にエディタの環境構築でひと苦労なのに、Linuxの構築もしないといけないのか……
Windowserは不遇だな…… >>864
だから言ったのに… >>686-687
信者も相手のOS確認せずに布教して投げっぱにするなよ。
10人に石投げたら8〜9人がWindowsなんやぞ。
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使いに人権はありません cloud9使えばいいじゃん
端末のOSなど一切関係ないから
ブラウザさえ使えればいいからクソノートでもキーボードさえついていればいい Ruby Mineの調子が悪いのでエディタ・IDEを変えようと思うのですがオススメありますか?
vimキーバインドにできてスペルチェックあって自動でend挿入出来るのがいいです >>867
Ruby教の教義的にはspacemacs
世間一般では圧倒的にVSCode 色々使ったけどやっぱvs code最強だわ
宗教上の理由で使えない奴らかわいそうw VSCodeはカーソル移動でホームポジションから手を離さないといけないのがなー
Mac使えばいいんだろうけど、そのためだけにMacってのも VimやEmacsのキーバインド使えばいいでしょ
コマンド入力による操作体系が強力だから少なくともRubyMineに比べたらキーボード中心で使いやすいし 別にAutoHotkeyでキーバインド変更しているから無問題 MacのキーバインドをWindowsやLinuxでも採用すればよかっただけなのにな
なんでわざわざ変えたんだろう >>873
歴史的に見ればMacの方が後だよ。
Macの今のキーバインドが出来たのは2000年ごろだ >>874
1984 Macintosh
1985 Windows
1991 Linux >>878
1984年ごろのMacのキーバインドはホント糞だったよ OSXからだよ。Unix系の素晴らしいキーバインドを取り入れたのは
Unixは最初から素晴らしかったからね UNIXじゃなくてEmacsだろ
今やUNIXエディタ戦争はVimに完敗し、SublimeやAtomでMacの独壇場だったモダンエディタ系も今やMSの天下
RailsがMacにプリインストールされてイケイケだった頃のRubyが懐かしいな viって使わないとコマンド忘れちゃうね
仕方ないのでnano使ってる 教本に書いてあるクラス定義の例題プログラムが全然理解できない……つらい…… プログラミングには向き不向きがあるから諦めることも大事
向いてない奴が頑張っても生涯クソブラック企業で奴隷だぞ Ruby でオブジェクト指向を勉強するのが、一番よい
Rubyでは、あらゆるものがObject だから、Class 自体もObject
self が、Classからnew したインスタンスを指すのが普通だが、
特異メソッドの文脈では、Class自信を指す
どの文脈なのか注意する。
Classの地の文では、selfはClassだから、ここでは特異メソッドになる。
インスタンスの文脈にならない
@インスタンス変数と、@@クラス変数の他に、@クラスインスタンス変数という変態もある。
これは、selfがClassの文脈で、@を使った場合に起こる。
この場合、クラス自身のインスタンス変数となり、サブクラスへ継承されない
たのしいRuby 第5版、2016
を読んだら、以下の2冊を読むとよい
Effective Ruby、2015
改訂2版 Ruby逆引きハンドブック、2018/8/28 > Rubyでは、あらゆるものがObject だから
あれ?Rubyってメソッドはオブジェクトだっけ?
JavaScriptはメソッドがオブジェクトだから
function foo() {}
console.log(foo.name)
とかできるけど、Rubyって無理だったよね? Rubyではブロック自体や単独のメソッド参照はオブジェクトではないよ
第一級関数ではない block、proc、lamdaを華麗に使い分けるRuby!さすが!
全部functionでやるjavascriptは汚い!さすがjavascriptきたない! 処理は、わざと第一級関数・オブジェクトにしなかった
オブジェクトはレシーバー・主体で、メソッドはそれに対する操作。
この区別を厳格にした
そして、メソッドを持ち運ぶ場合だけ、block, proc, lamda に変換する。
基本は、クロージャの実装ある、block
JavaScript では、関数オブジェクトとは何なのか?
抽象的すぎて、よくわからない >>890
この池沼にも理解できるように意図して設計したとしたらRubyは凄いわ
まあRubyの obj.method がメソッドオブジェクトを返さない実際の理由は、
括弧を省略することで属性のように見えるというアイデアに固執したせいなんだけど ローカル変数・無引数メソッドの、区別が難しい!
無引数メソッドに代入すると、新しいローカル変数が作られて、メソッドが隠される。
ただし、ローカル変数が見えないスコープでは、メソッドが参照されるが、
f( ) のように、( )を付けるとメソッドが呼ばれる
def f( ) "method" end
p f #=> "method"
f = "var"
p f #=> "var"
f = "var"
p f( ) #=> "method" >>889
アロー関数知らんのか
RubyにもUnboundMethodがあることはある。 >>894
知ってるが。
>>889に(function(){}).bind(this)のシンタクティックシュガーを取り立てて書かなきゃならない意味とは?
マウント取りたかったのかな? メソッドをオブジェクト化することはできるけど、メソッド自体は違うね 根本的な思想が違うんだよ
obj.method(arg)
JavaScript : obj から method プロパティの値を取り出し、その値を関数オブジェクトと見做して呼び出す。
Ruby : obj に「method という名前のメソッドを呼び出せ」というメッセージを送る。それにどう反応するかは obj の勝手である。
ただし、Rubyは内部的にはメソッドがオブジェクトとして実装されてたりしてごっちゃになってるので一貫性に欠ける無茶苦茶な仕様になってる。 >>898
(x => x * 2)(3)
//=> 6 >>899
別に無茶苦茶ではないけど
何を持って無茶苦茶と言ってるんだろう?
俺様の感性に合わないこと? >>900
なんで俺に言うんだよ無茶苦茶って言ってる>>898に言え とりあえず、Rubyは全てがオブジェクトだという嘘をつくのはやめろって言う話 知らんよ。なぜかRuby厨の自慢になってるんだよ。
「全てがオブジェクト(嘘)」 レス数が900を超えています。1000を超えると表示できなくなるよ。