1 名前:デフォルトの名無しさん [2020/12/25(金) 04:24:27.68 ID:aa9Khe9z0.net] プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ 質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。 Ruby on Rails については、WEBプログラミング板で 前スレ Ruby 初心者スレッド Part 66 https://mevius.5ch.net/test/read.cgi/tech/1578068134/ るりまサーチ (リファレンス検索) 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
513 名前:882 mailto:sage [2022/08/19(金) 22:25:12.76 ID:2b9NNsS1M.net] 色んなプログラ厶スレで rubyスレ誘導はってる人がいるよね
514 名前:デフォルトの名無しさん mailto:sage [2022/08/19(金) 22:36:16.14 ID:kD1PYwgK0.net] せいぜいがんばってください
515 名前:デフォルトの名無しさん mailto:sage [2022/09/02(金) 12:46:17.31 ID:SPKoKVwi0.net] ブロックスコープを作って、そのスコープ内だけで使える変数を作るには どうすればいいのでしょうか? a = 1 { let a p a # nil } p a # 1
516 名前:デフォルトの名無しさん mailto:sage [2022/09/02(金) 13:58:50.26 ID:0IIX0tzu0.net] a = 1 ->(a = nil) { p a }[] p a ただrubocop(linter)に怒られる
517 名前:デフォルトの名無しさん mailto:sage [2022/09/02(金) 15:50:30.29 ID:SPKoKVwi0.net] >>516 サンクス
518 名前:デフォルトの名無しさん mailto:sage [2022/09/04(日) 11:03:45.79 ID:d+yqMU9C0.net] thenも使えそう a = 1 nil.then { |a| p a } p a そもそもメソッドじゃ駄目なんだろうか
519 名前:デフォルトの名無しさん mailto:sage [2022/09/04(日) 14:18:23.63 ID:nDhKbeBy0.net] 書式設定これが見通し良くない? 無駄な#が有効利用できるからな 採用していいぞ n = 123 name = "山田太郎" puts "#05d{ n }番目は#10s{ name }です"
520 名前:デフォルトの名無しさん (オイコラミネオ MM1b-366i) [[ここ壊れてます] .net] 今日から三日間開催されているRubykaigi(Ruby会議)にて、Wasm化の話が 議題になっているらしい。
521 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 21:57:50.38 ID:EF/qt7ve0.net] >>504 YouTube で有名な雑食系エンジニア・KENTA は、下の動画で、 未経験者はシェアが高い、Ruby on Rails でポートフォリオを作れと言ってる Django, Laravel はダメ。 特にKENTAは、PHP, Scala をオワコン認定したので、使わない方がよい 未経験からのエンジニア転職の必須教養【技術知識編】 www.youtube.com/watch?v=Q1c09rrhTjo Railsは、KENTAのサロン以外にも、RUNTEQ、東京フリーランスのデイトラなど色々ある Node.js など最悪。面倒くさすぎて勉強にならない。 Go も初心者向きじゃないので、 KENTAが勧めるキャリアパスは、Rails → Go のみ KENTAのサロンのAWS 部で皆、AWSのくろかわこうへいのサロンへも入る。 くろかわのサロンの生徒、数十人で書いた本も出てる 以下がバックエンドの最短コース Rails, Bootstrap, jQuery から始めて、 Linux, Docker, Heroku, AWS, CircleCI, Github Actions 猛者になると、Terraform, Kubernetes。 ここまで行けば、どの会社よりも上
522 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 22:12:49.56 ID:EF/qt7ve0.net] >>488 データベース(DB)に、2千社・2億レコードあるけど、全く問題ないと外人が言ってた N+1 で一々、問い合わせをしたり、 多対多などで、索引なしで総当たりみたいな事をやっているとか? DBの実行計画を見た方がよい ミックの本も読んだ方がよい。 副問い合わせを、case に書き換えるとか、書いてあったような気がする。 よく覚えていないけど データベース資格の問題を解くとか
523 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 22:38:48.48 ID:EF/qt7ve0.net] >>478 漏れが作った、webrick のデモならあった require 'webrick/cgi' class MyCGI < WEBrick::CGI def do_GET(req, res) res["content-type"] = "text/plain" ret = "get\n" res.body = ret end def do_POST(req, res) res["content-type"] = "text/plain" ret = "post\n" res.body = ret end end MyCGI.new.start()
524 名前:デフォルトの名無しさん (アウアウウー Sa8b-Iguz) mailto:sage [[ここ壊れてます] .net] 1か月よりも前なので解決してたりします
525 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 16:40:11.60 ID:nscVoUcha.net] ちょっと厄介な事かもしれないですが、配列にuniqやった時に [1,2,3,4,2].uniq これで 一番後ろの2が削除されて[1,2,3,4]になるじゃないですか uniqした後の結果を[1, 3, 4, 2]にしたい時は [1,2,3,4,2].reverse.uniq.reverse こう2回reverseやるしか無いでしょうか? reverse消すのを試みていたんですが上手い方法が思いつきません
526 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 23:04:33.89 ID:Un8DgV3E0.net] uniq後の順序に依存した実装って気持ち悪いけどドキュメント読んでみると一応保証はされてるのか
527 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 15:57:11.70 ID:rzWFC1+la.net] ちょっと無理そうですね データ構造のほうが逆順だったらreverse無しで良かったんですが そっちはもう換えられないのでこのままにしときます
528 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 16:22:50.85 ID:t3QuDbs+0.net] reverseをreverse_eachにしたら中間のArrayは無くせる
529 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 19:18:46.78 ID:m/z6XQ/+0.net] scan.map.delete_if.delete_if.shuffle[1,20] とかなっても意地で1行で書くのが真のプログラマなの?
530 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 20:06:14.07 ID:K2FDfZLG0.net] 突然どうした 職場のグチか?
531 名前:デフォルトの名無しさん (ワッチョイ 9e66-Y+SS) mailto:sage [[ここ壊れてます] .net] delete_ifが2つ続いてるとか mapした後にdelete_ifとか 何か良くない匂いがするとは思う
532 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 15:25:57.97 ID:+SNgMDTOM.net] >>529 意図が伝わりやすければメソッドチェーンでつなげること自体は何の問題もない ただ1行で書くかと言われれば普通は改行して読みやすくメンテしやすくする 1行でも許容できる内容かどうかは引数含めて書いてもらわないとなんとも言えない
533 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 17:10:39.21 ID:BXnMv7Uva.net] 最近メソッド10個くらい繋げたコード書いたけどごく当たり前のコーディング 真のPGはmethod_missingの魔術コード書ける人だよ
534 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 17:43:18.00 ID:BXnMv7Uva.net] サーバー側のrubyバージョンが古い時にローカル実行用スクリプトで3.0機能使ったコード書いていいものか迷う もしかしたらいつかサーバー側にコード持っていく可能性もある 書いてもいいのかな?
535 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 18:23:25.60 ID:FVicjk6YM.net] どうせコンテナで動かすんだからどうでもいいだろ 今時サーバーにグローバルにインストールされたRubyに依存してるような腐った運用してる環境なら、イキって変なことするのはやめておけ
536 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 18:40:33.30 ID:BXnMv7Uva.net] コンテナ? 3日1回程度実行するスクリプトをこっちで行うかサーバーに持ってくかという話 こっちもpc常時起動してるわけじゃないから、正確に確実に実行するならサーバーで走らせ続けるほうが楽ではあるが ここまで書いて気づいたけどサーバーのメモリ余計に使う事になるからやっぱやめる
537 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 19:07:17.74 ID:fVRflvZP0.net] サーバの古いRubyコードをモジュールで使うわけじゃないなら 枯れたPerlで書けば解決
538 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 21:33:55.99 ID:BXnMv7Uva.net] ん?いや古いモジュールとかじゃなくて、 ローカル実行でもサーバー実行でも良いコードを、どちらへもっていくか みたいな話
539 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 22:47:37.12 ID:sYls8uor0.net] いまどきのRubyで書くと互換性の問題がでるなら いっそPerlで書いたらという話
540 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 22:59:32.60 ID:7XofIB3Ar.net] >枯れたPerlで書けば解決 正しいこと言ってるのに何故だか寂しくなる
541 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 23:22:18.60 ID:BXnMv7Uva.net] Perlはないかなー 3.0だと構築しやすい環境があって それがサーバーバージョンだと構築できるか不明で、 Perlだと普段使ってないんで Perlのどのバージョンでどのモジュールバージョンがインストール有効か全く知らないので、さらに構築できる可能性が薄い、、
542 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 09:14:41.01 ID:S94uJYpZ0.net] こういうのもYAGNIって言うのかな?
543 名前:デフォルトの名無しさん mailto:sage [2022/10/02(日) 23:00:07.08 ID:P9RAxpp00.net] Perlの互換性をあなどるな! Rubyごときの常識では測れぬぞ!
544 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 22:36:01.59 ID:mZNxA8zN0.net] perlは28年メジャーバージョン変えてないだけだろw 変えたらモジュールが全く付いていかず 後付けで別言語だったことにされた始末w 7にすると言った後もスルスル詐欺。もう崩壊寸前。
545 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 10:04:15.06 ID:bSK5XELIM.net] rubyも変えない基本機能だけ永年保証版をつくればいいか
546 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 22:14:05.98 ID:UryqQ3PG0.net] 先がないって意味では似た者同士
547 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 08:09:51.42 ID:I8FgU9ZAa.net] rubyで書かれたサイトはみんな死んでperlで書かれたmixiが生き残った これも現実
548 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 20:16:53.48 ID:CqdeFZnf0.net] >>544 Perl7は、Perl5最終版をほぼそのまま引き継ぐんやろ。 せやから問題ないはず!
549 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 21:04:39.92 ID:qbCtmsWUa.net] perlの省略記法が上手くrubyにくれば文句ないんだけどな _1 ってところまでは来たけどあと少し マジックナンバーも覚えちゃえば効率良い
550 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 21:34:32.70 ID:2RK+LAqWr.net] perlの省略記法好きなんだけどプロジェクトだと使いづらいんだよな……
551 名前:デフォルトの名無しさん [2022/10/10(月) 21:33:09.97 ID:mVWGK/1kp.net] 教えてください。 redditのr/rubyを読んでいて、以下のようなサンプルコードを書く人がいました。 lambda do p 1 p 2 p 3 end[] lambda { p 1 p 2 p 3 }[] -> { p 1 p 2 p 3 }[] このサンプルを書いた人は、Procとか、lambdaを使った書き方の違いを説明したかったようなので 議論の本質から外れるのですが、 Endや}の後の[]は、どんな意味があるかお分かりになりますでしょうか。
552 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 21:54:11.50 ID:vcZFFA/Ea.net] https://docs.ruby-lang.org/ja/latest/method/Proc/i/=3d=3d=3d.html lambdaメソッドで生成したProcオブジェクトの実行です
553 名前:デフォルトの名無しさん (オッペケ Sr03-mdlF) mailto:sage [[ここ壊れてます] .net] callしてるんでしょ
554 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 14:17:27.31 ID:17+/w9Hg0.net] 手続きオブジェクト・Proc は、 Proc.new, Kernel#proc, Kernel#lambda, -> 引数{ 処理 } で作れます。 Procを呼び出すには、Prco#call, Proc#[] を使う g = -> x, y { x + y } p g.call( 3, 4 ) p g.( 3, 4 ) p g[ 3, 4 ] p -> x, y { x + y }[ 3, 4 ] これらは全て、7 と出力される 最後のものは、JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいなものか? 定義されると同時に実行される
555 名前:デフォルトの名無しさん [2022/10/11(火) 21:55:19.45 ID:bcaE1HrEp.net] >>552 さん >>553 さん >>554 さん 教えていただき、ありがとうございます。 こういうcallの仕方があるって知りませんでした。
556 名前:デフォルトの名無しさん [2022/10/11(火) 21:57:33.74 ID:bcaE1HrEp.net] >>554 さん p g.yield(3,4)もありますね。
557 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 03:59:02.03 ID:rjG+co3La.net] 色々あるけどrubyは多種多様な人達がどれかを選択するためにあるっつうイメージだから 自分が使うものは限定したほうが良いよ Proc.new proc lambdaも詳細動作ちげーし
558 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 23:19:24.53 ID:liNTEmfl0.net] しかし、Perlの融通無碍さを罵倒してたんちゃううんかい!
559 名前:デフォルトの名無しさん (ブーイモ MM86-N9Fb) mailto:sage [[ここ壊れてます] .net] コンバージョンプログラムいろいろとあるよ 知らないだけじゃない? Java to Kotlinとか
560 名前:デフォルトの名無しさん (オッペケ Sr03-mdlF) mailto:sage [[ここ壊れてます] .net] AltJS系も広義ではそうじゃないか Opalとか
561 名前:デフォルトの名無しさん (アウアウウー Sa2f-kHT+) mailto:sage [[ここ壊れてます] .net] そういう0か100%かってのじゃなく、AIプログラミングに繋がる話だと思うけどね
562 名前:デフォルトの名無しさん (ブーイモ MM27-N9Fb) mailto:sage [[ここ壊れてます] .net] AI翻訳を通さないと何言ってるのかわからないや
563 名前:デフォルトの名無しさん (テテンテンテン MM7f-NBC3) mailto:sage [[ここ壊れてます] .net] >>566 プログラム言語に依るのだろう RubyからPythonはできそうな気がするけど、C++からForthとかはあまりにも違いすぎて無理… そう考えると、言葉よりもプログラム言語の方が違いが大きすぎるって事だな
564 名前:デフォルトの名無しさん (ワッチョイ 2b84-TyQf) mailto:sage [[ここ壊れてます] .net] >>566 > たくさんの言語を同時相互翻訳できるのに、 一般の言語で、完全に相互翻訳できるわけない
565 名前:デフォルトの名無しさん (テテンテンテン MM7f-WdpF) [[ここ壊れてます] .net] slack の ruby-jp ってどこかに移転しました?
566 名前:デフォルトの名無しさん (ワッチョイ 4b33-CxPv) mailto:sage [[ここ壊れてます] .net] >>566 やればできないわけもないんやから、結局は需要がない、ということやろ。 人の言葉は意志疎通のための翻訳やからアリ。 しかし、コンピュータ言語の翻訳結果は再利用のためのリソースを期待されがちやけど、ほぼムリなんでナシ。 実際、再利用でない実行のための変換なら、多用されとる。 コンパイラもそうやし、WebAssemblyなんかそのためやろし。
567 名前:デフォルトの名無しさん (ワッチョイ 2b4f-spri) mailto:sage [[ここ壊れてます] .net] Haxeは、JavaScript(JS)、C++、C#、Java、JVM、Python、Lua、PHPを対象とする、 クロスプラットフォームアプリケーションを構築可能で、 各プラットフォームのネイティブ機能にアクセスできる、 オブジェクト指向のプログラミング言語 主に、HTML, JS ゲーム用で、Adobe Flash の後継。 Ruby には対応していない
568 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 13:36:19.02 ID:fjjhfMGv0.net] 「改訂2版 Ruby逆引きハンドブック」の「文字列を分割する」の所で、 split で構造体を定義するのは参考になる Struct_Fields = %i(a b c) # フィールド名のシンボル配列 Foo = Struct.new( *Struct_Fields ) # 配列展開 input_data = ":x::y:" # コロン区切り # ["", "x", "", "y"] 内の ["", "x", "y"] を取り出す p tmp_ary = input_data.split( ":" ).values_at( 0, 1, 3 ) p obj = Foo.new( *tmp_ary ) #=> <struct Foo a="", b="x", c="y">
569 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 20:49:59.26 ID:gz5lMMWOr.net] 書き捨てのコードならいいけど微妙じゃね
570 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 21:20:50.39 ID:Lu+vrvAs0.net] values_atが便利だなと
571 名前:578 mailto:sage [2022/10/20(木) 13:24:43.57 ID:zGrDbuOl0.net] values_at に、range も渡せる # ["", "x", "", "y"] 内の ["y", "", "x"] を取り出す p tmp_ary = input_data.split( ":" ).values_at( 3, 0..1 ) 下のinput_1 の出力が、なぜ、 ["", "", "y", ""] にならなかったのだろう 冒頭のコロンの前には、"" があるのに、 末尾のコロンの後ろには、"" がない # コロン区切り input_1 = "::y:" input_2 = "::y:a" p input_1.split( ":" ) p input_2.split( ":" ) 出力 ["", "", "y"] ["", "", "y", "a"]
572 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 14:02:28.80 ID:fK+SugQF0.net] https://docs.ruby-lang.org/ja/latest/method/String/i/split.html ドキュメントに書いてるが limit < 0 で末尾も残る なぜかは知らんがなにか他の挙動にあわせたんだろう
573 名前:578 mailto:sage [2022/10/20(木) 18:34:41.93 ID:zGrDbuOl0.net] ありがとう。そういうオプションがあったのか # コロン区切り input_1 = "::y:" p input_1.split( ":" ) p input_1.split( ":", -1 ) 出力 ["", "", "y"] ["", "", "y", ""]
574 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 15:14:40.66 ID:BxxcZFiKM.net] NSA、可能な限りメモリ安全なプログラミング言語を使うことを推奨 https://developers.srad.jp/story/22/11/13/042218/ C#・Go・Java・Ruby・Rust・Swiftなど python脱落
575 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 20:50:38.98 ID:u4oN4nv30.net] たしかに、TMをつけてまでRubyを挙げるのに、Pythonを挙げないのは意味がわからんな。w 伝統と信頼のPerlを入れろよ!とも思うし。
576 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 21:03:39.07 ID:8tiGCKxN0.net] VMもそこらの拡張もそこまで安全に書けてると思えんが
577 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 22:17:37.16 ID:9MQlhJri0.net] Python は字数の多さが敗因だろうな
578 名前:デフォルトの名無しさん [2022/12/28(水) 13:12:25.93 ID:+yyf2wj20.net] Ruby 初心者が最初に絶対に身に着けないといけない常識って ユーザーグループのキモい人達への無条件の敬意と忠誠(を払ってるフリ)じゃね
579 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 13:30:38.49 ID:xff+tzRk0.net] 何言ってんだ、こいつ?
580 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 22:34:40.01 ID:SmTZmVnPr.net] rails slackはそんな雰囲気ではないが何のこと言ってるんだか
581 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 22:34:54.53 ID:SmTZmVnPr.net] railsじゃなくてruby-jpか
582 名前:デフォルトの名無しさん mailto:sage [2022/12/31(土) 14:21:30.95 ID:MXKHIln50.net] Rubyの静的型ってみんな使ってんの?
583 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 10:40:08.74 ID:ZyLRd4DP0.net] https://mevius.5ch.net/test/read.cgi/hp/1439005423/331 から誘導されて来ました。 JavaScriptで日付が変わると自動で音が鳴るというものを作るにはどうしたらいいですか?
584 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 13:19:44.80 ID:TB0Q4LnJ0.net] スレタイみて誘導がイタズラだと思わんかったん?
585 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 13:40:43.56 ID:SpXTBx4O0.net] JavaScriptで日付が変わると自動で音が鳴るというものを作るにはどうしたらいいですか?
586 名前:デフォルトの名無しさん [2023/01/01(日) 16:55:07.16 ID:oLAa0eV20.net] perl好き ruby嫌い crystal好きだが crystalもパッケージ増えていくとぐちゃぐちゃになるんだろうな
587 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 17:09:40.21 ID:qeO58bDma.net] #! ruby # -*- coding: UTF-8 -*- require 'libev_scheduler' Fiber.set_scheduler(Libev::Scheduler.new) puts "Go to sleep!" Fiber.schedule do puts "Going to sleep" sleep(1) puts "I slept well" end puts "Wakey-wakey, sleepyhead" exit
588 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 17:16:55.61 ID:qeO58bDma.net] 途中で送信した https://docs.ruby-lang.org/en/3.0/Fiber.html のサンプルを試してみたのだが、 Go to sleep! Going to sleep Wakey-wakey, sleepyhead I slept well と表示されるはずが、何故か実際に実行すると Go to sleep! Wakey-wakey, sleepyhead Going to sleep I slept well と表示されてしまう Fiber,schedule は、Fiber を新規作成して即時実行のはずなので、ドキュメントの通り Going to sleep が先に動くはずなのに何故順番が逆になっているのかさっぱりわからない? どういうことだろう??
589 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 17:42:17.84 ID:k/txfnyN0.net] 今どき2行目が必要な環境ってある? コードは全部ASCIIだし脳死で書いてない? >Fiber,schedule は、Fiber を新規作成して即時実行のはず これを信用するとしてputsもI/Oだからとか(しらんけど) 配列pushなんかに変えてみて最後に出力してみては
590 名前:デフォルトの名無しさん mailto:sage [2023/01/14(土) 16:20:53.55 ID:XG+wNT9X0.net] irb 1.6.2(ruby 3.2.0付属)について質問です。 文字入力時には自動補完せず、タブキーを押したときに自動補完させるにはどうすればよいでしょうか? 入力時の自動補完だと入力の邪魔になってしまうので任意のタイミングで自動補完させたい、という意図です。 .irbrcに IRB.conf[:USE_AUTOCOMPLETE] = false (あるいは --noautocomplete で起動) とした場合、タブキーで補完候補が一気に出力されてしまい補完候補の選択ができませんでした。
591 名前:デフォルトの名無しさん [2023/01/14(土) 23:55:35.78 ID:v+aDVA7Ga.net] Stack Overflow 2023年の年収。高中低 Ruby, Elixir : 9.3 万ドル Go : 8.9 Rust : 8.7 Python : 7.1 TypeScript, C# : 7 Kotlin : 6.9 C++ : 6.8 C : 6.7 JavaScript : 6.6 Java : 6.5 HTML/CSS : 6:4 VBA : 6:2 PHP : 5 Dart : 4.4
592 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 03:00:28.41 ID:6m68H/Iaa.net] 確かに、puts もI/O だから、表示される順番は確定しないのかも
593 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 03:04:07.46 ID:6m68H/Iaa.net] >>590 irb よりも、VSCode の拡張機能・Code Runner を使えば? 右クリックメニューから、ファイル全体または選択したコード片を実行できる
594 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 16:50:45.07 ID:aMclAZtfa.net] >>589 なるほど、と試した結果 r=[] r << "Go to sleep!" Fiber.schedule do r << "Going to sleep" sleep(1) r << "I slept well" p r end r << "Wakey-wakey, sleepyhead" p r exit # ["Go to sleep!", "Wakey-wakey, sleepyhead"] # ["Go to sleep!", "Wakey-wakey, sleepyhead", "Going to sleep", "I slept well"] ドキュメントには即時実行とあるけど、メインの最後まで実行してから動き始めているように見えますね Fiber.schedule do に与えたブロック同士では想定通りの実行切り替えはされるようですが、ドキュメント通りの動きには何故かなっていない模様……
595 名前:デフォルトの名無しさん mailto:sage [2023/01/15(日) 16:52:49.17 ID:aMclAZtfa.net] 一行目がexitの前の出力で、2行目が Fiberのブロックからの出力です
596 名前:デフォルトの名無しさん mailto:sage [2023/01/22(日) 21:54:06.16 ID:mu8Nl5mu0.net] RubyのBigdecimalの最大桁数っていくつ? puts (BigDecimal("2",1000) ** ((BigDecimal("2",1000) ** (BigDecimal("1031",1000) - BigDecimal("1",1000))) - BigDecimal("1",1000))) * (BigDecimal("2",1000) - (BigDecimal("2",1000) ** BigDecimal("-3705346855594118253554271520278013051304639509300498049262642688253220148476920",1000))) が計算できない。 https://ideone.com/jyxgVq
597 名前:デフォルトの名無しさん mailto:sage [2023/02/06(月) 12:23:28.94 ID:t0SsOUx4a.net] パソコンのメモリサイズが大きければ、大きくなるのかも。 Bigdecimal の最大桁数の設定は無いの? Elixir では、130GB メモリで、 1秒間に、5千万の小プロセスを起動できたという記事を見た
598 名前:デフォルトの名無しさん mailto:sage [2023/02/23(木) 19:35:23.59 ID:bE7hCXJI0.net] 公式サイトの日本語ドキュメントって内容ものすごく古いままなんだな 例えばC API一覧にrb_compile_cstrが載っているが2.7.7や3.2.1のヘッダファイルにはこの関数は無い(他にも無い関数が多数ある) WebArchiveから1.8のソースを入手してみたら存在したわ 少なくともC APIを使おうと思ったら英語版ドキュメントを参照しないとだめだな
599 名前:デフォルトの名無しさん mailto:sage [2023/02/23(木) 20:04:10.36 ID:bE7hCXJI0.net] 英語ドキュメント読んだらあっさりできましたわ 日本語ドキュメントには「1.xの頃のまま更新していません。最新版は英語版を見てね」と注記しておくべきだと思った そりゃ「まだまだ書き直しが必要です」と書いてあるけどそんな古いままとか思わんやん // rubyスクリプトで定義した関数fをCから呼び出す #include <ruby.h> int main() { ruby_init(); VALUE v = rb_eval_string("def f\np 'Hello'\nend"); rb_funcall(v, rb_intern("f"), 0, 0); ruby_cleanup(0); return 0; }
600 名前:デフォルトの名無しさん mailto:sage [2023/02/24(金) 13:11:19.67 ID:lmfpmsq50.net] やる気見せんかーい
601 名前:デフォルトの名無しさん mailto:sage [2023/02/24(金) 20:23:01.89 ID:esYaZE7H0.net] ごめんなさい609のコードだとVisual Studioではruby_initでクラッシュするみたい 正しい初期化は下記の模様 linuxだと609のコードでも何故か動いてしまったけど // rubyスクリプトで定義した関数fをCから呼び出す #include <ruby.h> int main(int argc, char *argv[]) { ruby_sysinit(&argc, &argv); RUBY_INIT_STACK ruby_init(); ruby_init_loadpath(); VALUE v = rb_eval_string("def f\np 'Hello'\nend"); rb_funcall(v, rb_intern("f"), 0, 0); ruby_cleanup(0); return 0; }
602 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 01:01:19.02 ID:C78KeSuO0.net] 手動でgem installしたものって > gem list | grep -v default: debase (0.2.5.beta2) debase-ruby_core_source (3.2.0) debug (1.7.1) matrix (0.4.2) minitest (5.17.0, 5.16.3) ... をメモっておけば別PCでも同じ環境を再現できますか?
603 名前:デフォルトの名無しさん [2023/03/03(金) 01:21:26.43 ID:kpW9zhd70.net] railsチュートリアルやってるけどminitest難しいなあ 実際の現場も使ってるんですか?それともRspec? どちらも難しいのかね
604 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 19:37:33.36 ID:ggY8eI1VD.net] まず、gem のダウンロード時に、ドキュメントをダウンロードしたくなければ、 各ユーザーのホームディレクトリに、.gemrc ファイルを作って、以下の2行を書いておく install: --no-document update: --no-document 既にダウンロードしたドキュメントも全て削除する 次に、gemでbundler をダウンロードする。 その後は各プロジェクト毎に、gemではなく、 複数のモジュールの依存関係を解決する、bundlerを使えばよい Gemfile/Gemfile.lock ファイルは、 JavaScript のpackage.json/package-lock.json/yarn.lock ファイルと同じ お勧めは、irb を使わず、 VSCode で拡張機能・Code Runner を使う。 これは右クリックメニューから、ファイル全体または選択したコード片を実行できる さらにRuby on Rails なら、WSL2, Linux, Docker Desktop も使う 多言語バージョンマネージャーは、 日本人が作ったanyenv で、rbenv, nodenv なども使える。 asdf もある Renv, crenv, denv, erlenv, exenv goenv, hsenv, jenv, jlenv, luaenv nodenv, phpenv, plenv, pyenv, rbenv sbtenv, scalaenv, swiftenv, tfenv
605 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 08:30:53.03 ID:eEwP+0xWa.net] Code Runnerを気軽に勧める人おるが アレわりと邪悪な拡張だと思うんだよなぁ ちゃんと環境作ったほうがいいし 簡易ですませる場合もコンソール使った方がよくない?
606 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 08:36:16.49 ID:TCOo6fxCa.net] 邪悪というと、語弊があるか …邪道もしくは害悪あたり アレがファイルではなくコードを実行してるあたりを認識せずにハマってる初学者何人か見た
607 名前:614 mailto:sage [2023/03/07(火) 01:04:58.17 ID:oFQklhQHa.net] 山田祥寛のRuby 3 の本でも、MSYS2 のRuby Installer を使っているけど、 VSCode の拡張機能・Code Runner を使っている Code Runner では、この設定をチェックしておくと良い。 Code-runner: File Directory As Cwd Whether to use the directory of the file to be executed as the working directory. そうすると実行時にcd で、そのファイルがある場所へカレントディレクトリを移動してから、 ruby "絶対パス/ファイル名.rb" 又は、ruby "絶対パス/tempCodeRunnerFile.rb" で、そのファイルを実行する tempCodeRunnerFile.rb は、Rubyのコード片をコピーした一時的なファイル 設定項目、executorMap には、多くの言語の実行コマンドが書いてある。 "code-runner.executorMap": { "javascript": "node", "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "python": "python -u", "ruby": "ruby",
608 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 02:03:47.62 ID:vk4APYnr0.net] そもそもWindowsを使うべきでないし、 MSYS2も使うべきでないし、 Code Runnerなんか使うべきでない
609 名前:デフォルトの名無しさん [2023/03/07(火) 08:33:17.73 ID:eOMIe0zX0.net] Progateというプログラミング学習サイトのRuby on Rails5の開発環境を用意しようコースで、rubyのバージョン確認、SQLのインストール、Railsのインストールまではスムーズ行えたんだけど、その次のRailsアプリケーションという所でコマンドプロンプトを使って《rails new ファイル名 -G》のコマンドを入力すると、下の方に下記のようなエラーが複数出てきてその後の《rails server -G》のサーバー起動の時にも同じエラーが出て上手くいかない。 どうすれば良いんですか?エラー内容を見ても分からない。 それぞれのバージョンは 【Ruby】ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [x64-mingw32] 【Rails】Rails 7.0.4.2 【PC】64 ビット オペレーティング システム、x64 ベース プロセッサ エラーは C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:50:in `match?': invalid byte sequence in UTF-8 (ArgumentError) from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:50:in `chop_basename' from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:374:in `plus' from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:354:in `+' from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:420:in `join' from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/settings.rb:444:in `global_config_file' from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/settings.rb:93:in `initialize' from C:/Ruby30-x64/lib/ruby/3.0.0/bundler.rb:331:in `new' from C:/Ruby30-x64/lib/ruby/3.0.0/bundler.rb:331:in `settings' from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/env.rb:20:in `report' from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:72:in `request_issue_report_for' from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:50:in `log_error' from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:109:in `rescue in with_friendly_errors' from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:101:in `with_friendly_errors' from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/bundler-2.2.33/libexec/bundle:37:in `<main>'
610 名前:デフォルトの名無しさん [2023/03/07(火) 10:07:23.72 ID:eOMIe0zX0.net] OSはWindows11 home 22H2です
611 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 10:44:28.93 ID:0yJrO03Z0.net] VisualStudioCodeでRailsの環境構築が上手くできません https://ja.stackoverflow.com/questions/92611/visualstudiocode%E3%81%A7rails%E3%81%AE%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E3%81%8C%E4%B8%8A%E6%89%8B%E3%81%8F%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93 ここにあるのと同じハマり方してるなら、ユーザー名が日本語になってて ハマってるパターンかなあ。 自分ならとりあえず指示通りにC:\TempとC:\Homeフォルダを作ってコマンドプロンプトで set TMP=C:\Temp set HOME=C:\Home して試してみるかな。 駄目なら次は新しくアルファベットのみでユーザー作って試す。 途中で再インストールも辞さない構え。
612 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 10:49:58.83 ID:0yJrO03Z0.net] どうしても解決できないがRailsに触ってみたいなら Railsチュートリアルに従ってCloud9上でやるか(多分クレカが必要) WSLの導入を検討するかかなあ。 昔もフォルダ名にスペースが含まれたり日本語が含まれてて 動かんとかよくあったけどいまだにあるんだなあ。
613 名前:デフォルトの名無しさん [2023/03/07(火) 11:38:27.82 ID:eOMIe0zX0.net] >>611 ユーザー名は日本語ですねwひらがな2文字です。 それがそんなに影響してるんすね