- 1 名前:デフォルトの名無しさん [2020/01/04(土) 01:15:34.30 ID:X7t3Qsuc0.net]
- プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。 Ruby on Rails については、WEBプログラミング板で 前スレ Ruby 初心者スレッド Part 65 https://mevius.5ch.net/test/read.cgi/tech/1545421414/ るりまサーチ (リファレンス検索) rurema.clear-code.com/ Rubyist Magazine - るびま jp.rubyist.net/magazine/ 逆引きRuby www.namaraii.com/rubytips/ Ruby コミュニティ公式 https://www.ruby-lang.org/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 103 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 09:50:31.20 ID:mkyLzVly0.net]
- VSCodeの開発言語がVSCodeにとっては最重要言語でしょ
そうじゃない言語は傍流だから切られる 使えますよとしてるのはVSCodeに囲い込むための方便 ゆくゆくはそんな傍流には消えてほしい……とするのが普通の策略
- 104 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 10:10:14.80 ID:uoDMOHZtM.net]
- MSはVSCodeをTypeScriptで書くことによって動的型に止めを刺したよね
ついでにMatzの愛するEmacsも完全にパイを奪われて死んだし、そんな因縁のエディタでRuby書くとか恥知らずもいいとこ
- 105 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 10:56:05.26 ID:1i745hKir.net]
- Emacsが死んだとかどの世界の住人ですか
- 106 名前:デフォルトの名無しさん (ワッチョイ df33-TZXF) mailto:sage [2020/01/22(水) 22:50:36 ID:rp7FIzPH0.net]
- テキスト編集能力よりも、アプリケーション開発能力を優先すると、IDEが勝つ。
ターミナル経由だと、IDEは動作しようがないので、テキストエディタが勝つ。
- 107 名前:デフォルトの名無しさん (ワッチョイ 5f2c-++Vr) [2020/01/22(水) 23:10:32 ID:fyGKoId60.net]
- require 'webrick'
srv = WEBrick::HTTPServer.new( { :BindAddress => '127.0.0.1', :Port => 20080 } ) srv.mount( '/', WEBrick::HTTPServlet::FileHandler, './' ) Signal.trap( :INT ){ srv.shutdown } # Ctrl+C で終了 srv.start Windows 10, Ruby 2.5 で、 カ
- 108 名前:激塔gフォルダに、index.htm と画像ファイル、abc.jpq を置いて、
WEBrick のServer/Servlet を起動して、ブラウザで見ると、 HTTP 304 で画像を、ローカルPC のキャッシュから取得するので、見えない! 1-liner で、 ruby -run -e httpd . -p 20080 としても見えないが、ポート番号を10080 に変えると見える! 常に見えるようにするには、どうすればよい? [] - [ここ壊れてます]
- 109 名前:デフォルトの名無しさん (オッペケ Sr7b-3C30) mailto:sage [2020/01/22(水) 23:15:37 ID:1i745hKir.net]
- jpqだからじゃねえの
- 110 名前:106 mailto:sage [2020/01/23(木) 00:02:00.95 ID:31WWjqFP0.net]
- >>106
タイプミスを修正します! >abc.jpq abc.jpg
- 111 名前:デフォルトの名無しさん mailto:sage [2020/01/23(木) 00:38:32.32 ID:9sgUs0f40.net]
- 304が返される状態にもかかわらず
画像が見えないなら基本的にはクライアント側の問題 まずはHTTPリクエストを確認しろ
- 112 名前:106 mailto:sage [2020/01/23(木) 00:49:20.77 ID:31WWjqFP0.net]
- Windows 10 のローカルPC は、アクセス権限が厳しいから、
サーバーを立てても、ブラウザのローカルキャッシュを見れないのかも?
- 113 名前:デフォルトの名無しさん [2020/01/23(木) 05:02:20.43 ID:DWwoifTV0.net]
- Web開発でRubyが下火になってきてるらしいけど、一体何に移ってるの?
node.js + Reactみたいに単純な構造のものを組み合わせるのが流行ってるわけ?
- 114 名前:デフォルトの名無しさん (アウアウエー Sa1f-9ipO) mailto:sage [2020/01/23(木) 08:38:09 ID:WRgaKbBya.net]
- >>111
そうだよ nodeやgoへ移ってる
- 115 名前:デフォルトの名無しさん (アウアウエー Sa1f-9ipO) mailto:sage [2020/01/23(木) 08:54:27 ID:WRgaKbBya.net]
- 途中書き込み失礼
ちなみにRubyの需要が減ってるかというとそんなことはなくて、むしろ伸びてる。 じゃあなんでnodeやgoへ移ってるように見えるかというと、移行してるのは情報発信に積極的な意識高い層が中心だから。 彼らは主に(例えばCookpadのような)自社サービスで働いていて、事例としても目立ちやすいというわけ。 Rubyはプログラミングスクールで人気があるため低スキルエンジニアが供給過剰状態で、PHPの代替として低単価案件での採用が増えている。 それに伴い、意識の高い人は値下げ競争から離脱しつつあるの。
- 116 名前:106 mailto:sage [2020/01/23(木) 09:48:33.02 ID:31WWjqFP0.net]
- VSCode の拡張機能、Live Server で見たら、画像も見れる!
WEBrick のServer/Servlet と何が違うのかな?
- 117 名前:デフォルトの名無しさん (オイコラミネオ MMdb-TZXF) mailto:sage [2020/01/23(木) 19:32:54 ID:vOsDgWR6M.net]
- キャッシュコントロールヘッダじゃないの?
知らんけど。
- 118 名前:106 (ワッチョイ 5f2c-++Vr) mailto:sage [2020/01/24(金) 03:55:37 ID:L98ica9l0.net]
- ブラウザのF12 開発者ツールで指定できる!
Chrome の開発者ツールのDisable cache で、画像が表示された! Edge では、開発者ツールのネットワークの、 常にサーバーから更新するとか、キャッシュのクリアとかかな? HTTP リクエスト/レスポンスのCache-Control ヘッダーも、関係ありそう
- 119 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 12:41:39.57 ID:yedZaC1h0.net]
- プライベートブラウジング使え
ブラウザ閉じればキャッシュやクッキーが消えて便利だぞ
- 120 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 12:43:50.75 ID:2IgFvbdV0.net]
- HTTPリクエストを確認すればわかること
頼むからHTTPの基礎くらいは学んでくれ
- 121 名前:106 [2020/01/25(土) 00:10:52.07 ID:mLh1vP4R0.net]
- Windows 10 のローカルPC 上の、WEBrick のServer/Servlet で、
ブラウザでキャッシュ有りの時、画像が表示されないのは、なぜなのか? 結局、その理由が分からないまま 出来れば、キャッシュ有りで、画像が表示されてほしい
- 122 名前:デフォルトの名無しさん (ワッチョイ a7b0-Gc13) mailto:sage [2020/01/25(土) 03:58:37 ID:PRJ1sUmm0.net]
- 死ねばいい
- 123 名前:デフォルトの名無しさん (ワッチョイ a763-gk0v) [2020/01/25(土) 15:52:45 ID:WZ3Oswhu0.net]
- rubyXLでエクセルいじってるが
印刷範囲を設定したいときは、どのようにすればよいのでしょうか? いろいろ探しても見当たらず・・
- 124 名前:デフォルトの名無しさん (ワッチョイ 5fa5-V1vN) mailto:sage [2020/01/27(月) 17:12:09 ID:PTqFE7Wm0.net]
- ruby.hに#define memcpy(p1,p2,n) ruby_nonempty_memcpy(p1, p2, n)ってあるけど、
c++でstd::memcpyって使ってたらおかしなことにならんか?
- 125 名前:デフォルトの名無しさん (ワイーワ2 FF1f-FkkX) [2020/01/27(月) 17:24:08 ID:Xu7tzl7qF.net]
- srcとdstの範囲が重なってるんじゃね
- 126 名前:デフォルトの名無しさん (ワッチョイ 5fa5-V1vN) mailto:sage [2020/01/27(月) 18:36:35 ID:PTqFE7Wm0.net]
- ちょっと試したらおかしなことにならんかった
- 127 名前:デフォルトの名無しさん (ワッチョイ 7fda-LQfQ) mailto:sage [2020/01/28(火) 12:37:06 ID:2llLtotp0.net]
- Rubyってイベントハンドラを複数登録するタイプのクラスってどう書くのが一般的な流儀ですか?
クラス継承したり特異メソッド使ったりといった書き方もありますが あまり異端過ぎなければlambdaを使うのが楽そうかなと思ってます # ディレクトリを巡回してファイルを探すクラス finder = FileFinder.new finder.on_dir_enter = lambda{|folder| puts "entered: #{folder}" } finder.on_dir_leave = lambda{|folder| puts "left: #{folder}" } finder.on_file_found = lambda{|file| puts "found: #{file}" } finder.start("./")
- 128 名前:デフォルトの名無しさん (ワッチョイ 5fd7-hH+D) [2020/01/28(火) 16:48:55 ID:viNuqCMy0.net]
- >>125
finder.on_dir_enter {|folder| puts "entered: #{folder}" } finder.on_dir_leave {|folder| puts "left: #{folder}" } finder.on_file_found {|file| puts "found: #{file}" } または finder.add_handlers( :dir_enter => proc { |folder| puts "entered: #{folder}" }, :dir_leave => proc {|folder| puts "left: #{folder}" }, :file_found => proc {|file| puts "found: #{file}" } ) イベントハンドラ系のAPI設計に関しては、 Ruby/Tk や Ruby-GNOME 等の GUI ツールキットを参考に
- 129 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 17:18:24.30 ID:nzUBCcWX0.net]
- 特に理由がなければブロック渡しが一般的
簡単なEvent Emitterを自作するかライブラリ使うか finder.on(:dir_enter) {|folder| puts "entered: #{folder}" } ライブラリでメジャーなのはwisperかActiveSupport::Notifications https://github.com/krisleech/wisper
- 130 名前:デフォルトの名無しさん (ワッチョイ ea2c-KoMo) mailto:sage [2020/01/29(水) 09:22:00 ID:AYOCyHQA0.net]
- >>121
rubyXL での印刷範囲の設定など https://qiita.com/cog1t0/items/85bf12f07b78e66802ff 「rubyxl 印刷」で検索!
- 131 名前:デフォルトの名無しさん (ワッチョイ ea2c-KoMo) [2020/01/29(水) 13:41:46 ID:AYOCyHQA0.net]
- Windows で、Ruby 2.5 にバージョンアップしたら、
SQLite3 のコンパイルが必要になった! でも漏れは、1, 2GB とサイズが大きい、MSYS2 を入れていないから、 win32ole モジュールで、ADODB でアクセス出来そうです。 ADODBは、Microsoft 製のドライバーなのか。 わざわざ、SQLite3用のドライバーも作ったのか?w win32oleは、Rubyの標準モジュールかw COM の種類が多い ruby -rwin32ole -e 'puts WIN32OLE_TYPE.progids.length' #=> 2521
- 132 名前:129 (ワッチョイ ea2c-KoMo) mailto:sage [2020/01/29(水) 14:03:59 ID:AYOCyHQA0.net]
- >>129
訂正 >ADODBは、Microsoft 製のドライバーなのか。 >わざわざ、SQLite3用のドライバーも作ったのか? SQLite3 などのODBC ドライバーは、Microsoft 製じゃない。 誰かが作ったものです
- 133 名前:デフォルトの名無しさん (ワッチョイ 7f05-QQjh) [2020/02/07(金) 23:21:28 ID:t9uaVZtz0.net]
- RubyのOcraについて質問です。
無限ループの中でタイマーカウント満了の度に処理を行って待ちに入るという動作のプログラムって実はEXE化できないという制約があったりしますでしょうか? また、その場合の解消方法とかをご存じの方、よろしくお願い申し上げます。
- 134 名前:デフォルトの名無しさん (オッペケ Sr0b-Hkqy) mailto:sage [2020/02/08(土) 10:32:17 ID:hHzEGlOhr.net]
- >>131
ない 何故ならevalするだけの簡単なコードですらexe化できるから
- 135 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 13:28:21.15 ID:9Nn74D/R0.net]
- OCRA の代わりに、Neri と言うのもあるみたい
Neri https://github.com/nodai2hITC/neri/blob/master/README.ja.md
- 136 名前:デフォルトの名無しさん (ワッチョイ 9f7c-YOmB) [2020/02/10(月) 17:54:32 ID:nkCUteta0.net]
- 下記のコードでifの位置ってここでいいの。rubyの本の記述なんだけど。
2行目だけどifの方が左なんじゃないの?右でも行けるって事かな? def greeting(country) return 'countryを入力してください' if country.nil? if country == 'japan' 'こんにちは’ else 'hello' end end greeting(nil) greeting('japan')
- 137 名前:デフォルトの名無しさん (ワイーワ2 FFdf-VM48) [2020/02/10(月) 17:55:54 ID:JljXo4cdF.net]
- 後置
- 138 名前:デフォルトの名無しさん [2020/02/10(月) 18:40:17.86 ID:nkCUteta0.net]
- >>135
そうなの? 理由も聞きたい そういう仕様?って事?
- 139 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 20:46:54.23 ID:cKG4UD690.net]
- わからない時はまずリファレンス
https://docs.ruby-lang.org/ja/master/doc/spec=2fcontrol.html#if ifは前置でも後置でもいける仕様 後置ifは正式にはif修飾子(if modifier)
- 140 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 21:36:49.68 ID:cuubi2Q/0.net]
- しかし、何がしたいのかはわからんコード。
文字列を返してるだけ?
- 141 名前:デフォルトの名無しさん (ワッチョイ 9f2c-ndoi) mailto:sage [2020/02/10(月) 23:17:58 ID:8D13KkA50.net]
- そりゃ、ユーザーからの入力値チェックは、必要
まあ、デフォルト値は、nil の代わりに、空文字列にしておく手もある
- 142 名前:デフォルトの名無しさん (ワッチョイ 3714-A9K6) mailto:sage [2020/02/11(火) 00:09:12 ID:dIRIcC/n0.net]
- >>136
英語勉強しろよ I don't know if it will rain tomorrow. (明日雨が降るかどうかわからない)
- 143 名前:デフォルトの名無しさん (アウアウウー Sa9b-YLe+) mailto:sage [2020/02/11(火) 07:38:12 ID:jcgFHncna.net]
- 後起きifはRubyの文法的にはかなり無理があって、その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文
Matz的によほどの拘りがあるんだろうけど、違和感を感じる>>134のセンスはとても正しい
- 144 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 09:49:56.57 ID:GpQNLMm40.net]
- perl後継としては外せない
- 145 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 10:04:30.75 ID:Nq1ZGiCx0.net]
- perlなら当然でしょ
rubyはそこを汲んでる
- 146 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 10:14:08.59 ID:dIRIcC/n0.net]
- Perlに不満ってあるの?
どれだけある?
- 147 名前:デフォルトの名無しさん [2020/02/11(火) 12:56:14.55 ID:KtXysiBKF.net]
- >>141
Rubyのあちこちで見受けられるPerlの悪い所をわざわざパクったアホな例の一つだな
- 148 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 13:01:20.53 ID:v/oRLdRM0.net]
- >>141
>その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文 「全てが式」ってのはstatementとexpressionに明確な区別のある言語との対比で Rubyの特徴をわかりやすく説明するために使われてるだけ 式の一部どれをとっても全てが式になってるまともな言語があるわけない Rubyには後置以外の修飾子だってあるしstatementもある 中途半端な知識で勘違いしてドヤるのはやめよう
- 149 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 13:17:51.03 ID:D5vn67vCa.net]
- perl に
- 150 名前:比べて ruby の優っているところは? []
- [ここ壊れてます]
- 151 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 13:22:48.99 ID:XWZwag4pr.net]
- if/unless, while/until, rescue
- 152 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 13:27:43.83 ID:eT6ZDI7H0.net]
- >>147
Perlにはオブジェクト指向ようの構文が後付で原始的なものしか搭載されてない。 アセンブラを駆使すれば何でもできるように、原始的な機能でも頑張れば 高度なオブジェクト指向機能を作ることは可能だが、 そのせいでいくつもの実装が生まれライブラリごとに使ってる 仕組みが異なり統一ができずに破綻してしまった。 Rubyは最初からオブジェクト指向
- 153 名前:デフォルトの名無しさん [2020/02/11(火) 14:28:51.94 ID:R1PPlg5z0.net]
- >>146
>式の一部どれをとっても全てが式になってるまともな言語があるわけない LISP, Haskell, ML, …etc >中途半端な知識で勘違いしてドヤるのはやめよう この記事の原著者も「中途半端な知識で勘違いしてドヤ」ってるのかなぁ ・Rubyによる関数型プログラミング xtmlab.com/misc/FPwithRuby.html なお、手続き型言語の大半が文と式を明確に分けている中で、 Ruby の「すべてが式」という思想はユニークであるが、 次世代言語 Rust でも同様な思想が採用された 以下は書籍「プログラミングRust」からの引用 > Rustはいわゆる式言語(expression language)の一つだ。 > つまり、Lispにまで遡る古い伝統に従い、すべてを式で行う。 中途半端な知識で勘違いしてドヤると恥をかくだけだよ
- 154 名前:デフォルトの名無しさん (ワッチョイ 9f01-OQuQ) mailto:sage [2020/02/11(火) 18:41:16 ID:v/oRLdRM0.net]
- >>150
>LISP, Haskell, ML, …etc おまえアホやろ Lispの閉じ括弧は式なのか? シングルクウォートは式なのか?Haskellのコロンは式なのか? if修飾子が式じゃない極めて特殊()な構文って主張はそれと同じレベルなんだけど >この記事の原著者も「中途半端な知識で勘違いしてドヤ」ってるのかなぁ 「あらゆるすべてが式である」のすべてに何が含まれて何が含まれないのか理解してるかどうかだよ 原著者が理解してるかどうかは知らないけどお前は間違いなく理解してない ついでに言っておくとRubyの「全ては式」が広まったのはDavid Flanaganが「The Ruby Programming Language」で他言語出身者にわかりやすく理解させるためにそれっぽいことを書いたのが理由
- 155 名前:デフォルトの名無しさん [2020/02/11(火) 22:59:40.20 ID:R1PPlg5z0.net]
- >>151
文節「すべてが式」に対する君の認識が、世間の一般常識から乖離していることを理解した
- 156 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 00:01:32.50 ID:39kCYFWR0.net]
- >>152
keywordやsymbolそれ自体が式なわけないだろ? それと同じことを主張してたの理解できたのかな? 制御構造のif式だって`if 式; end`全体で式として評価されるわけで ifだけやendだけが式になるわけじゃない if修飾子は`式 if 式`全体で式として評価されるわけで 後置の`if 式`だけで式になるわけじゃない でその一部を取り出して 「その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文」 って言っちゃうのがどれだけ的外れかって話な
- 157 名前:デフォルトの名無しさん (ワッチョイ a701-9iBN) [2020/02/12(水) 01:40:12 ID:3IloEGU30.net]
- 電卓の構文解析器を作ったことがあれば、だいぶご意見が変わるはず。
- 158 名前:デフォルトの名無しさん (ワッチョイ ef1d-sg8N) [2020/02/12(水) 01:51:46 ID:CB9IiDBv0.net]
- 実務経験1年で月収80万稼げるエンジニアになった理由
https://www.youtube.com/watch?v=DrbbyGsHQic 意識が低いエンジニアこそフリーランスになれ https://www.youtube.com/watch?v=nSEaAJlgjbQ フリーランスエンジニアの週3労働ってどんな感じ? https://www.youtube.com/watch?v=8yjoDCdbzMc ぼくがスキルのない社畜ならこうやって脱する https://www.youtube.com/watch?v=aae8xxbUlMM
- 159 名前:
初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話 https://www.youtube.com/watch?v=U0OCGRVLFsM プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説 https://www.youtube.com/watch?v=iBOeiSKBIW8 貧乏人こそ社会不適合者 https://www.youtube.com/watch?v=O3BT72BIBJI 元ド貧乏が教える】貧乏を抜け出すための2つの考え方 https://www.youtube.com/watch?v=IRrCgTy3ckc より良いオファー貰ってるのに転職しないとか何考えてるの? https://www.youtube.com/watch?v=i0J6uRhlj7o [] - [ここ壊れてます]
- 160 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 02:31:04.61 ID:zXn0/Xf90.net]
- >>153
もう黙ったほうがええで。 アホが漏れとる。
- 161 名前:150および151 (ワッチョイ 7274-XNsy) [2020/02/12(水) 03:15:58 ID:1hwSKrXM0.net]
- >>153
>でその一部を取り出して >「その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文」 >って言っちゃうのがどれだけ的外れかって話な 自分は>>141ではないが、いったいぜんたい何を話したいのか訳がわからんよ
- 162 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 06:32:46.81 ID:m8mhjAm70.net]
- >>155
グロ
- 163 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 09:42:28.21 ID:gfctBwevM.net]
- 「Rubyでは全てが式だ」というとき、ステートメント(文)と式の区別がないことを意味するのが普通だ
言語によってはメソッドやクラスの定義も普通の式だったりするが、Rubyでそう思っている奴はいないだろう しかしRubyではステートメントと式の区別がないというのは厳密には正しくない 文法定義のソースを見れば明らかだが、それが後置構文の存在のためであるのは事実
- 164 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 22:16:17.93 ID:Pa88PYmd0.net]
- def foo(arg)
arg + 1 end(99) #=> 100 動かない
- 165 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 10:51:24.11 ID:6MxuLkX50.net]
- p send(def foo(a); a + 1;end, 99) # => 100
- 166 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 21:55:21.77 ID:i9bfivOD0.net]
- お、うーむ...なるほど
- 167 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 22:02:31.32 ID:TNGg/IHkr.net]
- p def foo(a)
a + 1 end.then{|s| method(s)[99]} # => 100
- 168 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 23:08:11.62 ID:0ZbbVgVA0.net]
- つまり、扱いは同じではない、ということかな?w
- 169 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 23:20:32.77 ID:oR70BErs0.net]
- foo = -> (arg) {
arg + 1 }.( 99 ) #=> 100
- 170 名前:デフォルトの名無しさん [2020/02/14(金) 12:22:11.03 ID:+9NDg3r60.net]
- ( ) で囲んで式にすれば、
JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいに、無名関数にできた! ( -> (arg) { puts arg + 1 } ).( 99 ) #=> 100
- 171 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 12:36:32.48 ID:+9NDg3r60.net]
- msys2 無しのWindows 10, Ruby 2.5 で、
WEBrick::HTTPServlet::CGIHandler は使えない! ERROR CGIHandler: C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:63:in `iterate_msys_paths': undefined method `split' for nil:NilClass (NoMethodError) エラーログに、enable_dll_search_paths とあるから、dll でも使うのかな?
- 172 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 17:39:20.53 ID:EOtBZfN80.net]
- >>166
>( ) で囲んで式にすれば、 括弧なくても定義したlambdaが返される .()でそのlambdaのcallメソッドを呼び出してるだけ -> (arg) { arg + 1 }.(99) でも -> (arg) { arg + 1 }[99] でも -> (arg) { arg + 1 }.call 99 でも同じ ちなみにJSのvar foo = (x)=> x+1 みたいなのは関数に名前はついてないので無名関数だぞ rubyで foo = -> (arg) { arg + 1 } と書いても 無名のlambdaをfooという変数に入れてるだけで lambda自身に名前がつくわけではない
- 173 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 13:46:02.32 ID:BIOI8zPQ0.net]
- >>167
ENV['PATH'].split(";")が失敗するってmsys2関係なくなかなかレアな環境だと思うが 環境変数をクリアしたりしてるのかい?
- 174 名前:167 [2020/02/15(土) 17:09:24.91 ID:8drC8DpT0.net]
- msys2 を入れずに、Ruby を使っているから、
コンパイルできないし、Windows 10 のネイティブDLL を使えない Ruby 2.5 で、SQLite も使えなくなったw WEBrick は、Rubyで実装されているから、msys2 無しでも動くと思ったけど、 WEBrick::HTTPServlet::CGIHandler で、ネイティブDLLを使っているのだろう rubyist magazine を冒頭から読み始めたが、読み応えある!
- 175 名前:デフォルトの名無しさん (ワッチョイ 335f-JhxJ) mailto:sage [2020/02/16(日) 02:30:58 ID:A+9IORaN0.net]
- >>170
msys2_installation.rb:63にmsys2関係ないって https://github.com/oneclick/rubyinstaller2/blob/rubyinstaller-2.5.0-1/lib/ruby_installer/build/msys2_installation.rb#L63 これが失敗するのは環境変数がおかしいか、上書きしているか それともENVを再定義しているくらいしか思いつかない
- 176 名前:167 [2020/02/16(日) 19:14:49.59 ID:5EL9p8ON0.net]
- 漏れは、Windows 10,Ruby 2.5 で、
Run ‘ridk install’ to install MSYS2 and development toolchain. も、チェックしていないし、 MSYS2 の開発ツールと、MINGW のコンパイラもインストールしていないから Rubyの環境構築(Windows10編) https://www.kenschool.jp/blog/?p=3898 エラーログ C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:63:in `iterate_msys_paths': undefined method `split' for nil:NilClass (NoMethodError)\r\n\t from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:76:in `msys_path'\r\n\t from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:89:in `mingw_bin_path'\r\n\t from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:99:in `enable_dll_search_paths'\r\n\t from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/singleton.rb:27:in `enable_dll_search_paths'\r\n\t from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems/defaults/operating_system.rb:3:in `<top (required)>'\r\n\t from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems.rb:1383:in `require'\r\n\t from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems.rb:1383:in `<top (required)>'\r\n\t from <internal:gem_prelude>:2:in `require'\r\n\t from <internal:gem_prelude>:2:in `<internal:gem_prelude>'\r\n
- 177 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 01:04:16.59 ID:gpbv7rcq0.net]
- あー、WebrickのCGIHandlerはCGIPathEnvの関係でENV["PATH"]がnilになりうるのか
WEBrick::HTTPServer.newに渡すハッシュにCGIPathEnv: ""を加えとけばいいはず
- 178 名前:167 mailto:sage [2020/02/17(月) 01:35:30.73 ID:A9t7x7q20.net]
- ありがとう。
オプションに、:CGIPathEnv => '' を加えたら、正常に動いた! すごい実力じゃん! ソースコードを追っていったの? opts = { :CGIInterpreter => "C:/Ruby25-x64/bin/ruby.exe", :CGIPathEnv => '', # msys2 のエラーを避けるために、必要! :DocumentRoot => './', # この指定が必要! :BindAddress => '127.0.0.1', :Port => 20080 } srv = WEBrick::HTTPServer.new( opts )
- 179 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 05:37:18.50 ID:SykEsoD4r.net]
- なんかムカつく
- 180 名前:デフォルトの名無しさん (ワッチョイ d62d-qw96) [2020/02/17(月) 15:17:53 ID:9CP/4dwv0.net]
- 新しくて安い本が出たので、頭の体操にRubyの勉強を始めたところなんだけどさあ
よくネット上に、「Railsの本をやってからRubyの勉強をした」みたいな人がいるのはどういうことなの? RailsってRubyが出来ないと何も出来ない訳でもないの???
- 181 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 15:33:27.23 ID:qj5C8HtX0.net]
- 普通にプログラミングできる人にとっては言語の違いなんて些細なもので
いちから作るのならともかく、そこいらにあるRailsのコードや自動生成されたものを 見ればそこからRubyという言語を推測で理解できるんだよ。 このコードがクラス定義だな。Rubyではこう書くんだなって わからなければそこだけググればいい Railsはやり方というものがあるので、それに合わせるように Railsの本を見て流れを把握する必要がある。 検索は断片を見つけるのはキーワードから簡単に見つけられるが 流れはそうはいかない。
- 182 名前:だいたいの本はページの最初から流れを
そのまま書いてあるから、本でざっと勉強するのが最初のうちは手っ取り早い [] - [ここ壊れてます]
- 183 名前:デフォルトの名無しさん (ワッチョイ d62d-qw96) [2020/02/17(月) 18:20:35 ID:9CP/4dwv0.net]
- そういうことか
言語だけ先にやると変な癖がついたりもするし、演習ファーストの学習も結構いいかもな
- 184 名前:デフォルトの名無しさん (ワッチョイ b7d2-Htok) [2020/02/17(月) 18:45:44 ID:wxeqwMT50.net]
- 日本語の勉強がしたいと言ったら
舞城王太郎の小説を読めと言われた気分
- 185 名前:デフォルトの名無しさん (ワッチョイ 122c-LiuO) mailto:sage [2020/02/17(月) 19:30:14 ID:A9t7x7q20.net]
- たぶん、すでに多言語を知ってる人だろう
入門書の次のレベルの、新しい本が出た! Ruby on Rails 6 実践ガイド、黒田努、2019/12/20 実践Ruby on Rails 4: 現場のプロから学ぶ本格Webプログラミング、黒田努、2014 この本を書き換えたもの 無料のRails チュートリアルよりは簡単 Windows プロ版のDocker が不安定だから、Virtual Box, Ubuntu 18.04 でやってる!
- 186 名前:デフォルトの名無しさん (ワイーワ2 FF6a-BDVY) [2020/02/18(火) 12:16:06 ID:r+eOvEZJF.net]
- またカタワを量産するつもりか
RailsRubyの将来は暗いな
- 187 名前:デフォルトの名無しさん (ワッチョイ ff2c-lQWV) [2020/02/25(火) 19:09:01 ID:Ykw6mmDG0.net]
- 「aabc → bc」みたいに、先頭から特定の文字が連続するとき、それを除去するには、どう書く?
正規表現を使ったものと、使っていない場合の両方 str = "aabc" # 先頭から続く、a を除去する while str.start_with? "a" # 先頭文字が、a なら str.slice! 0 # 先頭文字を削除する end p str #=> "bc"
- 188 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 20:42:26.89 ID:uCkT0+w20.net]
- そりゃ正規表現のステートマシン通りに書くでしょ
- 189 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:00:57.29 ID:uBU1PACqr.net]
- >>182
puts str[/\Aa*\K.*/] # => bc
- 190 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:07:44.86 ID:uBU1PACqr.net]
- >>182
puts str[str.size.times.find{|i| str[i] != ?a}..] # => bc
- 191 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:22:39.72 ID:oSeHo6cg0.net]
- >>182
def remove_consecutive(string) string.sub(/^(.)¥1{1,}(.*)$/) {|_| remove_consecutive($2)} end remove_consecutive("aaaabbbbbbccab") #=> “ab” remove_consecutive("1112234") #=> "34"
- 192 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 22:59:04.49 ID:/XslCVsc0.net]
- 本当に文字列から連続部分を除去したいのか、
連続部分の後ろが取り出せればいいのか
- 193 名前:182 (ワッチョイ ff2c-lQWV) mailto:sage [2020/02/25(火) 23:54:26 ID:Ykw6mmDG0.net]
- 元々は「0082 → 82」みたいな文字列の先頭から続く、0 を除去したかった。
先頭以外のものは、除去しなくてよい こういうメソッドが無いか、探してみたけど見つからなかった レシーバーの破壊的な変更をしてもよいし、別の文字列を作って返すものでもよい
- 194 名前:182 (ワッチョイ ca2c-rVtL) mailto:sage [2020/02/26(水) 00:52:55 ID:TmIxTRKQ0.net]
- 文字列の先頭から続く、特定の文字を除去する
1文字でも除去するし、連続するかぎり除去するが、 先頭以外のものは、除去しなくてよい a を除去する場合 abc → bc aaXaa → Xaa
- 195 名前:デフォルトの名無しさん (ワッチョイ 8a01-k1AF) mailto:sage [2020/02/26(水) 01:11:17 ID:sMj0eedP0.net]
- >>188
>元々は「0082 → 82」みたいな文字列の先頭から続く、0 を除去したかった。 “0082”.to_i.to_sでよくね? なんかこのパターン数ヶ月前にも見たような気がするな >>189 def remove_leading_chars(string, char) string.each_char.drop_while{|c| c == char}.join end remove_leading_chars(“0000123", “0”) #=> "123" remove_leading_chars(“abc", “a”) #=> "bc" remove_leading_chars(“aaXaa", “a”) #=> "
- 196 名前:Xaa" []
- [ここ壊れてます]
- 197 名前:182 mailto:sage [2020/02/26(水) 04:46:15.55 ID:TmIxTRKQ0.net]
- >“0082”.to_i.to_sでよくね?
長い文字列だと、数値化できない言語もあるから、 汎用的に作れないかなと思って
- 198 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 08:06:23.34 ID:PiyizPRV0.net]
- だからオートマトンで作れって言ってんじゃん
ttps://image.slidesharecdn.com/1-140715084054-phpapp01/95/1-11-638.jpg
- 199 名前:デフォルトの名無しさん (ワッチョイ 0314-IyPa) mailto:sage [2020/02/26(水) 08:22:48 ID:kXv4PxDr0.net]
- オートマトンってなんで羊なんだろう?
自動的に毛を刈って自動的に料理されるのか?
- 200 名前:デフォルトの名無しさん (ワッチョイ 6b01-nhpA) mailto:sage [2020/02/26(水) 08:29:53 ID:bDSWeqSr0.net]
- オートマンだと思ってた
インド哲学かよ
- 201 名前:デフォルトの名無しさん (ワッチョイ 0314-IyPa) mailto:sage [2020/02/26(水) 08:36:52 ID:kXv4PxDr0.net]
- 嘔吐マトン
- 202 名前:デフォルトの名無しさん [2020/02/26(水) 12:11:34.52 ID:GrI3XnzJ0.net]
- >>189
def ltrim(s, c) s[/^#{c}*/] = "" s end p ltrim("aaaabcaabc", 'a') "bcaabc"
- 203 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 23:09:06.75 ID:TmIxTRKQ0.net]
- Ruby on Rails 6 実践ガイド、黒田努、2019/12/20
Ruby on Rails 6 超入門、掌田津耶乃、2020/2/21 巨匠・掌田も、Rails 6 に参戦! 後は、山田祥寛・WINGSプロジェクトが、どうするか?
|

|