[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2ch.scのread.cgiへ]
Update time : 08/26 09:52 / Filesize : 225 KB / Number-of Response : 739
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 67



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

321 名前:デフォルトの名無しさん [2021/09/28(火) 14:07:16.12 ID:yeB6oI220.net]
ファイルパスから簡単に、ディレクトリ名だけを取り出す方法がありますか?
今は、下のようにやっています

file_path = "C:/Users/Owner/Documents/test/a.txt"

p dir_path = File.dirname( file_path ) # ディレクトリパスを取り出す
#=> "C:/Users/Owner/Documents/test"

p dir_name = File.basename( dir_path )
#=> "test"

322 名前:デフォルトの名無しさん [2021/09/28(火) 14:19:10.90 ID:nD0g4rLvF.net]
file_path = "C:/Users/Owner/Documents/baka.test/a.txt"

323 名前:デフォルトの名無しさん mailto:sage [2021/09/28(火) 14:44:05.17 ID:zeEpbK0KM.net]
>>321
必要充分だと思うがなあ。
自分でメソッドにくくりだすくらいやないの?

どうしても圧縮したいなら、text.sub(%r{.*/(.*)/.*}){$1}とか?
未確認。ワイならやらん。w

324 名前:デフォルトの名無しさん mailto:sage [2021/09/28(火) 16:33:03.83 ID:WAJRktfF0.net]
>>321
標準添付ライブラリの pathname

325 名前:デフォルトの名無しさん [2021/09/30(木) 20:28:46.68 ID:AJpnjzaB0.net]
rubyだけdistrolessイメージない
なんでハブられてるの?
Googleはruby嫌いなの?
https://github.com/GoogleContainerTools/distroless/issues/156

326 名前:デフォルトの名無しさん mailto:sage [2021/09/30(木) 20:37:22.69 ID:I7uygAb2M.net]
Google社内ではRubyの使用が許可されていない
当然だよね

327 名前:デフォルトの名無しさん mailto:sage [2021/09/30(木) 20:40:38.51 ID:BaUXpZJur.net]
>>326
googleって言っても一枚岩じゃないからそれは完全に間違い

328 名前:デフォルトの名無しさん mailto:sage [2021/09/30(木) 21:14:17.31 ID:eVTcYnny0.net]
バージョン互換の低さ、信頼性の低さを考えたら、プロジェクトとして使いにくいっつーのはあるやろな。

329 名前:デフォルトの名無しさん [2021/09/30(木) 22:37:54.54 ID:Q+Yf9LrK0.net]
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw



330 名前:デフォルトの名無しさん [2021/10/01(金) 04:21:27.55 ID:YSb3+a7ia.net]
>バージョン互換の低さ、信頼性の低さを考えたら、プロジェクトとして使いにくい

googleのAPIのことですか?

331 名前:デフォルトの名無しさん mailto:sage [2021/10/01(金) 09:11:32.55 ID:Bf6uh555M.net]
プログラミング言語のシェア的にはdistroless対応の優先順位は極めて妥当
残念だけどもう昔のような人気言語じゃないんだよ、、、
ttps://insights.stackoverflow.com/survey/2021#technology-most-popular-technologies

332 名前:デフォルトの名無しさん mailto:sage [2021/10/01(金) 10:15:08.94 ID:8GSBOhv80.net]
>>330
自分に甘くて、他人に厳しいのはあたりまえやろ。w
おまえは違うのか?

333 名前:デフォルトの名無しさん mailto:sage [2021/10/01(金) 10:34:29.22 ID:PaEGpo5A0.net]
AWS Lambda には、Ruby もある

Chef, Cookpad 製のItamae, AWS CloudFormation のKumogata2 もある。
まあ、Terraform のシェアが高くなったけど

Vagrant の作者・ワシントン大学の学生で、今世紀最大の起業家・
HashiCorp の創業者・Ruby/Go の神・Mitchell Hashimoto も、
今は、Goへ行ってしまった

Goプログラマーを募集中

YouTube で有名な、雑食系エンジニア・KENTA のサロンでも、
Ruby on Rails → Go のキャリアパスを推奨している

PHP は、一生やらなくても良い。
新規の仕事が無いから、給料が上がらない。
保守要員は、給料が低いから

