Ruby 初心者スレッド Part 66

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)
垢版 |
2020/01/04(土) 01:15:34.30ID:X7t3Qsuc0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 65
https://mevius.5ch.net/test/read.cgi/tech/1545421414/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
851デフォルトの名無しさん (アウウィフ FFcd-GqKp)
垢版 |
2020/11/04(水) 10:08:06.70ID:wF8lqQTTF
Ruby、信者は、おことわり
2020/11/04(水) 23:31:34.08ID:oOk5Pqvr0
一部のメソッドで、遅延評価できる

instance method Enumerable#lazy
lazy -> Enumerator::Lazy

map/collect, flat_map/collect_concat
select/find_all
reject
grep
take, take_while
drop, drop_while

一貫性のため、ブロックを渡さないケースのみlazy
zip, cycle
2020/11/04(水) 23:51:12.04ID:lTVc+I7v0
Enumerableは高階関数とともに脱初心者の一番の目安
この2つをパパっと作って使えるようになれば初心者は卒業
2020/11/05(木) 23:53:13.53ID:lCe7ZMVj0
Ruby の強みは、

Array, Hash, Enumerable, Enumerator の豊富なメソッドを、
メソッドチェーンでつなげていくプログラミング

どういうメソッドがあるのか、じっくり見ておくべき!
2020/11/07(土) 23:50:43.02ID:DktN1QwS0
TIOBE Index、perlより下じゃん
2020/11/08(日) 03:09:45.71ID:YnyAcD/m0
とうとうperlより下になったかw
誕生経緯w存在意義が…w
857デフォルトの名無しさん (ワッチョイ debb-+U3E)
垢版 |
2020/11/08(日) 10:17:52.02ID:WJSuSySW0
助成金ひっぱりんごビジネス
2020/11/08(日) 10:46:31.03ID:msYgn7TJM
エンベデッド詐欺
ストリーム詐欺
2020/11/08(日) 13:35:54.75ID:P6MM9gKe0
問題 Rubyを開発したのはだれか
答え 2ちゃんねる開発者でもあるひろゆき

根拠
https://programmercollege.jp/column/16456/
2020/11/08(日) 16:28:40.45ID:2D8TgavPM
もうすっかりマイナー言語だな
861デフォルトの名無しさん (ワッチョイ 8101-aWq5)
垢版 |
2020/11/09(月) 21:51:36.37ID:A/fRbmyh0
初めまして、現在の状況はRuby、Windows 10、 VSCode(エディターのみ)です。
以前Basic言語をやってましたがRubyの言語は勉強しました。
1.RubyでVSCodeの便利なデバッガーは何がいいですか。
2.RubyでVSCodeのインターネットまたは本等の使い方を勉強したい。
3.gemへのログインの方法を知りたい。
以上の3点知ってる人がいましたら教えてください、お願いします。
2020/11/10(火) 00:15:08.25ID:TotITmpP0
>>789
に書いた

漏れは、Windows 10, WSL1, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う

WSL2 と言う、Hyper-v を使ったものもあるけど、
安定バージョンかどうかは、知らない

VSCodeの便利な拡張機能については、VSCodeのスレで聞いてください。
本は、徹底解説Visual Studio Code、本間咲来、2019/9

漏れのおすすめ拡張機能、Code Runner
右クリックメニューから、選択したコード、またはファイル全体を実行する

この設定をチェックしておく
Code-runner: File Directory As Cwd
Whether to use the directory of the file to be executed as the working directory.

デバッガーは漏れは、p, pp, tap などで見てる

VSCodeの拡張機能では、Ruby というものかな?
8個の拡張機能をパックした、Ruby extension pack とか?
漏れは、よく知らない

gem でインストールするのは、bundler だけ!
その後は全て、bundlerでインストールする

gemは、依存関係を考慮しなかったっけ?
gemでインストールしても、依存関係で動かないかも

gem, bundler については、検索して調べてください!
2020/11/10(火) 07:08:10.23ID:yOpM0tMJr
Rubyで本の使い方を勉強するってどういう意味?
864デフォルトの名無しさん (ワイーワ2 FF1a-D/bg)
垢版 |
2020/11/10(火) 12:09:50.03ID:08CevRpcF
Ruby 卒業しようぜ さっさと
865デフォルトの名無しさん (ワッチョイ ed5f-D0pj)
垢版 |
2020/11/12(木) 23:43:36.78ID:9JGUhgPP0
g++です
undefined reference to `ruby_init'
と表示されます
たぶんdllに入ってると思うのですがどこにあるのでしょうか?
よろしくお願いします
866デフォルトの名無しさん (ワッチョイ ed5f-D0pj)
垢版 |
2020/11/12(木) 23:44:28.91ID:9JGUhgPP0
versionは2.7.0です
2020/11/12(木) 23:46:31.86ID:1kfP87l60
「dumpbin Windows」で検索!
868デフォルトの名無しさん (ワッチョイ ed5f-D0pj)
垢版 |
2020/11/12(木) 23:48:50.89ID:9JGUhgPP0
そもそもDLLが見つかりません
ほんとお願いします
2020/11/13(金) 00:13:10.26ID:1m9BN6xD0
>>867
初心者には意味不明です
2020/11/13(金) 00:22:55.68ID:LLS1FCOb0
g++ は、GNU の GCC に含まれる、C++コンパイラ。
GNU で、Windows 向けのDLL を作るの?

RubyInstaller か?
MSYS2/MINGW の、RubyInstaller Development Kit(DevKit)有りか?
ridk install がどうしたこうしたとか?
よく知らないけど

https://rubyinstaller.org/downloads/

Windows 10, WSL, Linux でコンパイルする方法なら、
>>789
に書いたけど
2020/11/13(金) 00:28:08.04ID:1m9BN6xD0
c++にruby_initを組み込んでみたいです
コンパイルエラーがでます
さっぱりわかりません
2020/11/13(金) 00:34:11.29ID:1m9BN6xD0
#include <ruby.h>

int main() {
// Rubyインタプリタの初期化
ruby_init();

// スクリプトの実行
rb_eval_string("print 'Hello World!'");

// Rubyインタプリタのクリーンアップ
ruby_cleanup(0);
}
2020/11/13(金) 00:55:32.20ID:4qY0TlDt0
「初心者」のやることじゃねえ。w
2020/11/13(金) 01:16:13.61ID:LLS1FCOb0
正気?
初心者が、こんな事をする訳ないだろ

C/C++ を、数年以上やってからの話
2020/11/13(金) 01:17:12.74ID:1m9BN6xD0
そう言わずにコンパイルできる方法を教えてください
2020/11/13(金) 01:52:06.56ID:LLS1FCOb0
ffi は C や C++ ように作成された共有ライブラリを、
Ruby で扱うことができるようにするためのライブラリです

libffi を使っているので、事前にインストールが必要です。
NativeExtensions を直接扱わずに、C を操作できます

ruby ffi 入門
https://hawksnowlog.blogspot.com/2019/04/getting-started-ruby-ffi.html
2020/11/13(金) 01:57:04.06ID:1m9BN6xD0
その逆が知りたいわけで。。。
2020/11/13(金) 02:03:07.72ID:LLS1FCOb0
C/C++ から、Ruby を呼ぶ方法か

検索すれば?
2020/11/13(金) 02:06:45.73ID:1m9BN6xD0
検索したんですけど見つかりませんでした
2020/11/13(金) 03:33:11.86ID:LLS1FCOb0
Windows では、無理じゃない?

Linux で探した方が良いかも
2020/11/13(金) 03:35:06.10ID:ZgWaq86m0
Windows使ってるってだけで教祖様の号令一下で石投げられるのがRubyコミュニティだからな
Pythonにしとき
2020/11/13(金) 04:42:47.05ID:b8ug5Yf30
C/C++ から Python を呼ぶ方法なんて袋叩きに逢うのが
Python コミュニティですが、それがなにかどうかされますた???
2020/11/13(金) 04:53:52.48ID:1m9BN6xD0
難しそうなのであきらめました
2020/11/13(金) 06:40:07.62ID:LLS1FCOb0
普通は、Ruby から、C 製のNArray みたいな高速なライブラリを呼ぶ

逆に、Cから、Rubyを呼ぶ事はない。
普通に、Rubyコマンドを呼べば良いだけ

例えば、Rubyスクリプト内で、Python3 コマンドを呼ぶ

str = `python3 -c 'print( "あ" )'`

puts str #=> あ
2020/11/13(金) 07:00:14.39ID:PGsPGVPV0
まつもと:それから「Backquotes」の地上げも考えていたんですけども、Backquotesをするとシェルで実行して結果を文字列で返すってやつですね。

(参加者から「いける、いける」の声)

まつもと:なんかあの辺で「いける、いける」って言ってる人がいますけど、信じない(笑)。なので、これももうちょっと先で、もう1回くるかもしれませんが、少なくとも3.0では死なないということです。
https://logmi.jp/tech/articles/321308

バージョンによって使えてたクォートが使えなくなったりするクソ言語
2020/11/13(金) 08:51:10.39ID:LLS1FCOb0
Python 2/3 のコミュニティーの分断は、地獄だった

だからRubyは、2/3 で絶対に分断させない!
2020/11/13(金) 09:27:17.47ID:PGsPGVPV0
マイナーバージョンで細切れ分断してるからな。
その辺は抜かりない。
888デフォルトの名無しさん (ワッチョイ 159b-NSHw)
垢版 |
2020/11/13(金) 12:02:41.44ID:RWm0omqa0
>>882
>C/C++ から Python を呼ぶ方法なんて袋叩きに逢うのが Python コミュニティ
初めて聴いたけどどこ情報?
889デフォルトの名無しさん (ワッチョイ 159b-NSHw)
垢版 |
2020/11/13(金) 12:09:12.42ID:RWm0omqa0
http://funktor.org/programming/cpp/embedding-ruby
890デフォルトの名無しさん (ワッチョイ 7501-NSHw)
垢版 |
2020/11/13(金) 14:17:08.52ID:/AMzz1sP0
>>881
「私がWindowsを嫌っているのではなく、WindowsがRubyを嫌っているのだ。だからWindowsを使ってはいけない。」と教組様が言ってたけど。
891デフォルトの名無しさん (ワッチョイ 159b-NSHw)
垢版 |
2020/11/13(金) 14:22:10.08ID:RWm0omqa0
教祖も言ってるけど
windowsならrubyやめてpython使う方が楽ちん
2020/11/13(金) 14:47:22.41ID:b3aeLCbPa
エラーが出たので助けてほしいです…
ターミナルでrails db:createをするの下記のような文が出ます…

Traceback (most recent call last):
4: from bin/rails:3:in `<main>'
3: from bin/rails:3:in `load'
2: from /Users/tech-camp/projects/tweet/bin/spring:10:in `<top (required)>'
1: from /Users/tech-camp/projects/tweet/bin/spring:10:in `read'
/Users/user/projects/tweet/bin/spring:10:in `read': No such file or directory @ rb_sysopen - /Users/user/projects/tweet/Gemfile.lock (Errno::ENOENT)
2020/11/13(金) 14:49:36.90ID:b3aeLCbPa
エラーが出たので教えてほしいです…
ターミナルでrails db:createをしたらこのようになりました…


Traceback (most recent call last):
4: from bin/rails:3:in `<main>'
3: from bin/rails:3:in `load'
2: from /Users/user/projects/tweet/bin/spring:10:in `<top (required)>'
1: from /Users/user/projects/tweet/bin/spring:10:in `read'
/Users/user/projects/tweet/bin/spring:10:in `read': No such file or directory @ rb_sysopen - /Users/user/projects/tweet/Gemfile.lock (Errno::ENOENT)
2020/11/13(金) 15:16:02.12ID:9KKZC7FrM
bundle installしてないとか
2020/11/13(金) 15:45:24.78ID:b3aeLCbPa
まさにそれでした…!
ありがとうございます…!
2020/11/13(金) 17:04:48.25ID:b4HB1/RK0
>>865
$ export PKG_CONFIG_PATH="$HOME/.rbenv/versions/2.7.2/lib/pkgconfig"
$ gcc $(pkg-config --cflags --libs ruby-2.7) hello.c -o hello

上の例はWindowsじゃなくmacOSでrbenv使ってる環境だけど
Windowsでも.pcファイルあると思うからpkg-configで必要なオプション取得すれば良いと思うよ
897デフォルトの名無しさん (ワッチョイ ed5f-D0pj)
垢版 |
2020/11/17(火) 15:37:28.16ID:+8mZ0oHh0
拡張ライブラリについての質問です
一次元配列の場合はデータを取得できたんですけど、
二次元配列の場合はどうすればいいんでしょうか?
よろしくお願いします

//一次元配列の場合
num = rb_ary_entry(p_val, offset);
a = FIX2INT(num);
2020/11/17(火) 18:11:21.31ID:PuHDpULa0
VALUE, FIX2INT, RARRAY, rb_ary_entry

これは、Ruby なのか?
奇妙
2020/11/17(火) 18:42:35.55ID:PuHDpULa0
Ruby では、ary[offset] だろ。
2次元配列なら、

ary = [ [1, 2], [11, 12], [21, 22] ]

ary[0][1] = 99
p ary #=> [[1, 99], [11, 12], [21, 22]]

p ary.length #=> 3
p ary[0].length #=> 2
2020/11/17(火) 19:23:04.59ID:yKNV/xx90
>>897
配列要素オブジェクトを多段にRArray*にキャストしたらええんちゃうの?知らんけど。

https://docs.ruby-lang.org/ja/latest/function/rb_ary_entry.html
https://docs.ruby-lang.org/ja/latest/function/RARRAY.html

>>898
知らんかったら黙っとくか、ググるくらいしろ。
901デフォルトの名無しさん (ワッチョイ 4b5f-cChY)
垢版 |
2020/11/18(水) 19:49:47.73ID:XrXdqU1w0
やっと解りました。。。
どうもありがとうございました!
ary = [[0,1],[2,3],[4,5]]


num0 = rb_ary_entry(ary_val, 2);
num1 = rb_ary_entry(num0, 0);
a = FIX2INT(num1);

num0 = rb_ary_entry(ary_val, 2);
num1 = rb_ary_entry(num0, 1);
b = FIX2INT(num1);

sprintf(buf, "%d , %d", a, b);
MessageBox(NULL, buf, "", MB_OK);
902デフォルトの名無しさん (ワッチョイ 4b5f-cChY)
垢版 |
2020/11/24(火) 05:57:29.80ID:tcZG3tlz0
ocraを実行してexe化したのですが、
libssp-0.dllがないというエラーが出てフリーズしました
放っておけばそのうちocraがバージョンアップで対応してくれるんでしょうか?

プログラムは、

puts "hoge"

だけです
2020/11/24(火) 06:47:14.40ID:/T/Ll6K6r
フォルダ名に日本語混ざってるとocra使えないからそれかもね
2020/11/24(火) 06:50:52.14ID:/T/Ll6K6r
日本語Windows環境ならocraよりneri使ったほうがいいと思うよ
905デフォルトの名無しさん (ワッチョイ 4b5f-cChY)
垢版 |
2020/11/24(火) 07:16:55.53ID:tcZG3tlz0
どちらもだめでした
MinGWが64bitなのがいけないいんですかね?
neriの場合は、「アプリケーションを正しく起動できませんでした」
と出ます
日本語は使ってないですよ
2020/11/24(火) 09:00:20.18ID:gfNKbZsOa
最近同じエラー吐いてる人が多いからマルチバイト文字とかじゃなくてocraのバグじゃね
今つっかかってる場所はlibssp-0.dllの有無
libssp-0.dll入手して適切なフォルダに入れれば動くかもしれないし、それを超えてもまた次のエラーメッセージ出るかもしれない

こういう場合むしろ古いバージョンのocraやrubyを使ったほうが正常に動いたりするよ
特定のバージョンとの相性で上手く動作したらむやみにアップデートしないことな
2020/11/24(火) 09:01:18.97ID:XRJpBbZB0
ひょっとして、フォルダ名・PC のユーザー名に、日本語を使っていないか?

>neriの場合は、「アプリケーションを正しく起動できませんでした」
もっと正確なエラーメッセージを取得して、それで検索すれば?

どういう理由で起動できないのかを、知りたい
色々な理由があるから、このメッセージだけでは原因を特定できない

Linux みたいに、Windows には、OS のログとか無いのか?
2020/11/24(火) 09:46:40.72ID:gfNKbZsOa
日本語じゃないって否定してんのに直前のレスも読めねーのか
https://stackoverflow.com/questions/64368535/ruby-compile-with-ocra-error-libssp-0-dll-not-found

Maybe you don't have the libssp-0.dll file installed.
You can download it from https://www.dll-files.com/libssp-0.dll.html
then placing the file where the error says.
909デフォルトの名無しさん (ワッチョイ 4b5f-cChY)
垢版 |
2020/11/24(火) 12:56:57.47ID:tcZG3tlz0
neriのエラー
アプリケーションを正しく起動できませんでした(0xc000007b)。[OK]をクリックしてアプリケーションを閉じてください。

libssp-0.dllはMinGWでgetするdllです

バグか64bitに対応してないかのどちらかだと思います
暫く様子を見ることにしました
あと古いバージョンも試してみます
2020/11/24(火) 20:33:08.36ID:GlJ0k2Kgr
こっちは64bit windows10でneri使えてるけどなぁ
911デフォルトの名無しさん (ワッチョイ 775f-FP8+)
垢版 |
2020/11/25(水) 06:01:29.82ID:vPLi7EhQ0
2.4で動きました
しかし自作のsoファイルをソースに含めると
ocra test.rb --dll ddddd.so

実行すると
FATAL ERROR: Bad signature in executable.
2020/11/25(水) 12:15:29.69ID:BeZXjuPe0
自分でエラーを作っているから、原因は君にしか分からない

そのエラーメッセージで検索すれば?
913デフォルトの名無しさん (ワッチョイ b72c-8s6k)
垢版 |
2020/11/25(水) 12:51:53.26ID:BeZXjuPe0
文字列内にある、URL を抜き出す、URI.extract、
または、正規表現のURI.regexp は、

Ruby 2.2 から obsolete になっているけど、
それに代わるものは、何ですか?

require 'uri'

URI.extract("文字列", ['http','https'] )

p URI.regexp =~ "http://www.ruby-lang.org/"; #=> 0
914デフォルトの名無しさん (ワッチョイ 775f-FP8+)
垢版 |
2020/11/25(水) 16:47:47.83ID:vPLi7EhQ0
>>912
neriでexe化できました
ocraは相変わらずですが
ありがとうございました!
2020/11/26(木) 17:59:03.02ID:ACzSTlzfa
>>913
text ="
https://i.imgur.com/UJbFSti.jpg
http://www.ruby-lang.org/
"
text.scan(URI.regexp).map { Regexp.last_match }.each { |uy|
puts uy
}
916デフォルトの名無しさん (ワッチョイ b72c-OOND)
垢版 |
2020/11/27(金) 02:05:30.36ID:lOUpIwv20
>>915
出力
http://www.ruby-lang.org/
http://www.ruby-lang.org/

2回とも、同じものが表示されるから、ダメ!
2020/11/27(金) 07:36:58.12ID:8Z+4V8c6r
text.scan(URI.regexp){|v| puts '%s://%s' % [v.shift, v.compact.join]}
2020/11/27(金) 08:41:48.24ID:lOUpIwv20
text.scan( URI.regexp ){ |v| p v }

出力
[ "https", nil, nil, "i.imgur.com", nil, nil, "/UJbFSti.jpg", nil, nil ]
[ "http", nil, nil, "www.ruby-lang.org", nil, nil, "/", nil, nil ]

この奇妙な、nil は何?
それに、:// が飛ばされている
2020/11/27(金) 16:29:26.66ID:6fRHx8hla
てかURI.regexpもobsoluteだった
2020/11/27(金) 17:54:13.89ID:tPIe9OcJ0
https://bugs.ruby-lang.org/issues/2542
はっきりした理由は書いてないけど
RFC2396自体がobsoleteになって新しくRFC3986/3987対応のregex考えるの大変だから
URI.extract/URI.regexpはobsoleteになったように見える

なので今の仕様で問題ないなら使えばいいんじゃないかって気がする
warningを避けたいならURI::DEFAULT_PARSER.extractを直接使ってもいいけど中身は同じ
もう少しちゃんとしたのがよければtwitter-textのExtractor.extract_urls
2020/11/27(金) 21:04:45.51ID:8Z+4V8c6r
qiitaにRFC3986対応の正規表現とか出てるけどそんな大変なのかね
詳しく知らんからなんも言えないけど
2020/11/27(金) 21:32:51.26ID:OZT1ua320
多言語対応まで考えるとややこしいから、すっぱりあきらめたんやろ。
923デフォルトの名無しさん (ワッチョイ b72c-OOND)
垢版 |
2020/11/28(土) 11:23:25.42ID:FGpMIdZG0
RFC3986に準拠したURI検証用正規表現
https://qiita.com/shimataro999/items/fced9665fa970c009c1e

HTTP/HTTPS の所には、こういうのが出てくるから、これらが特殊文字なんだろう。
もっと簡単な正規表現で良い

終了点を知りたい。ある文字が出たら、そこで終わりみたいな。
URL で使われない文字

^https?:\/\/

|[!$&'()*+,;=]|:)*@)?
|[!$&'()*+,;=])*)(:\d*)?
|[!$&'()*+,;=]|:)+
|[!$&'()*+,;=]|[:@]))*)*

[-._~]
924デフォルトの名無しさん (ワッチョイ b72c-OOND)
垢版 |
2020/11/30(月) 03:48:29.64ID:r8rQ87Qr0
コンテンツをファイルに書きこみながら、同時にハッシュ値も求める場合、
Go では、io.MultiWriter で、2回読み込まずに処理できるらしいが、

Ruby にも、こういう機能がありますか?
925デフォルトの名無しさん (ワッチョイ ffbb-BCf+)
垢版 |
2020/11/30(月) 20:22:04.13ID:G81cwQG00
RailsチュートリアルをRubyの言語自体の入門書としてみた場合、一般的な入門書の何割ぐらいをカバーしてるものなのですか?
2020/11/30(月) 21:45:48.29ID:r8rQ87Qr0
Rails チュートリアルは軽く「たのしいRuby」の10倍以上はある

MVC は、構造・デザインパターンなどを学ぶのが大変

おまけに、Linux・サイト製作の基本知識とか、
データベース・ERB・HTML・CSS/SASS・JavaScript・Webpack・テストとか
2020/11/30(月) 22:12:15.34ID:ifp6ptD/0
そして、それでいて文法やメソッドなどの基礎的なところをすっとばしている可能性が。w

要するに、方向性が違うので、どっちが他方をどう含んでるかは何とも言えんやろ。
2020/11/30(月) 22:44:30.64ID:r8rQ87Qr0
入門書で文法を学んだら、Enumerable のメソッドの内容を見てから、

プログラミングのお題スレの問題を解いたり、
テキスト処理などを少しやった方が良いと思う

Rails チュートリアルは、時間が掛かるから

まあでも、ウェブサイトの構築運用の最短距離は、Linux・AWS・Rails。
バックエンド・エンジニアなら、Linux・AWS・Ruby
2020/12/01(火) 01:00:57.88ID:bLJR8T1fa
3割くらいじゃね
あと別にrubyの魔術コードを書けたり読めたりしなくても生きていける
2020/12/01(火) 21:27:16.65ID:gqqffooe0
ちょ、DateTimeがdeprecatedになってるんですが・・・
これいつから?
2020/12/01(火) 23:02:19.70ID:uBfLZ+080
さすがRuby!w
おどろきの互換性。
2020/12/01(火) 23:28:41.06ID:KOqkaYUf0
wwwwww
2020/12/02(水) 10:02:26.56ID:WhLorZrAM
2.5からだね
なお英語版ドキュメントへの記載を忘れていたためRails勢には全く認知されておらず最近になって混乱を引き起こしている模様
これがRubyクォリティ
2020/12/02(水) 10:21:56.70ID:s/Tj40p50
な?ww
マイナーバージョンアップで互換性崩れるだろ?www
2020/12/02(水) 12:09:59.52ID:X5mOhjXr0
>>933
2.5からというソースある?
9末に特にアナウンスもなく変更されてるように見えるんだけど
https://github.com/rurema/doctree/commit/0645aad1d9107fa4020269f12ca9a21ec6bd859c

deprecatedになっても削除されるものじゃないから実害はないんだけど
さすがにこれはやり方が乱暴
936デフォルトの名無しさん (ワッチョイ 732c-lBG8)
垢版 |
2020/12/02(水) 12:39:09.20ID:vDg6xkSY0
DateTime は非推奨で、代わりに、Time を使うこと。
つまり、Date, Timeを使う

DateTime < Date < Comparable

Time < Comparable
937(u_・y) ◆e6.oHu1j.o (アウアウウー Sa08-9rBX)
垢版 |
2020/12/02(水) 17:21:15.67ID:LINF+1vva
https://docs.ruby-lang.org/ja/2.4.0/class/DateTime.html
https://docs.ruby-lang.org/ja/2.5.0/class/DateTime.html
2020/12/02(水) 22:11:56.65ID:n0CYjqknr
>>934
互換性は崩れてないじゃん
2020/12/02(水) 23:36:25.61ID:26rcFOAE0
deprecatedで混乱するもんなの?
廃止じゃないでしょ?非推奨でしょ?

そりゃ書き換えないといけないが
普通deprecatedになってから書き換えるでしょ?
2020/12/02(水) 23:39:12.64ID:26rcFOAE0
Ruby開発勢ならなんでいきなりdeprecatedになってるんだ?って
なるかもしれないけど、Rails勢は所詮Ruby使ってるだけの人たちだし
2020/12/03(木) 03:48:48.84ID:1lle3h49a
その身朽ちても仕様変更の激しい言語の代名詞としてruby生き残ったりして
2020/12/03(木) 03:50:09.86ID:QOvIykSz0
言語界のテセウスの船wwww
2020/12/03(木) 04:49:29.49ID:GO6EbsS10
rails自体によるdeprecatedなんていくらでもあるしそんなに騒ぐようなものでは無い
2020/12/03(木) 09:35:07.22ID:QOvIykSz0
名実ともにrailsが本体、rubyはそのバッテリーだなwww
2020/12/03(木) 10:20:11.90ID:2qogV6iv0
>>937
ソースの https://github.com/rurema/doctree/blob/master/refm/api/src/date/DateTime では
バージョンに関係なく deprecated になってるから、まだ変更が反映されてないだけですね

require 'open-uri'
%W[ 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 ].each{|ver|
open( "https://docs.ruby-lang.org/ja/#{ver}/class/DateTime.html" ) {|f|
puts "#{ver} #{( f.read.force_encoding( Encoding::UTF_8 ).match( /\bdeprecated\b/ ) )? "true ": "false"} #{f.last_modified.localtime.strftime( '%Y/%m/%d %T %z' )}"
}
}
#=>
2.3.0 false 2018/08/19 18:16:47 +0900
2.4.0 false 2020/04/10 09:17:55 +0900
2.5.0 true 2020/10/25 09:17:38 +0900
2.6.0 true 2020/10/25 09:17:11 +0900
2.7.0 true 2020/10/25 09:16:43 +0900

>>935 仰るとおり、9月の変更が反映されているかどうかのようです
2020/12/03(木) 12:06:44.28ID:7EFKRkup0
先日のURIのやつもそうだけど、過剰でもう手におえなさそうな実装を切ろうとしてんのかな。

来るべきRuby3に向けてか?
2020/12/03(木) 12:09:49.47ID:Glofd6fS0
>>945
なるほど、2.4はサポート切れてるから2.5以降だけリファレンスを更新したんだろうね

Railsとか本番で使うシステムは特殊な用途以外はTimeかTimeWithZone使ってるから別にいいんだろうけど
ちょっとしたツールでactivesupport使うまでもないようなものはTimeじゃなくDateTime使うことが多かったから
急にdeprecatedになってて驚いた
2020/12/03(木) 18:12:31.59ID:PfGMH4zi0
deprecatedで驚くのは中級以上の証
初心者は「まぁ動いてるからヨシ!」
2020/12/03(木) 20:52:46.44ID:rS3QJvGw0
ルビー初心者なんですがうまく動かなくて悩んでいます。
ここで質問さしていただいてもいいでしょうか?
2020/12/03(木) 21:12:35.91ID:hX6RFB1N0
どうぞ
2020/12/03(木) 21:16:41.53ID:QtB29qoZr
>>949
OSとruby -vの結果とエラーログを貼ってください。
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況