プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 61
https://mevius.5ch.net/test/read.cgi/tech/1503644351/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby 初心者スレッド Part 62
■ このスレッドは過去ログ倉庫に格納されています
2017/11/24(金) 00:35:29.31ID:rLZHdQ3Q
735デフォルトの名無しさん
2018/01/31(水) 00:19:33.04ID:ah9e2u9N >>719
にも書いたけど、
>autocomplete-ruby: exec error: Error: Command failed: ~/.rbenv/versions/2.4.1/bin/rsense
> start --port 47367 --path /Users/{ユーザー名}/Programming/ruby-book
これを、1行で打たないといけない!
これを、rsense の後ろで、改行したらダメ!
それか、{ユーザー名} のユーザー名に全角文字を使ったとか、半角空白が入っているとか。
どこかに半角空白が入っていると、そこで区切られるから、引数が多くなるのでエラーになる。
だから、" " で囲う必要がある
--path "/Users/{ユーザー名}/Programming/ruby-book"
これを、" " で、囲ってみ
>>731
エラーメッセージが、no such directry から、command not found に変わったなら、
rsense コマンドは使えるけど、たぶん、そのサブコマンドが間違っている
>Usage: rsense <start|stop|restart>
rsense の後に、これらのサブコマンドを正しく続けなければならない
>>721
にも書いたけど、
~/.rbenv/versions/2.4.1/bin/rsense のように、パスを付けて書かなくても、
単に、rsense と打っても、実行ファイルを探せる
rsense start --port 47367 --path "/Users/{ユーザー名}/Programming/ruby-book"
それと、Linux なら、/var/log の下にあるログファイルを見て、
もっと詳しいエラーメッセージを取得して検索する
にも書いたけど、
>autocomplete-ruby: exec error: Error: Command failed: ~/.rbenv/versions/2.4.1/bin/rsense
> start --port 47367 --path /Users/{ユーザー名}/Programming/ruby-book
これを、1行で打たないといけない!
これを、rsense の後ろで、改行したらダメ!
それか、{ユーザー名} のユーザー名に全角文字を使ったとか、半角空白が入っているとか。
どこかに半角空白が入っていると、そこで区切られるから、引数が多くなるのでエラーになる。
だから、" " で囲う必要がある
--path "/Users/{ユーザー名}/Programming/ruby-book"
これを、" " で、囲ってみ
>>731
エラーメッセージが、no such directry から、command not found に変わったなら、
rsense コマンドは使えるけど、たぶん、そのサブコマンドが間違っている
>Usage: rsense <start|stop|restart>
rsense の後に、これらのサブコマンドを正しく続けなければならない
>>721
にも書いたけど、
~/.rbenv/versions/2.4.1/bin/rsense のように、パスを付けて書かなくても、
単に、rsense と打っても、実行ファイルを探せる
rsense start --port 47367 --path "/Users/{ユーザー名}/Programming/ruby-book"
それと、Linux なら、/var/log の下にあるログファイルを見て、
もっと詳しいエラーメッセージを取得して検索する
736デフォルトの名無しさん
2018/01/31(水) 01:31:31.84ID:ah9e2u9N >>732-734
外部コマンドをバッククォートで囲むとか、IO.popen を使って、
終了ステータス「$?」で分岐する
Rubyで外部コマンドを実行して結果を受け取る方法あれこれ
https://qiita.com/tyabe/items/56c9fa81ca89088c5627
resText = ""
IO.popen("where notepad") { |io| resText = io.read }
puts "終了ステータス : #{$?}"
puts resText
出力結果
終了ステータス : pid 9872 exit 0
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
外部コマンドをバッククォートで囲むとか、IO.popen を使って、
終了ステータス「$?」で分岐する
Rubyで外部コマンドを実行して結果を受け取る方法あれこれ
https://qiita.com/tyabe/items/56c9fa81ca89088c5627
resText = ""
IO.popen("where notepad") { |io| resText = io.read }
puts "終了ステータス : #{$?}"
puts resText
出力結果
終了ステータス : pid 9872 exit 0
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
737デフォルトの名無しさん
2018/02/07(水) 21:03:36.63ID:/4oaORK0 Windows向けのRubyバイナリですが
ASRの2.5はいつ出るんでしょうか?
RubyInstallerはOLEがうまく動かないのでASRを使っています。
ASRの2.5はいつ出るんでしょうか?
RubyInstallerはOLEがうまく動かないのでASRを使っています。
738デフォルトの名無しさん
2018/02/07(水) 21:24:44.94ID:N9vep8wO RubyはWindowsで使うものではない
WinでRubyなんてプロダクションでは全く使われていないので、最新バージョンに追従しなければ何かまずいことになるというプレッシャーは無く、
有志が気が向いたときに遊びでやってるだけだ
そんなものに期待するのがそもそもの間違い
いい加減諦めてWSLかVMかMacに移行しなさい
WinでRubyなんてプロダクションでは全く使われていないので、最新バージョンに追従しなければ何かまずいことになるというプレッシャーは無く、
有志が気が向いたときに遊びでやってるだけだ
そんなものに期待するのがそもそもの間違い
いい加減諦めてWSLかVMかMacに移行しなさい
739デフォルトの名無しさん
2018/02/07(水) 21:42:14.34ID:ZXClH+OJ WindowsでRuby使うとかマゾもいいとこ。
おとなしくPythonにしとけばいいのに。
日本語の情報が豊富!とか言って初心者釣ってたやつらにも責任がある。
コミュニティがシェア9割のWindowsを親の仇のように嫌ってる時点で初心者向けなんか有り得ないというのに。
おとなしくPythonにしとけばいいのに。
日本語の情報が豊富!とか言って初心者釣ってたやつらにも責任がある。
コミュニティがシェア9割のWindowsを親の仇のように嫌ってる時点で初心者向けなんか有り得ないというのに。
740デフォルトの名無しさん
2018/02/08(木) 04:05:47.94ID:31uXy/SD Windows10 Home で、WSL(Windows Subsystem for Linux)正式版を簡単に導入できた
MS Store から簡単に、Ubuntu 16.04 をダウンロードできた。
サイズは、200MB ほど
パッケージマネージャーで、Ruby 2.3 も簡単にインストールできた
MS Store から簡単に、Ubuntu 16.04 をダウンロードできた。
サイズは、200MB ほど
パッケージマネージャーで、Ruby 2.3 も簡単にインストールできた
741デフォルトの名無しさん
2018/02/08(木) 04:50:05.31ID:lklijtOD できたんだ
742デフォルトの名無しさん
2018/02/08(木) 06:54:03.75ID:ZE8Ol0Sg >>737
OLEがうまく動かないってどういうこと?
OLEがうまく動かないってどういうこと?
744デフォルトの名無しさん
2018/02/08(木) 19:31:35.11ID:x393c3Y0 最近のwindowsは32bit版のODBCと64bit版のODBC分かれてるから
データソース作るときにどっちか逆になると繋がらないことがたまによくある
データソース作るときにどっちか逆になると繋がらないことがたまによくある
745737
2018/02/08(木) 20:06:16.19ID:zFeCrx9M 環境はwindows7の32bitだ
そんで同じスクリプトで
ASRなら繋がるけどRubyInstallerだと繋がらないんだ
そんで同じスクリプトで
ASRなら繋がるけどRubyInstallerだと繋がらないんだ
746デフォルトの名無しさん
2018/02/09(金) 01:32:56.68ID:JPCfoDnF まず、エラーメッセージを取得して、それで検索することから始める
747デフォルトの名無しさん
2018/02/09(金) 01:36:30.27ID:ZFL6conz そして5年前の情報とかしかなくて終わる
748デフォルトの名無しさん
2018/02/09(金) 18:48:38.40ID:g1sd4Kag AWSのCloud9のRubyで アラーム代わりにwavやmp3を再生したいんですけど、かんたんにできるでしょうか
749デフォルトの名無しさん
2018/02/09(金) 19:25:09.92ID:FL1yxC1J bokete みたいなwebサイト作りたいんですけど何種類かアイデアあるんすけど
ruby ➡ Ror
php ➡ WordPress
どっちがいいっすか?
ruby ➡ Ror
php ➡ WordPress
どっちがいいっすか?
750デフォルトの名無しさん
2018/02/10(土) 01:08:50.39ID:TNdj3qFT ruby -e "puts 'abc'"
ruby -e 'puts "abc"'
1-liner で、上はWindows、下はLinux でのクォーテーションだけど、
簡単に相互を置換する方法はない?
ruby -e "puts 'abc'"
例えば、これの、" を' に置換すると、
ruby -e 'puts 'abc''
となって、区別できなくなる
>>749
もちろん、Rails
ruby -e 'puts "abc"'
1-liner で、上はWindows、下はLinux でのクォーテーションだけど、
簡単に相互を置換する方法はない?
ruby -e "puts 'abc'"
例えば、これの、" を' に置換すると、
ruby -e 'puts 'abc''
となって、区別できなくなる
>>749
もちろん、Rails
751デフォルトの名無しさん
2018/02/10(土) 01:37:14.21ID:dbzbK1DZ752デフォルトの名無しさん
2018/02/10(土) 08:42:39.65ID:BVqOrgag >>750
WindowsだろうがLinuxだろうがワンライナーならどちらのクォーテーション・マークでも動作するから置換する必要はない
それでも置換するなら、簡単なものなら..tr('"\'','\'"')
真面目にやるなら式中の"を%Qに'を%qにでもすればいいんじゃない
WindowsだろうがLinuxだろうがワンライナーならどちらのクォーテーション・マークでも動作するから置換する必要はない
それでも置換するなら、簡単なものなら..tr('"\'','\'"')
真面目にやるなら式中の"を%Qに'を%qにでもすればいいんじゃない
753デフォルトの名無しさん
2018/02/10(土) 17:44:21.82ID:3K6ZWpKd Array#zipに関する質問です。
aを二次元座標[x, y]の配列として
a[0].zip(*a[1..-1])と同じ動作を効率的にできるだけ短く書くコードを教えてください。
aを二次元座標[x, y]の配列として
a[0].zip(*a[1..-1])と同じ動作を効率的にできるだけ短く書くコードを教えてください。
754デフォルトの名無しさん
2018/02/10(土) 17:55:38.94ID:eFhUfahp755デフォルトの名無しさん
2018/02/10(土) 20:29:37.87ID:Jen4nAbv aの要素数が滅茶苦茶多いと、引数に渡すだけで大変そう
756デフォルトの名無しさん
2018/02/10(土) 21:53:50.96ID:ELWGSSBQ 引数を渡すかわりに引導を渡してみては?
757デフォルトの名無しさん
2018/02/10(土) 22:18:46.37ID:BVqOrgag 速いかは知らないけど
a.transposeでいいんじゃないの
a.transposeでいいんじゃないの
758デフォルトの名無しさん
2018/02/11(日) 18:24:55.59ID:ONLKHfKt759デフォルトの名無しさん
2018/02/11(日) 20:12:19.15ID:aLeqVhz7 残念だが手遅れ
760デフォルトの名無しさん
2018/02/11(日) 20:17:25.63ID:JLQLPcxv よく使うクラスだけでもマニュアル全部読んでおくといいよ大した量じゃないし
761デフォルトの名無しさん
2018/02/12(月) 13:39:48.05ID:S+p/PDus 普通は、transpose ぐらいあるだろ。
R なんて、行列が逆だから、transpose が無かったら、混乱する
module Enumerable だけは、読んでおけ
R なんて、行列が逆だから、transpose が無かったら、混乱する
module Enumerable だけは、読んでおけ
762デフォルトの名無しさん
2018/02/14(水) 16:44:54.84ID:gwupYb1h Windows10 の、Chrome の自動操作で、
SeleniumWebDriver では、Ruby から起動したブラウザが、閉じてしまう。
sleep で、待つ事はできるけど
ブラウザが閉じないように、出来ないの?
それか、iMacros を使うしかないのか?
SeleniumWebDriver では、Ruby から起動したブラウザが、閉じてしまう。
sleep で、待つ事はできるけど
ブラウザが閉じないように、出来ないの?
それか、iMacros を使うしかないのか?
763デフォルトの名無しさん
2018/02/17(土) 22:07:32.61ID:IU1gsQgu ActiveRuby (Beta 版)と言う、Rails など、40 gem、有用なライブラリ一式をまとめた、
Windows 用の、Precompiled Ruby があるね
Ruby 2.3.4 で、容量は、1GB
Windows 用の、Precompiled Ruby があるね
Ruby 2.3.4 で、容量は、1GB
764デフォルトの名無しさん
2018/02/17(土) 22:10:01.26ID:C+rXeEsA 何で句読点そんななの?
765デフォルトの名無しさん
2018/02/19(月) 08:06:13.46ID:FUvFB9Jm766デフォルトの名無しさん
2018/02/19(月) 08:14:01.13ID:NxG0QMWB 戦場カメラマンかよ
767デフォルトの名無しさん
2018/02/21(水) 12:00:51.75ID:YvXKEUAS RubyのClassクラスはObjectクラスのインスタンス。
そんでもって、自作MyClassクラスを作れば、Classクラスのインスタンスとなる。同時に、Objectクラスを継承する。
ってことは、Objectのインスタンスメソッド、ClassのインスタンスメソッドをMyClassのインスタンスは継承している。
そんでもって、自作MyClassクラスを作れば、Classクラスのインスタンスとなる。同時に、Objectクラスを継承する。
ってことは、Objectのインスタンスメソッド、ClassのインスタンスメソッドをMyClassのインスタンスは継承している。
768デフォルトの名無しさん
2018/02/21(水) 20:05:24.59ID:HEIjAjBo Classクラスのクラスメソッドは、
自作MyClassクラスのクラスメソッドとなるか?
自作MyClassクラスのクラスメソッドとなるか?
769デフォルトの名無しさん
2018/02/21(水) 20:07:58.08ID:gGEObxum なるよ
770デフォルトの名無しさん
2018/02/21(水) 21:00:07.80ID:HEIjAjBo Classクラスの特異クラスのインスタンスメソッドは、
自作MyClassクラスのクラスメソッドとなるか?
自作MyClassクラスのクラスメソッドとなるか?
771デフォルトの名無しさん
2018/02/21(水) 21:07:50.97ID:HEIjAjBo オブジェクトの特異クラスのメソッドは、
そのオブジェクトの特異メソッドとなる。
では、オブジェクトの特異クラスのそのまた特異クラスのメソッドは、
そのオブジェクトの特異クラスメソッドとなるか?
そのオブジェクトの特異メソッドとなる。
では、オブジェクトの特異クラスのそのまた特異クラスのメソッドは、
そのオブジェクトの特異クラスメソッドとなるか?
772デフォルトの名無しさん
2018/02/21(水) 21:13:10.82ID:6K5cWIBm ご覧ください。
こういう処理すべき本質と離れた下らないことしか話すことのないクソ言語とハエ信者たちです。
こういう処理すべき本質と離れた下らないことしか話すことのないクソ言語とハエ信者たちです。
773デフォルトの名無しさん
2018/02/21(水) 22:26:16.94ID:No3TMOHA ご覧ください
こういうプログラミングの話題でない煽りしかできない底辺です
こういうプログラミングの話題でない煽りしかできない底辺です
774デフォルトの名無しさん
2018/02/21(水) 22:42:56.90ID:gGEObxum 簡単に実装できるんだから自分で試せばいいのに
775デフォルトの名無しさん
2018/02/22(木) 18:58:12.64ID:mWjDtu6E >>772 に言わせれば:
・以下の記事の内容は「処理すべき本質と離れた下らないこと」であり、
・以下の記事に登場するのは「クソ言語」であり、
・以下の記事の著者は「ハエ信者」なんだろね
Pythonのオブジェクトとクラスのビジュアルガイド – 全てがオブジェクトであるということ
http://postd.cc/pythons-objects-and-classes-a-visual-guide/
・以下の記事の内容は「処理すべき本質と離れた下らないこと」であり、
・以下の記事に登場するのは「クソ言語」であり、
・以下の記事の著者は「ハエ信者」なんだろね
Pythonのオブジェクトとクラスのビジュアルガイド – 全てがオブジェクトであるということ
http://postd.cc/pythons-objects-and-classes-a-visual-guide/
776デフォルトの名無しさん
2018/02/22(木) 19:49:41.37ID:w/32fA/q pythonごときクソ言語に劣等感抱いててワロタwww
追い詰められ過ぎwww消えそうwwwww
追い詰められ過ぎwww消えそうwwwww
777デフォルトの名無しさん
2018/02/22(木) 22:20:20.36ID:3IU5aIfi クソだろうが何だろうが使われたもの勝ち
778デフォルトの名無しさん
2018/02/22(木) 22:26:35.15ID:K6gwUVsb Ruby にも、アルゴリズム・数学系のライブラリが揃っていれば、
蛇には負けぬものを。ぐぬぬぬぬ
実際、プログラミングコンテスト・パズル系は、Rubyで説明することが多いのに
蛇には負けぬものを。ぐぬぬぬぬ
実際、プログラミングコンテスト・パズル系は、Rubyで説明することが多いのに
779デフォルトの名無しさん
2018/02/23(金) 04:41:21.61ID:rDH2T2Uu 今日からRubyの勉強する
楽しみ
楽しみ
780デフォルトの名無しさん
2018/02/24(土) 23:08:36.72ID:ysq1mmzI Ruby 2.6.0-preview1 リリース
https://www.ruby-lang.org/ja/news/2018/02/24/ruby-2-6-0-preview1-released/
https://www.ruby-lang.org/ja/news/2018/02/24/ruby-2-6-0-preview1-released/
781デフォルトの名無しさん
2018/02/25(日) 04:05:29.41ID:pcyqC+jB numbers = (1..7).to_a
この配列を、前から走査して、ある数字が見つかった時、
その数字より前の配列と、その数字を含めて、その数字より後ろの配列に、
1-pass で分ける、簡潔な書き方はありますか?
partition, group_by, each_with_object とか?
例、4 が見つかった場合
[1,2,3]
[4,5,6,7]
この配列を、前から走査して、ある数字が見つかった時、
その数字より前の配列と、その数字を含めて、その数字より後ろの配列に、
1-pass で分ける、簡潔な書き方はありますか?
partition, group_by, each_with_object とか?
例、4 が見つかった場合
[1,2,3]
[4,5,6,7]
782デフォルトの名無しさん
2018/02/25(日) 04:12:39.42ID:OLqFO2yC ありまぁす!
783デフォルトの名無しさん
2018/02/25(日) 08:53:07.29ID:Mg3bT8JO 元の配列に4が1つしかなくてソート済みならpartitionでいいんじゃない
numbers.partition{|e| e < 4}
そうじゃないなら素直にやるしかないかと
i = numbsers.find_index(4)
numbers[0...i]
numbers[i..-1]
もしくは
numbers.take_while{|e|e != 4}
numbers.drop_while{|e|e != 4}
numbers.partition{|e| e < 4}
そうじゃないなら素直にやるしかないかと
i = numbsers.find_index(4)
numbers[0...i]
numbers[i..-1]
もしくは
numbers.take_while{|e|e != 4}
numbers.drop_while{|e|e != 4}
784781
2018/02/25(日) 08:59:55.65ID:pcyqC+jB785デフォルトの名無しさん
2018/02/25(日) 10:55:59.02ID:mAmrOOAm Rails6開発開始
786デフォルトの名無しさん
2018/02/25(日) 11:54:19.33ID:OLqFO2yC >>784
ありまぁす!って言ってんだろうが
ありまぁす!って言ってんだろうが
787デフォルトの名無しさん
2018/02/25(日) 11:58:14.59ID:OLqFO2yC [1, 2, 3, 4, 5, 6, 7].slice_before(4).to_a
=> [[1, 2, 3], [4, 5, 6, 7]]
(to_aはEnumeratorをそのまま使うようにすれば不要)
=> [[1, 2, 3], [4, 5, 6, 7]]
(to_aはEnumeratorをそのまま使うようにすれば不要)
788デフォルトの名無しさん
2018/02/25(日) 12:22:26.69ID:caIICGcE これからRuby on RAILS勉強するんですけど
なんかいい参考書とかHPありますか?
なんかいい参考書とかHPありますか?
789781
2018/02/25(日) 12:57:24.51ID:pcyqC+jB >>787
(1..7).slice_before(4).to_a
=> [[1, 2, 3], [4, 5, 6, 7]]
[1,2,4,5,4,6].slice_before(4).to_a
=> [[1, 2], [4, 5], [4, 6]]
slice_before だと、探している数字が複数回あると、
そこから新たに、グルーピングが始まる
>>788
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015
実践Ruby on Rails 4: 現場のプロから学ぶ本格Webプログラミング、黒田努、2014
黒田の本は、わかりやすい。
ただし、他の著者で、Rails 5 の本も出ているかも
(1..7).slice_before(4).to_a
=> [[1, 2, 3], [4, 5, 6, 7]]
[1,2,4,5,4,6].slice_before(4).to_a
=> [[1, 2], [4, 5], [4, 6]]
slice_before だと、探している数字が複数回あると、
そこから新たに、グルーピングが始まる
>>788
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015
実践Ruby on Rails 4: 現場のプロから学ぶ本格Webプログラミング、黒田努、2014
黒田の本は、わかりやすい。
ただし、他の著者で、Rails 5 の本も出ているかも
790デフォルトの名無しさん
2018/02/25(日) 13:36:01.35ID:OLqFO2yC > slice_before だと、探している数字が複数回あると、
> そこから新たに、グルーピングが始まる
仕様どおりだろ
> そこから新たに、グルーピングが始まる
仕様どおりだろ
791デフォルトの名無しさん
2018/02/27(火) 16:15:39.63ID:shVfNcyg erbとかのテンプレートを元に画像を生成するgemってありませんか?
thinreportsでpdfではなくbmp,pngなどの画像を出力する感じです
thinreportsでpdfではなくbmp,pngなどの画像を出力する感じです
792デフォルトの名無しさん
2018/02/27(火) 21:18:11.05ID:PLAOSS1/ 「selenium webdriver screenshot」で検索!
Electron でも出来る
Electron でも出来る
793デフォルトの名無しさん
2018/02/27(火) 21:25:08.90ID:+EUBPr3t inline_svg とか?
794デフォルトの名無しさん
2018/02/28(水) 00:12:23.88ID:mWE0Cmql >>784
AsciiDoc/Asciidoctor
AsciiDoc/Asciidoctor
795デフォルトの名無しさん
2018/02/28(水) 19:08:53.94ID:acVWAXbg シェルコマンドでimagemagick呼べばいいよ
gemすら使わずに一瞬でできる
gemすら使わずに一瞬でできる
796デフォルトの名無しさん
2018/02/28(水) 21:12:02.76ID:mIXPiXOq TSVデータを処理したいんですが
末尾の空白文字(タブ)がいつの間にか消えてしまいます
splitが自動削除するのは分かったけど他でも消えてる様です
この暗黙の空白削除現象を検索しても引っかからないんですがいい検索単語はないですか?
あと勝手に削除する理由はなんなんでしょう
末尾の空白文字(タブ)がいつの間にか消えてしまいます
splitが自動削除するのは分かったけど他でも消えてる様です
この暗黙の空白削除現象を検索しても引っかからないんですがいい検索単語はないですか?
あと勝手に削除する理由はなんなんでしょう
797デフォルトの名無しさん
2018/02/28(水) 21:36:50.04ID:bddDF+sp798796
2018/02/28(水) 22:18:52.36ID:mIXPiXOq 原因分からなかったけど解決しました
ループ内で毎回Hashに加えていくのを一旦stringにまとめてから
ループ後のHashに加えるようにしたら"\txxxxx\t\n"の後ろのタブが消えなくなりました
ループ内で毎回Hashに加えていくのを一旦stringにまとめてから
ループ後のHashに加えるようにしたら"\txxxxx\t\n"の後ろのタブが消えなくなりました
799796
2018/02/28(水) 22:22:19.89ID:mIXPiXOq 前に壊したデータ読み直してました
800デフォルトの名無しさん
2018/03/02(金) 00:03:53.83ID:7c4/pzB6 windows環境でrRubyinstaller2でインストールしてruby.exeのパスに非アスキー文字が含まれていると
requireしたときに$LOAD_PATHの非アスキー部分が文字化けしてload errorが起きるんですけど何か対処法はありませんでしょうか?
その場的に今はUTF-8で書いたコードの中で$LOAD_PATHに対応するパスを挿入して動かしてるんですが。。。
諸事情によりrubyはアスキー文字配下にインストールできないものとします
requireしたときに$LOAD_PATHの非アスキー部分が文字化けしてload errorが起きるんですけど何か対処法はありませんでしょうか?
その場的に今はUTF-8で書いたコードの中で$LOAD_PATHに対応するパスを挿入して動かしてるんですが。。。
諸事情によりrubyはアスキー文字配下にインストールできないものとします
801デフォルトの名無しさん
2018/03/02(金) 03:54:56.19ID:QlU5Q+B8 今すぐアンインストールしてWSLを入れよう
802デフォルトの名無しさん
2018/03/02(金) 05:39:12.36ID:xypD9Mi9 >>800
バグ報告してくるんだ
バグ報告してくるんだ
803デフォルトの名無しさん
2018/03/02(金) 07:54:43.19ID:mIGjbFX+ Windows のirb でも、ascii 以外は正常に動かないから、
irb を使う時だけ、WSL・Ubuntu の方を使っている
UTF-8 では、cp932(shift-jis)が読めないのだろう
起動時オプションで、cp932 を指定すれば、読めるかも知れないけど、
逆にRuby 内部で、cp932 はヤバイのじゃないか?
UTF-8以外を使うと、他のアプリと通信できないとか、バグりそう
とにかく、PC のユーザー名・パス名などに、半角英数字以外を使うと、
多くのアプリでバグる
irb を使う時だけ、WSL・Ubuntu の方を使っている
UTF-8 では、cp932(shift-jis)が読めないのだろう
起動時オプションで、cp932 を指定すれば、読めるかも知れないけど、
逆にRuby 内部で、cp932 はヤバイのじゃないか?
UTF-8以外を使うと、他のアプリと通信できないとか、バグりそう
とにかく、PC のユーザー名・パス名などに、半角英数字以外を使うと、
多くのアプリでバグる
804803
2018/03/02(金) 11:51:22.61ID:mIGjbFX+ Windows のPowerShell から、Ruby の1-liner を実行すると、ファイル名だけが\x 表示された。
PowerShellのデフォルト文字コードが、UTF-8 だから、フォルダ名は正常に表示された
> ruby -rfileutils -e "puts FileUtils.pwd"
C:/Users/Owner/Documents/あいう
> ruby -e "p Dir.glob('*')"
["\x{8345}\x{8343}\x{838B}\x{8358}.txt", "\x{8376}\x{838D}\x{834F}\x{838C}.txt"]
> ruby -E :shift_jis -e "p Dir.glob('*')"
起動オプションに、外部エンコーディングをUTF-8のままで指定せず、
内部エンコーディングだけをshift_jis に指定すると、正常に表示された
["ウイルス.txt", "プログレ.txt"]
漏れは一々、起動時やファイル内に、文字コードを指定するのが面倒なので、
Windowsのユーザー環境変数に、RUBYOPT を追加して、--encoding=UTF-8 を設定している。
ただし、こうすると、irb が動かなくなるので、Windows10 のWSL・Ubuntu のirb を使っている
一方、WSL・Ubuntu・bash から、上記を実行すると、
デフォルトで、どちらも正常に表示された
Windows で実行する場合は、PowerShellはUTF-8、コマンドプロンプトはCP932 がデフォルトだから、
これらのシェルの文字コードか、Ruby側の文字コードを指定する
まあ、shift_jis の処理は、危険だと思う。
@などのWindows独自のCP932文字(環境依存文字)があって、
shift_jis・CP932は微妙に異なるから、どこまで正常に動くか分からない
PowerShellのデフォルト文字コードが、UTF-8 だから、フォルダ名は正常に表示された
> ruby -rfileutils -e "puts FileUtils.pwd"
C:/Users/Owner/Documents/あいう
> ruby -e "p Dir.glob('*')"
["\x{8345}\x{8343}\x{838B}\x{8358}.txt", "\x{8376}\x{838D}\x{834F}\x{838C}.txt"]
> ruby -E :shift_jis -e "p Dir.glob('*')"
起動オプションに、外部エンコーディングをUTF-8のままで指定せず、
内部エンコーディングだけをshift_jis に指定すると、正常に表示された
["ウイルス.txt", "プログレ.txt"]
漏れは一々、起動時やファイル内に、文字コードを指定するのが面倒なので、
Windowsのユーザー環境変数に、RUBYOPT を追加して、--encoding=UTF-8 を設定している。
ただし、こうすると、irb が動かなくなるので、Windows10 のWSL・Ubuntu のirb を使っている
一方、WSL・Ubuntu・bash から、上記を実行すると、
デフォルトで、どちらも正常に表示された
Windows で実行する場合は、PowerShellはUTF-8、コマンドプロンプトはCP932 がデフォルトだから、
これらのシェルの文字コードか、Ruby側の文字コードを指定する
まあ、shift_jis の処理は、危険だと思う。
@などのWindows独自のCP932文字(環境依存文字)があって、
shift_jis・CP932は微妙に異なるから、どこまで正常に動くか分からない
805デフォルトの名無しさん
2018/03/02(金) 12:00:42.65ID:OCKmRFPd なにをごちゃごちゃやってんだ?
こういうのは変換すべきレイヤーで変換するだけの話だろ
Rubyのスクリプト(に限らないが)は
どこでも同じように動かすんだから
ソースコードも内部も UTF-8だ
画面への入出力時に変換させればいいだけ
コマンドプロンプトをUTF-8に変換するって手もある
海外じゃCP932という日本専用の文字コード使ってないことぐらいわかるだろ?
こういうのは変換すべきレイヤーで変換するだけの話だろ
Rubyのスクリプト(に限らないが)は
どこでも同じように動かすんだから
ソースコードも内部も UTF-8だ
画面への入出力時に変換させればいいだけ
コマンドプロンプトをUTF-8に変換するって手もある
海外じゃCP932という日本専用の文字コード使ってないことぐらいわかるだろ?
806デフォルトの名無しさん
2018/03/02(金) 12:39:35.62ID:vnF4MMGw 元々はwindowsのワイド文字をうまくutf8に変換してやってこうという方針だったのに
nobuがロケールに変換させまくって動かないだけ
まあ誰もバグ報告しないのも悪いけど
nobuがロケールに変換させまくって動かないだけ
まあ誰もバグ報告しないのも悪いけど
807803
2018/03/02(金) 13:14:57.35ID:mIGjbFX+ Rubyist は、RubyでGem を作れるけど、C で低レベルなI/O を書けるわけじゃない
また、Linux・Windows の両方に対応させるのは、難しい
また、Linux・Windows の両方に対応させるのは、難しい
808803
2018/03/02(金) 16:17:45.17ID:mIGjbFX+ library irb/input-method
https://docs.ruby-lang.org/ja/latest/library/irb=2finput=2dmethod.html
class IRB::ReadlineInputMethod のソースコードを見れば良いの?
それとも、GNU Readline のソースコードかな?
Windows のirb で、日本語がバグるのは、
根本的に、GNU Readline が、Windowsの日本語を考慮していないからじゃないの?
https://docs.ruby-lang.org/ja/latest/library/irb=2finput=2dmethod.html
class IRB::ReadlineInputMethod のソースコードを見れば良いの?
それとも、GNU Readline のソースコードかな?
Windows のirb で、日本語がバグるのは、
根本的に、GNU Readline が、Windowsの日本語を考慮していないからじゃないの?
809デフォルトの名無しさん
2018/03/02(金) 16:40:11.45ID:ypGJ9h8+ というかrubyコミュニティがwindowsを考慮してない。
むしろ怨み、蔑み、嫌っている。昔から。
むしろ怨み、蔑み、嫌っている。昔から。
810デフォルトの名無しさん
2018/03/02(金) 17:18:20.26ID:0lL3/u0V >>809
そだねー
そだねー
811803
2018/03/02(金) 17:55:40.44ID:mIGjbFX+ console.log("あ");
Windows で、node (REPL)を実行したけど、
日本語を入力しても、PowerShell・コマンドプロンプトの両方で、正常に動く
Windows で、node (REPL)を実行したけど、
日本語を入力しても、PowerShell・コマンドプロンプトの両方で、正常に動く
812デフォルトの名無しさん
2018/03/02(金) 23:07:42.42ID:wSJnGqkk RubyはLinuxで動かすようにすればいいよ
WindowsでちょこっとしたやりたいことがあるならC#使え、と
どうせ仕事でやってるRubyはLinuxで動くんだからさ
Windowsマシンでの開発ならVMかDocker使えばすべて解決
WindowsでちょこっとしたやりたいことがあるならC#使え、と
どうせ仕事でやってるRubyはLinuxで動くんだからさ
Windowsマシンでの開発ならVMかDocker使えばすべて解決
813デフォルトの名無しさん
2018/03/03(土) 01:14:23.68ID:vdurK0jv ありがとうございました
ググってみたら結構前から報告されていたバグみたいなので諦めることにします
ググってみたら結構前から報告されていたバグみたいなので諦めることにします
814デフォルトの名無しさん
2018/03/03(土) 01:19:41.29ID:GGmAMA7z815デフォルトの名無しさん
2018/03/03(土) 01:21:46.51ID:GGmAMA7z >>808
chcp 65001とかしてもダメかね?
chcp 65001とかしてもダメかね?
816デフォルトの名無しさん
2018/03/03(土) 15:41:40.19ID:VQ/a88pK cmd で chcp 65001 するくらいなら
git for windows インスコして git bash (mintty) 使うと幸せになれるぞ
git for windows インスコして git bash (mintty) 使うと幸せになれるぞ
817デフォルトの名無しさん
2018/03/03(土) 15:43:54.56ID:x/6oRrTp 65001 は右端とか折り返し表示がバグるね
818803
2018/03/03(土) 15:49:49.91ID:HcfLoqAp Ruby の起動オプションに、外部・内部エンコーディングか、RUBYOPT で指定できる。
ファイル内でも指定できる
それと、PowerShell・コマンドプロンプト、WSL・Ubuntu・bash で指定できる
これらの組み合わせの中で、文字化けしない組み合わせを探す
または、$LOAD_PATH の辺りで、指定するとか
ファイル内でも指定できる
それと、PowerShell・コマンドプロンプト、WSL・Ubuntu・bash で指定できる
これらの組み合わせの中で、文字化けしない組み合わせを探す
または、$LOAD_PATH の辺りで、指定するとか
819デフォルトの名無しさん
2018/03/03(土) 17:58:14.02ID:URsJSGy/ Rubyの2.5.0p2をRubyインストーラーでインストールしたらRubyの2.5.0p0だった・・・
820デフォルトの名無しさん
2018/03/03(土) 18:17:52.81ID:A+Ivs8ru patchlevelはもう無いよ
821デフォルトの名無しさん
2018/03/03(土) 18:26:46.78ID:VQ/a88pK >>818
そんな試行錯誤は一番あかんやつや
そんな試行錯誤は一番あかんやつや
822デフォルトの名無しさん
2018/03/03(土) 21:39:09.27ID:rw2aiDdk そうそう。結局 Rubyやirb に問題が有るんじゃなくて
単に >>803 が理解してないだけ
単に >>803 が理解してないだけ
823デフォルトの名無しさん
2018/03/03(土) 21:55:10.06ID:GRjh9/QH そういうことだから理解できない初心者は間違ってもrubyなんか使おうと思わないようにね。
初心者や子供にruby勧めてくるのは例外なくマウント取りたいだけのクズだぞ。
初心者や子供にruby勧めてくるのは例外なくマウント取りたいだけのクズだぞ。
824デフォルトの名無しさん
2018/03/03(土) 21:56:04.27ID:ETPjeMg1 書籍のサンプルコードの一部です
この@memoという変数はいわゆる辞書形式のデータ構造で
[remain, pre]は辞書のキー(複合キー?)という理解でいいんでしょうか
ちなみに@を付けないとどうなりますか
変数名に記号が付くのが凄く気になります
@memo = {}
# 計算結果をメモする
@memo[[remain, pre]] = cnt
この@memoという変数はいわゆる辞書形式のデータ構造で
[remain, pre]は辞書のキー(複合キー?)という理解でいいんでしょうか
ちなみに@を付けないとどうなりますか
変数名に記号が付くのが凄く気になります
@memo = {}
# 計算結果をメモする
@memo[[remain, pre]] = cnt
825デフォルトの名無しさん
2018/03/03(土) 22:30:11.11ID:gHPIEkfR826デフォルトの名無しさん
2018/03/04(日) 00:30:02.17ID:99M3BGnn >>825
ありがとうございました
ありがとうございました
827デフォルトの名無しさん
2018/03/04(日) 02:42:13.82ID:Oz1ASWrr キーに配列が使えるのか・・・
828デフォルトの名無しさん
2018/03/04(日) 04:12:18.75ID:aAfADGFK オブジェクトはなんでもイケるんじゃなかったっけ?
ハッシュ値さえちゃんと返せば。
ハッシュ値さえちゃんと返せば。
829デフォルトの名無しさん
2018/03/04(日) 11:33:10.30ID:7gUy2hud キーにした配列を変化させた時はrehashしないとキーが一致しなくなる
文字列のキーは変化させても、キーはセットしたときのまま
文字列のキーは変化させても、キーはセットしたときのまま
830デフォルトの名無しさん
2018/03/04(日) 11:34:10.89ID:Oz1ASWrr なるほどね。先入観として[a,b]ってかいたら毎回newされて、
キーとしては未定義値のnil固定か、別オブジェクト扱いで不定になるか、と思えた
キーとしては未定義値のnil固定か、別オブジェクト扱いで不定になるか、と思えた
831デフォルトの名無しさん
2018/03/05(月) 16:37:38.89ID:62GuhFZ7 str = <<'EOT'
str = << 'EOT'
here doc で、下のように、<< の後ろに半角空白があると、文法エラーになる
それと、WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理すると、
改行コードが異なるから、不正な形式のファイルと言われる。
改行コードを、LF だけに変えると、正しく処理できる
str = << 'EOT'
here doc で、下のように、<< の後ろに半角空白があると、文法エラーになる
それと、WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理すると、
改行コードが異なるから、不正な形式のファイルと言われる。
改行コードを、LF だけに変えると、正しく処理できる
832デフォルトの名無しさん
2018/03/05(月) 17:53:15.03ID:aK37pZ+C mode: 'rt'
で読み込めばいいじゃん
で読み込めばいいじゃん
833831
2018/03/05(月) 19:10:41.11ID:62GuhFZ7 options に行区切りを指定したら、
WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理できた
row_sep: "\r\n" では出来たが、
row_sep: :auto では、エラーになる
WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理できた
row_sep: "\r\n" では出来たが、
row_sep: :auto では、エラーになる
834デフォルトの名無しさん
2018/03/05(月) 21:53:10.11ID:K/Y9LwEe require ‘pry’
def foo;@a = 1;end
binding.pry
このコードを実行し、出て来たプロンプトで
> cd Object
> instance_methods(false)
=> [:to_yaml, :to_yaml_properties, :pry, :__binding__, :psych_to_yaml]
と出ました。fooメソッドが見つかりません。
トップレベルで定義したfooメソッドはObjectのメソッドに成るのでは?
ちなみにコマンドラインでpryとタイプして
[1] pry(main)> def foo;@a=0;end
=> :foo
[2] pry(main)> cd Object
[3] pry(Object):1> instance_methods(false)
=> [:to_yaml, :to_yaml_properties, :pry, :__binding__, :psych_to_yaml, :foo]
[4] pry(Object):1>
ちゃんとfooが見えます。
def foo;@a = 1;end
binding.pry
このコードを実行し、出て来たプロンプトで
> cd Object
> instance_methods(false)
=> [:to_yaml, :to_yaml_properties, :pry, :__binding__, :psych_to_yaml]
と出ました。fooメソッドが見つかりません。
トップレベルで定義したfooメソッドはObjectのメソッドに成るのでは?
ちなみにコマンドラインでpryとタイプして
[1] pry(main)> def foo;@a=0;end
=> :foo
[2] pry(main)> cd Object
[3] pry(Object):1> instance_methods(false)
=> [:to_yaml, :to_yaml_properties, :pry, :__binding__, :psych_to_yaml, :foo]
[4] pry(Object):1>
ちゃんとfooが見えます。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国国営メディア「沖縄は日本ではない」…★7 [BFU★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
- ケンタッキーの○○○バーガーという予告がアレを想起すると話題に [523957489]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- んなっしょい🍬禁止🈲のお🏡
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