KENTAは常に、給料が高い新規プロジェクトを推奨している

334 名前:デフォルトの名無しさん [2021/10/10(日) 15:27:42.39 ID:QuuYHTx70.net]
pp dmy={"VERSION"=>RUBY_VERSION, "ARGV"=>ARGV, "Dir.pwd"=>Dir.pwd}
でdmy=を消すと
Dir.pwdの . でエラーになっちゃうんですけど
syntax error, unexpected '.', expecting `end'
pp(puts)+hashのリテラルでうまい書き方ないんですか

335 名前:デフォルトの名無しさん mailto:sage [2021/10/10(日) 16:08:30.52 ID:2mgB061S0.net]
>>334
ブロックとして解釈されてエラーになるので
puts({a: “a”})みたいに括弧でくくる

336 名前:デフォルトの名無しさん mailto:sage [2021/10/10(日) 16:45:12.39 ID:QuuYHTx70.net]
>>335
エラーの意味が理解できました
ありがとうございます

337 名前:デフォルトの名無しさん [2021/10/10(日) 18:30:23.02 ID:bTjCEmsH0.net]
classが全く理解できない。1日掛けても理解できない。俺は向いてないのか。。。

338 名前:デフォルトの名無しさん [2021/10/10(日) 20:30:34.61 ID:osHZfZYe0.net]
Rubyのclassはそれ自身がオブジェクトだからねえ。

339 名前:デフォルトの名無しさん mailto:sage [2021/10/10(日) 20:55:11.50 ID:lB7MFpHR0.net]
クラスの型紙を元に実体化させたものが、インスタンス。
クラス自体を変化させたものが、特異クラス

ここで、インスタンスと特異クラスの継承チェーンを考えてみる

最終的にメソッド探索チェーンは、直線になる必要がある。
それで継承チェーンに、インスタンスと特異クラスが順序よく割り込んでくる

インスタンスに無ければ、特異クラスで探す。
特異クラスにも無ければ、継承チェーンを遡って、親クラスのインスタンスで探す。
そこでも見つからなければ、親クラスの特異クラスで探す

みたいに、継承チェーンをドンドン遡っていく



340 名前:デフォルトの名無しさん mailto:sage [2021/10/10(日) 20:56:55.24 ID:Liv3MhTX0.net]
ムリに「理解」しようとしてるからちゃうか。
あちこちのソースを適当に読んでたら、いずれスッと腑に落ちるときがくるやろ。

341 名前:デフォルトの名無しさん mailto:sage [2021/10/10(日) 20:59:01.10 ID:Liv3MhTX0.net]
>>339
こういうふうに、知らない言葉と知らない概念をおっかけて「理解」しようとするのは、素養がなければツラかろう。
最初はとくに適当でええんや。

342 名前:デフォルトの名無しさん [2021/10/10(日) 21:36:30.35 ID:kKlMir+m0.net]
338と339は新人が来てもこの調子なんだろうなぁ

343 名前:デフォルトの名無しさん [2021/10/10(日) 22:52:57.48 ID:fsOtTZslM.net]
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw

344 名前:デフォルトの名無しさん [2021/10/12(火) 00:48:53.92 ID:Ihqyo7Sc0.net]
地獄は怖いよ

345 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 02:49:58.32 ID:7Ch1Hu5l0.net]
スクレイピングに興味があるのですが1時間に1回の頻度のGETだけで訴えられる危険があるって本当ですか?

346 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 03:46:34.01 ID:gq1XFNWx0.net]
はい

347 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 12:07:05.65 ID:xDtz/yW60.net]
「Ruby」という商標についてなんですが
Rubyは同名の商標が多数登録されていますが、問題になった話を聞いたことがありません
他の言語も同様です
なぜ問題にならないんですか?

348 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 12:08:05.01 ID:vH+4cvxG0.net]
はい

349 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 15:50:39.91 ID:TxsSkV/ar.net]
区分が違うからだろ



350 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 21:56:04.74 ID:b+7kI3n60.net]
スクレイピングに興味があるのですがrobots.txtを守っていても訴えられる危険があるって本当ですか?

351 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 23:56:18.76 ID:1eqHtBhs0.net]
訴えられる危険はいつでもどこでもある。
道を歩いていても、家の中にいても。

352 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 02:13:44.51 ID:XIgoRovQ0.net]
>>350
上級者になってからやらないと危険だよ
初心者がよくわからないままやるとサービス妨害になる可能性はまあまあある

353 名前:ハノン mailto:sage [2021/10/29(金) 21:42:34.32 ID:TYU6SVP40.net]
>>352
サービス提供側に原因があるというのにサービス妨害とはこれいかに?

354 名前:デフォルトの名無しさん [2021/11/06(土) 19:23:11.48 ID:NiwSrOA00.net]
>>297

リブラハック事件を念頭に置いて居るのだと思います。
法的リスクを回避する方法はありません。

事業を行うのであれば、あるいは人生を送る以上法的リスクは常にあります。

入門書に記載出来る話ではないです。

リブラハック事件は、不起訴処分となってますが、20日間の勾留となりました。

余談ですが、旧7帝大卒、上場企業所属の場合、余程のことがない限り法的リスクは回避できます。

355 名前:デフォルトの名無しさん [2021/11/06(土) 19:27:41.07 ID:NiwSrOA00.net]
>>350

中小企業で知財を担当してますが、常に訴訟してます。
業務妨害罪で争ったことはありませんが、模造品による損害賠償事件はチョッ中です。

356 名前:デフォルトの名無しさん [2021/11/06(土) 19:31:11.06 ID:NiwSrOA00.net]
>>355

ちなみに、事件ばかり担当すると会社の仕事は超楽です。
裁判期日は多くても2ヶ月に1回だからです。
社内では、暇なおじさんと思われてます。

だから、プログラミング好きには知財は天国です。
まあ、会社によるのかもしれません。

357 名前:デフォルトの名無しさん [2021/11/19(金) 07:32:40.55 ID:UZar/UR10.net]
Ruby on Rails 製のGitLab の時価総額が、1.9 兆円だって!

358 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 10:13:01.84 ID:eyeX0xyMF.net]
なるほどおめでとう
https://gitlab.com/libeigen/eigen

359 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 11:50:44.28 ID:sVKUttQ/0.net]
ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか?



360 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 15:28:09.99 ID:m3nJJ9T10.net]
waiteかければ十分だと思うよ

361 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 23:29:07.13 ID:JKy0RWKD0.net]
botからのアクセスはどこのサイトも来まくってるから、スクレイピングを気にするかは分からないけど、
waitを5秒とかいれとけば。

クレカ明細をスクレイピングしようとしてたら403になって数時間アクセス出来なくなったよ

362 名前:デフォルトの名無しさん [2021/12/17(金) 21:31:46.70 ID:tWB5K5S10.net]
David Heinemeier Hansson(DHH), 2021/12/16

Rails 7: The Demo
https://www.youtube.com/watch?v=mpWFrUwAN88

もう、Rails 7.0.0.rc1 か。
Ruby 3.0.3

363 名前:デフォルトの名無しさん mailto:sage [2021/12/26(日) 19:54:32.13 ID:gUkCfD0ur.net]
Happy Christmas!!

Ruby 3.1.0 Released
https://www.ruby-lang.org/ja/news/2021/12/25/ruby-3-1-0-released/

364 名前:デフォルトの名無しさん [2022/01/09(日) 01:26:06.08 ID:wKoMs7Y50.net]
そいつは、>1 のテンプレをしょっちゅう改変している、テンプレ改変荒らし。
基本的に、ソースコードを書かない香具師は荒らし

「Ruby, Rails, クソチョン」などを、NGワード登録推奨とか、
自分が有利なように、いつもテンプレを改変する

荒らしがスレ主として、居座っているので、
まともな人がスレ立てして、テンプレも元に戻した方がよい

荒らしは必ず、短文で2回以上書き込む。
必ず、複数人がいるように見せかける

365 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 00:21:27.01 ID:MINWORCd0.net]
スレ立てるまでもない質問はここで 158匹目
https://mevius.5ch.net/test/read.cgi/tech/1635193843/538

ここに、YouTube で有名な、雑食系エンジニア・KENTA のサロンの、
Ruby on Rails 初心者用コースの内容を書いておいた

基本的に、Rails以外のフレームワークは、シェアが少ないのでおすすめしない。
学習環境も揃わないので、無理

Railsでは、Railsチュートリアル・Railsガイド・
黒田努の3冊の本・パーフェクト Ruby on Rails・Ruby on Rails 6 エンジニア養成読本とか、
Rubyでは、改訂2版 パーフェクトRuby・改訂2版 Ruby逆引きハンドブックなどの教科書が揃っている

これほど、良い教科書が揃っているフレームワークはない!

Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、
PHP自体がオワコンになってしまったw

日本のウェブ開発の将来は、ほぼKENTAが決めている。
Scala を滅ぼしたのも、KENTA

366 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 11:23:57.64 ID:hewkBnV10.net]
wxrubyのインストールができません。

gem install wxrubyコマンドで
ERROR: Could not find a valid gem 'wxruby' (>= 0) in any repository
と出てインストールできないです。

バージョンはruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x64-mingw-ucrt]

367 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 12:13:19.79 ID:/N9d9IBk0.net]
% gem sources -l
*** CURRENT SOURCES ***

https://rubygems.org/

となる?
あとほんとにbundler経由でなくていいのか再考してみて

368 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 13:32:13.20 ID:hewkBnV10.net]
>>367
>となる?

なります。

369 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 14:14:29.91 ID:/N9d9IBk0.net]
じゃあわからん
$ gem update --system
して更新がもしあれば治るかも



370 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 15:06:21.76 ID:ah8E1hap0.net]
>>366
wxrubyがいつのRubyのときに開発されていたか調べましたか?
wxrubyがいまのRuby 3.1.0p0で動くと思いますか?

371 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 18:29:42.26 ID:hewkBnV10.net]
>>370

そうなんですか。
tk使います。

372 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 18:36:09.58 ID:Eko2QLhP0.net]
知らんがな、っつー話やけどな。w
互換性のなさはなんとかならんのか。

373 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 19:22:50.06 ID:ah8E1hap0.net]
主に使おうとする道具の状態を確認しないのですか?
切れないハサミで紙を切ろうとするのですか?

どうしてもwxrubyを使うなら、せめてrbenvでも良いのでwxrubyが確実に動きそうなruby環境(Ruby 1.9.xぐらい)を用意したほうが賢明です。
あるいは、自分でwxWidgetsをRuby 3.xで動くように頑張ってbindingするか。

ちなみに、わたしはメンドクサクなって、wxWidgetsのcoreなところをRuby 2.7ぐらいでportingしている途中で放置したままです。

374 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 13:46:06.28 ID:Bc4m3wjx0.net]
nokogiriでスクレイピングしようとしていたら
逮捕されるかもしれないと言われましたが
本当でしょうか?

375 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 13:51:05.48 ID:lPS6H26+r.net]
「かもしれない」という事であれば回答はYesでしょう
まあ質問自体馬鹿げてるが

376 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 13:55:29.58 ID:fqPeqqWL0.net]
>>374
本当“かもしれない”ですね

377 名前:デフォルトの名無しさん mailto:sage [2022/01/29(土) 18:54:02.82 ID:NEea/ouUa.net]
>>374
かつて 岡崎市立中央図書館事件 という悲劇があったのだよ
いまならこんなあほな事態は発声しないんじゃないかな、だったらいいな……

378 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 11:03:45.45 ID:erVefguva.net]
Webrick 1.7.0 でドキュメントと異なった動作と、RFCで推奨されない通信が行われた場合にIOタイムアウトまで動作停止する問題を
発見しました(対処方法も特定済み)

報告方法どなたかご存じでしょうか?

379 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 15:03:45.59 ID:nkHg0hKwa.net]
>>374
スクレイピングに限らず、プログラムを動かす事による
アクセス回数と通信容量は気を付けたほうが良いよ

2chみたいにそれが多すぎたらしっかりとアク禁したり弾いたりしてくれるところはまだいいけど
無対策なサイトで管理人が対応できない人だったりすれば
プログラムによるアクセス制限の対応じゃなく法的な対応はありえる



380 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 16:13:06.79 ID:UfZW0QsA0.net]
>>379
どこかの某県図書館だな
結局、アレは業者がアレだったな

381 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 17:31:37.91 ID:zzLecfCS0.net]
>>378
こんなとこで聞くことやないやろ!w

こういうとこのが?
https://www.ruby-lang.org/ja/community/mailing-lists/

382 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 20:03:07.20 ID:TQ6+L4kbr.net]
>>378
協力よろしくお願いします
https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReportJa

383 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 20:00:16.41 ID:lkKOvV4nM.net]
[1,2,3].each{ |i|
next i>2
}
がエラーにならずなかなか原因がわからなかった
正解は
[1,2,3].each{ |i|
next if i>2
}

384 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 02:49:25.03 ID:wRRLv8q1a.net]
>>383
next(exit_value)
break(exit_value)
という構文があって、実行された時のブロックの戻り値が指定した引数の値になる

loop{ break }
=> nil

loop{ break 10 }
=> 10

[1,2,3,4].map do |num|
next 'even' if num.even?
num
end
=> [1, "even", 3, "even"]

385 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 15:54:59.83 ID:UFoAEHlFM.net]
>>384
ありがとうございました、なるほどでした
nextに戻り値は想定外で、別の原因を探していました

386 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 00:35:57.80 ID:rEpsZFEq0.net]
ほ〜、知らんかった

387 名前:デフォルトの名無しさん [2022/02/11(金) 05:43:01.01 ID:kL9RKZ580.net]
nokogiriでhtmlパースをしようと触っているのですが、
DOMの子要素から絞り込みはできないのでしょうか

document.xpath('//div[@class="main"]').each |node|
node.css('div')
↑これだとclass=mainの子要素全体が取れるのですが

node.xpath('//div[@class="target"]')
↑これだとDOM全体から取ってきてしまいます

node.search('//div[@class="target"]')
↑これも同様でした

388 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 07:45:27.90 ID:3E0z2JyYr.net]
>>387
node.xpath('.//div[@class="target"]')

node.search('.//div[@class="target"]')

389 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 07:51:20.39 ID:tPFLgtIg0.net]
XPathの仕様みるのが先やん
https://triple-underscore.github.io/XML/xpath10-ja.html#path-abbrev



390 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 08:15:17.26 ID:kL9RKZ580.net]
>>388
取れました!ありがとうございます!
>>389
XMLパスという仕様書があるのですね
初めて知りました
リンク先まで教えていただきありがとうございます!

391 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 15:10:34.09 ID:901NTZe+0.net]
一旦、ある要素を取得してから、その子孫要素に限定して、
さらに要素を取得していく事もできる

一旦、div.x を取得してから、その子孫内のdiv を取得する

doc = Nokogiri::HTML( <<EOT )
<html><body>
<div class="x"><div class="y"><div class="z"></div></div></div>
<div class="x"><div class="a"></div></div>
</body></html>
EOT

doc.xpath( '//div[@class="x"]' ).each do |x|
x.css( 'div' ).each do |div|
puts div.get_attribute( 'class' )
end
end

出力
y
z
a

392 名前:デフォルトの名無しさん [2022/02/11(金) 15:21:30.61 ID:fEekYUc10.net]
あーあ、やっちゃったね
スクレイピングに手を出したら逮捕されるよ
nokogiriもアンインストールしたほうがいい

393 名前:391 mailto:sage [2022/02/11(金) 18:40:27.30 ID:901NTZe+0.net]
XPath よりも、CSS Selector の方が可読性も高く、簡単。
XPathを使う事は、ほぼ無い

ある属性を持った要素の親要素を取得するとか、かなり複雑なケースに限定される

394 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 08:30:39.25 ID:uRRrzdTb0.net]
配列内の要素の出現回数を求める

ary = [ 1, "a", 2, "b", "a", 1, "a" ]

p results = ary.each_with_object( Hash.new( 0 ) ){ |elem, hash| hash[ elem ] += 1 }
#=> { 1=>2, "a"=>3, 2=>1, "b"=>1 }

Ruby には、下のPython のcollections.Counter みたいな関数がありますか?

import collections

l = ['a', 'a', 'a', 'a', 'b', 'c', 'c']

c = collections.Counter(l)
print(c)
#=> Counter({'a': 4, 'c': 2, 'b': 1})

Rubyで、誰かが作ったものはあるけど
https://gist.github.com/cielavenir/501c0cf491e10d905d4307bdeb2596ea

395 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 08:39:01.42 ID:rK542qf7r.net]
>>394
ない。
できてこんなもん。
ary.uniq.group_by{|i|ary.count i}
=> {2=>[1], 3=>["a"], 1=>[2, "b"]}

396 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 11:58:05.39 ID:yCGAKR370.net]
愚直に書くと
ary.group_by(&:itself).transform_values(&:size)
=> {1=>2, "a"=>3, 2=>1, "b"=>1}

397 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 13:18:13.38 ID:4udJjeRKM.net]
each_with_objectのほうが少しシンプルだけど
他の言語だと使えないからreduce使ってる
uniqとかgroupbyはやや効率悪い気がする

398 名前:デフォルトの名無しさん mailto:sage [2022/03/09(水) 01:16:31.71 ID:bFH5rQfw0.net]
tally
https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/tally.html

399 名前:デフォルトの名無しさん mailto:sage [2022/03/09(水) 05:08:13.88 ID:xyP8cJI4a.net]
[1, "a", 2, "b", "a", 1, "a"].tally
=> {1=>2, "a"=>3, 2=>1, "b"=>1}

ほ〜



400 名前:デフォルトの名無しさん mailto:sage [2022/03/09(水) 06:45:20.85 ID:ld7hWZ5w0.net]
美しい

401 名前:デフォルトの名無しさん (スップ Sd7f-QrL3) mailto:sage [2022/05/01(日) 18:29:19 ID:hArhlqjHd.net]
rails6、ruby2.7を利用しています。
アクセスしてきたリクエストURLのパラメータに「#」が付いた際、paramsにパラメータが含まれてこないのですが、
この内容を取得するにはどうすれば良いでしょうか?

402 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 21:32:54.31 ID:hYMTL+9l0.net]
ムリ。
サーバーには渡されない。

403 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 22:05:48.29 ID:AIbUDPzi0.net]
HTTPリクエストには乗らないけど
ブラウザ上のJSではハンドリングできるからそれで連携可

404 名前:デフォルトの名無しさん (スップ Sd7f-QrL3) mailto:sage [2022/05/02(月) 00:21:18 ID:tduJ9vUQd.net]
ありがとうございます!
ハッシュは取れないのですね…
JSでハンドリングしてみます。

405 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 02:36:19.66 ID:lerz5rr1M.net]
JavaScriptのようにPythonコードをHTML内に記述して実行できる「PyScript」 Anacondaがオープンソースで公開
https://www.itmedia.co.jp/news/articles/2205/09/news161.html

rbScriptも技術的に可能でしょう、だそうです

406 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 07:09:23.20 ID:4KKJ8JThr.net]
可能も何も既存なんだが

407 名前:デフォルトの名無しさん (ワントンキン MM86-3X6i) [2022/05/25(水) 19:57:04 ID:iXIMMJncM.net]
rubyが1番初心者向け?

408 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 20:27:04.41 ID:nspShIcld.net]
JavaScriptだろうな
Rubyは人気急落中で既存のRailsアプリのメンテくらいにしか使われなくなっているから今から入るのはお勧めできない

409 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 01:56:43.24 ID:o8IZTGHvr.net]
webアプリ初心者にはrailsがオススメな反面ruby自体は全く初心者にオススメできないクソ言語



410 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 11:29:28.44 ID:5IS2i0qw0.net]
>>409
PythonとくにPython3よりも、Rubyのほうがええと思うけど?

といいつつも、仕事でTypeScriptばっかり、Railsもわずかにやっとるけど

411 名前:デフォルトの名無しさん (ワッチョイ 7966-W53T) mailto:sage [2022/05/29(日) 08:45:02 ID:5LPeOORh0.net]
JavaScriptって初心者にほんとに勧めて良いものだろうか。

412 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 16:29:01.89 ID:89z2cDQI0.net]
フリーランス向けエージェント「クラウドテック」会員数8万人突破
〜働きやすい環境構築のため、単価向上・全年齢の活躍の場創出・
地方企業のDX推進の取り組みを強化します〜

フリーランスエンジニア専門の案件一括検索サイト「フリーランススタート」、
累計掲載案件数25万件突破!リモートワークの累計掲載案件数35,000件突破!

新規人材の80%がフルリモート希望! IT人材市況動向レポート2021年12月版を公開

人口移動報告 家賃高い、首都圏脱出 「コロナ禍、仕事フルリモート」

クラウドテック、地方企業向け『クラウドテックDX』を開始、
7万人を超えるDX人材が、地方の非IT企業のDX推進を支援

新潟県、移住してきたテレワーカー/フリーランスに最大50万円を支給

テレワークの一般化により、11月にはテレワーク可能案件83.7%へと増加。
2021年、フリーランスのトレンドは「移住&テレワーク」と予測

413 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 16:29:25.82 ID:89z2cDQI0.net]
・フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、
“テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡
・リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、
 業務委託契約の求職者と企業をマッチング 
・1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の
 人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現!
・『ReWorks(リワークス)』リモートワーク特化型転職サイトとして 3月5日 リニューアル
・副業・兼業マッチングサービス「クラウドリンクス」登録者数2万人突破
 中小企業で進む副業人材の採用、96%が継続採用を希望
・フリーランスが活用できる「最大1,000〜3,000万円・補助率50%〜75%」の
『ものづくり・商業・サービス補助金』とは?概要や条件を解説
・茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金
・長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給

414 名前:デフォルトの名無しさん [2022/05/29(日) 16:30:01.42 ID:89z2cDQI0.net]
【根拠あり】フリーランスエンジニアは年収862万円取れて普通という話【高収入】

【こんな僕が】フリーランスエンジニアで月収100万円を達成した5つの方法

ITフリーランスエンジニアの年収|会社員との違いや独立後の案件の取り方

月収90万のITフリーランスプログラマー・SEが選んでる在宅案件はこんな案件です

フリーランスの年収は平均いくら?年収1000万円以上の割合とは

2021年最新版 エンジニアの平均年収はいくら?全体平均と比べて○○円も高い!

【高すぎると不利】もっともコスパの良い年収は?「最適年収」3パターンについて解説

オリコ、ITフリーランス専用ゴールドカード「techcareer EX GOLD for Biz Card」を発行

415 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 08:49:29.66 ID:+82mqA6e0.net]
Rubyのcase文にはwhenの代わりにinを使う場合がありますか?
バージョンによって違うのでしょうか?

416 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 09:09:46.99 ID:WMuSBVaoM.net]
>>415
inはパターンマッチ

417 名前:415 (ワッチョイ a136-v00t) mailto:sage [2022/05/30(月) 12:21:37 ID:+82mqA6e0.net]
>>416
どうもありがとう!
あれから更に調べていたらRubyのcase文には2種類あると説明している
ドキュメントに出遭いました。
1つがelsifを持つif文の代用で、もう1つがパターンマッチ(?)らしいですね。
Rubyは内部的に===を使うんだそうです。
ただしその場合もwhenが使われていたように思います。inと違うのでしょうか。

418 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 13:10:50.78 ID:4ToCs4sv0.net]
caseのパターンマッチは3.0で本採用されたのにマニュアルになくって
変更履歴とRedmineみないとわからんのが残念

419 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 18:55:58.59 ID:Jfa9bHCo0.net]
PythonてAI関係でデフォになってるのもあって持て囃されてるけど
初心者向きかというとインデントがあるのとかどうかなーとは思う
Rubyはそのへん柔軟でとっつきやすい感じはする

https://xtech.nikkei.com/atcl/nxt/column/18/00682/061100007/



420 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 20:11:00.95 ID:4ToCs4sv0.net]
コロン忘れるってテキストで構造化文書(というほど大層なもんでもない)書いたことないんか
見出しにアンダーライン引くみたいに行末にコロン置いて区切りを表現する

421 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 21:52:06.42 ID:PemXr08JM.net]
>>418
日本語はメンテされてないの?
英語は普通にあるけど
https://docs.ruby-lang.org/en/master/syntax/pattern_matching_rdoc.html






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<225KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef