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


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

Ruby 初心者スレッド Part 62



1 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 00:35:29.31 ID:rLZHdQ3Q.net]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

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

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

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

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

730 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 23:35:54.90 ID:/Sj7yLHe.net]
Webサイトちょっと動かしたいだけなら自分で運用構築なんて時間の無駄だからPaaS使うことを強くお勧めする

731 名前:デフォルトの名無しさん [2018/01/23(火) 13:19:28.04 ID:CDVCaOOu.net]
環境構築には、vagrant, chef は、Ruby でレシピ(手順書)を書ける。
Docker もある

仮想環境コンテナ総合スレ Docker、Vagrant等 [無断転載禁止]c2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1487235664/l50

732 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 20:57:16.21 ID:STirpdQ8.net]
FJORD BOOT CAMP(フィヨルドブートキャンプ)
https://bootcamp.fjord.jp/

無職なら誰でもオンライン無料学習

733 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 23:03:46.38 ID:CDVCaOOu.net]
Ruby の女神・池澤あやかは、島根県のRuby合宿で、Rubyを極めたらしい

734 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 23:02:47.87 ID:ap7jtKrX.net]
今日mechanizeを使い出したんだけどいいなこれ
なんで今まで使わずにスクレイピングしてたんだろってくらい感動した

735 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 03:45:42.62 ID:1frilWR+.net]
本の虫: 60%の人間はプログラミングの素質がない
https://cpplover.blogspot.jp/2012/05/60.html

736 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 15:25:13.47 ID:d3UPMMWN.net]
バージョン2.2.0以降次のコードがSecurityErrorにならないんだけど、仕様が変わってマニュアルの情報が古くなってるのかな?
$ ruby -ve '$SAFE = 1; open(ARGV[0])' hoge
Traceback (most recent call last):
2: from -e:1:in `<main>'
1: from -e:1:in `open'
-e:1:in `initialize': No such file or directory @ rb_sysopen - hoge (Errno::ENOENT)

737 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 18:01:16.77 ID:SW6+fB/4.net]
>>714
fizzbuzz

738 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 19:53:33.66 ID:8RoLWIQ9.net]
>>715
ARGVの文字列がexternal_str_new_cstr()で作られてるみたいだけど、
windowsだとUTF8_PATHが真になって、文字列がrb_external_str_new_cstr()で作られてないから
taintになってないっぽい



739 名前:デフォルトの名無しさん mailto:sage [2018/01/26(金) 19:35:15.96 ID:ywFtALU+.net]
atomのautocomplete-rubyが動かないです
rsenseのパスは通しているのですがエラーが出ます
rsense startを実行後、localhost:47367にアクセス出来ないことから
rsenseのエラーだとは思うのですが対策がわかりません。
ruby 2.4.1、rsense 0.5.18 です
https://teratail.com/questions/67165
ではJRuby 1.7.26にしてからrsenseをインストールするとできると書いてありましたが、JRuby 1.7.26ではrsenseがインストールできませんでした。
エラーは下記
autocomplete-ruby: exec error: Error: Command failed: ~/.rbenv/versions/2.4.1/bin/rsense
start --port 47367 --path /Users/{ユーザー名}/Programming/ruby-book
rsense version 0.5.18
Usage: rsense <start|stop|restart>
/bin/sh: line 1: start: command not found
(You might need to set the rsense path, see the readme)

740 名前:デフォルトの名無しさん [2018/01/26(金) 22:16:50.68 ID:lWqampzR.net]
>/bin/sh: line 1: start: command not found
start コマンドは存在しない

>(You might need to set the rsense path, see the readme)
rsense のユーザー環境変数PATH を設定しないといけないのかな?
まあ、readme を読んで

>autocomplete-ruby: exec error: Error: Command failed: ~/.rbenv/versions/2.4.1/bin/rsense
> start --port 47367 --path /Users/{ユーザー名}/Programming/ruby-book

これは全体で、1行のコマンドじゃないのか?
これを、rsense の後ろで、改行して打ったのか?

1行で打つか、または行末で改行を、\(バックスラッシュ)でエスケープすれば?
行末を「rsense \」とする

741 名前:デフォルトの名無しさん mailto:sage [2018/01/26(金) 22:22:02.58 ID:lWqampzR.net]
端末・コマンドプロンプトなどで、
which rsense, where rsense などと打てば、

rsense の実行ファイルがあるディレクトリが、
環境変数PATH に設定されているかどうかがわかる

742 名前:デフォルトの名無しさん mailto:sage [2018/01/26(金) 22:26:40.41 ID:lWqampzR.net]
rsense の実行ファイルがあるディレクトリが、
環境変数PATH に設定されているなら

~/.rbenv/versions/2.4.1/bin/rsense のように、パスを付けて書かなくても、
単に、rsense と打っても、実行ファイルを探せる

rsense start --port 47367 --path /Users/{ユーザー名}/Programming/ruby-book

だから、こう打てばよい

743 名前:692 mailto:sage [2018/01/26(金) 22:52:43.92 ID:lWqampzR.net]
Windows10 で、poltergeist のインストールに失敗

Fetching websocket-driver 0.7.0
Installing websocket-driver 0.7.0 with native extensions
MSYS2 could not be found.

websocket-driver-0.7.0-java.gem をダウンロードしたけど、MSYS2 を入れていないから。
(MSYS2 は、2GB 近くあるらしいので、わざと入れていない)

このgem ファイルは、Windows用のコンパイル済みバイナリではないの?

Anemone, mechanize は、静的なHTML用じゃないの?
JavaScript も解釈できるの?

poltergeist から、phantomJS を使おうとしたけど、インストールできないから、
>>698
で書いたように、Chrome のヘッドレスモードを使っている

744 名前:718 mailto:sage [2018/01/26(金) 23:10:28.98 ID:ywFtALU+.net]
>>719
atomでの話とターミナルでの話が混ざっていてすみません。
atomでパスを ~/.rbenv/versions/2.4.1/bin/rsenseと書くと718で書いたエラーが出ます。
エラー内容はstartコマンドがないと言っているので確認のため
ターミナルで$ rsense startと打つとプロセスは走ります。
ただプロセスが走っているのにlocalhost:47367にアクセスできません。

745 名前:デフォルトの名無しさん mailto:sage [2018/01/26(金) 23:32:26.03 ID:lWqampzR.net]
localhost は、つながらないとか、色々とバグるから、
127.0.0.1:47367 を使うこと

rsense start で、サーバーは確かに、47367 ポートで起動しているのか?

lsof とかで、開いているポートを調べる

746 名前:デフォルトの名無しさん mailto:sage [2018/01/26(金) 23:46:55.80 ID:lWqampzR.net]
>atomでパスを ~/.rbenv/versions/2.4.1/bin/rsenseと書くと718で書いたエラーが出ます

漏れも、VS Code を使っているけど、

VS Code 内のPowerShell では、よくバグるから、
外部でPowerShell を起動して使っている

外部から、コマンドプロンプト・端末・PowerShell を起動してやれば?

747 名前:デフォルトの名無しさん mailto:sage [2018/01/26(金) 23:58:30.46 ID:lWqampzR.net]
>atomでパスを ~/.rbenv/versions/2.4.1/bin/rsenseと書くと718で書いたエラーが出ます

~(チルダ)が、自分のホームディレクトリに解決できないとか?

.rbenv って、探索パスの順序を入れ替える、仮想化技術だろ。
環境変数PATH の一番前に、追加しているから、危険で影響が大きそう。
.rbenv について、よく調べた方が良いかも

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

また、rbenvでrubyをインストールしたり、gemでパッケージをインストールした後は、
rbenv rehashを実行しなければならないとか

748 名前:デフォルトの名無しさん mailto:sage [2018/01/27(土) 00:21:43.19 ID:PF3DsJ0N.net]
> .rbenv って、探索パスの順序を入れ替える、仮想化技術だろ。

なにも仮想化してないので、仮想化技術ではない



749 名前:デフォルトの名無しさん mailto:sage [2018/01/27(土) 01:59:43.65 ID:lUeqkPr+.net]
pyenv, virtualenv(venv)などのPythonの仮想環境構築も、これと同じ

環境変数PATH の前方に、パスを追加して、実行するコマンドの探索パスを変えることで、
実行されるファイルを変える

750 名前:718 mailto:sage [2018/01/27(土) 19:34:18.97 ID:sDN5LFGv.net]
rsenseがどうにも動かないのでatomでは他の補完パッケージを使うことにしました

751 名前:デフォルトの名無しさん [2018/01/27(土) 20:20:50.96 ID:lUeqkPr+.net]
bundle exec を付けないと、パスが探せないとか

752 名前:718 mailto:sage [2018/01/27(土) 20:33:08.71 ID:sDN5LFGv.net]
>>730
ターミナルではコマンドが実行できるのでパスは通っているはずなんですが
指定されたポートのローカルサーバーにアクセス出来ない。
($ rbenv which rsense で ~/.rbenv/versions/2.4.1/bin/rsense が出ます)
atomではパスを通す前はno such directryのエラーがパスを通すとcommand not foundになるので
パス自体は通っているとは思うのですがコマンドが見

753 名前:つからない理由がわからない。
すみません、いろいろ言ってもらったのですが改善できなそうでした。
[]
[ここ壊れてます]

754 名前:デフォルトの名無しさん mailto:sage [2018/01/28(日) 23:07:14.79 ID:+HoRx5lM.net]
Rubyスクリプト内から別のRubyスクリプトを実行して、エラーが出ても元のRubyスクリプトの処理を止めない方法はありますか?

755 名前:デフォルトの名無しさん mailto:sage [2018/01/28(日) 23:22:35.75 ID:ALu/+v8Q.net]
シェルコマンドでruby実行すればいいだろ
所詮Rubyなんか書捨てスクリプトなんだからスマートさなんか気にしないで手っ取り早い方法を選べばいい

756 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 00:28:48.72 ID:3fqaX6d7.net]
UNIXならProcessクラス使えば

757 名前:デフォルトの名無しさん [2018/01/31(水) 00:19:33.04 ID:ah9e2u9N.net]
>>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 の下にあるログファイルを見て、
もっと詳しいエラーメッセージを取得して検索する

758 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 01:31:31.84 ID:ah9e2u9N.net]
>>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



759 名前:デフォルトの名無しさん [2018/02/07(水) 21:03:36.63 ID:/4oaORK0.net]
Windows向けのRubyバイナリですが
ASRの2.5はいつ出るんでしょうか?
RubyInstallerはOLEがうまく動かないのでASRを使っています。

760 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 21:24:44.94 ID:N9vep8wO.net]
RubyはWindowsで使うものではない
WinでRubyなんてプロダクションでは全く使われていないので、最新バージョンに追従しなければ何かまずいことになるというプレッシャーは無く、
有志が気が向いたときに遊びでやってるだけだ
そんなものに期待するのがそもそもの間違い
いい加減諦めてWSLかVMかMacに移行しなさい

761 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 21:42:14.34 ID:ZXClH+OJ.net]
WindowsでRuby使うとかマゾもいいとこ。
おとなしくPythonにしとけばいいのに。
日本語の情報が豊富!とか言って初心者釣ってたやつらにも責任がある。
コミュニティがシェア9割のWindowsを親の仇のように嫌ってる時点で初心者向けなんか有り得ないというのに。

762 名前:デフォルトの名無しさん mailto:sage [2018/02/08(木) 04:05:47.94 ID:31uXy/SD.net]
Windows10 Home で、WSL(Windows Subsystem for Linux)正式版を簡単に導入できた

MS Store から簡単に、Ubuntu 16.04 をダウンロードできた。
サイズは、200MB ほど

パッケージマネージャーで、Ruby 2.3 も簡単にインストールできた

763 名前:デフォルトの名無しさん mailto:sage [2018/02/08(木) 04:50:05.31 ID:lklijtOD.net]
できたんだ

764 名前:デフォルトの名無しさん mailto:sage [2018/02/08(木) 06:54:03.75 ID:ZE8Ol0Sg.net]
>>737
OLEがうまく動かないってどういうこと?

765 名前:737 mailto:sage [2018/02/08(木) 18:58:35.45 ID:zFeCrx9M.net]
>>742
リモートのデータベースに接続できない

766 名前:デフォルトの名無しさん [2018/02/08(木) 19:31:35.11 ID:x393c3Y0.net]
最近のwindowsは32bit版のODBCと64bit版のODBC分かれてるから
データソース作るときにどっちか逆になると繋がらないことがたまによくある

767 名前:737 mailto:sage [2018/02/08(木) 20:06:16.19 ID:zFeCrx9M.net]
環境はwindows7の32bitだ
そんで同じスクリプトで
ASRなら繋がるけどRubyInstallerだと繋がらないんだ

768 名前:デフォルトの名無しさん mailto:sage [2018/02/09(金) 01:32:56.68 ID:JPCfoDnF.net]
まず、エラーメッセージを取得して、それで検索することから始める



769 名前:デフォルトの名無しさん mailto:sage [2018/02/09(金) 01:36:30.27 ID:ZFL6conz.net]
そして5年前の情報とかしかなくて終わる

770 名前:デフォルトの名無しさん mailto:sage [2018/02/09(金) 18:48:38.40 ID:g1sd4Kag.net]
AWSのCloud9のRubyで アラーム代わりにwavやmp3を再生したいんですけど、かんたんにできるでしょうか

771 名前:デフォルトの名無しさん mailto:sage [2018/02/09(金) 19:25:09.92 ID:FL1yxC1J.net]
bokete みたいなwebサイト作りたいんですけど何種類かアイデアあるんすけど
ruby ➡ Ror
php ➡ WordPress

どっちがいいっすか?

772 名前:デフォルトの名無しさん [2018/02/10(土) 01:08:50.39 ID:TNdj3qFT.net]
ruby -e "puts 'abc'"
ruby -e 'puts "abc"'

1-liner で、上はWindows、下はLinux でのクォーテーションだけど、
簡単に相互を置換する方法はない?

ruby -e "puts 'abc'"
例えば、これの、" を' に置換すると、

ruby -e 'puts 'abc''
となって、区別できなくなる

>>749
もちろん、Rails

773 名前:デフォルトの名無しさん mailto:sage [2018/02/10(土) 01:37:14.21 ID:dbzbK1DZ.net]
>>748
Ruby関係ない
純粋にJavaScriptやHTML5の話

774 名前:デフォルトの名無しさん mailto:sage [2018/02/10(土) 08:42:39.65 ID:BVqOrgag.net]
>>750
WindowsだろうがLinuxだろうがワンライナーならどちらのクォーテーション・マークでも動作するから置換する必要はない
それでも置換するなら、簡単なものなら..tr('"\'','\'"')
真面目にやるなら式中の"を%Qに'を%qにでもすればいいんじゃない

775 名前:デフォルトの名無しさん mailto:sage [2018/02/10(土) 17:44:21.82 ID:3K6ZWpKd.net]
Array#zipに関する質問です。
aを二次元座標[x, y]の配列として
a[0].zip(*a[1..-1])と同じ動作を効率的にできるだけ短く書くコードを教えてください。

776 名前:デフォルトの名無しさん mailto:sage [2018/02/10(土) 17:55:38.94 ID:eFhUfahp.net]
>>753
そんなところをハックしてもパフォーマンスは一ミリも改善しません
速くしたいなら他の言語を使うか、SQLをチューニングましょう

777 名前:デフォルトの名無しさん mailto:sage [2018/02/10(土) 20:29:37.87 ID:Jen4nAbv.net]
aの要素数が滅茶苦茶多いと、引数に渡すだけで大変そう

778 名前:デフォルトの名無しさん mailto:sage [2018/02/10(土) 21:53:50.96 ID:ELWGSSBQ.net]
引数を渡すかわりに引導を渡してみては?



779 名前:デフォルトの名無しさん mailto:sage [2018/02/10(土) 22:18:46.37 ID:BVqOrgag.net]
速いかは知らないけど
a.transposeでいいんじゃないの

780 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 18:24:55.59 ID:ONLKHfKt.net]
>>757
transposeなんてメソッド存在していたとは……知らなかった。
というかriのArray#zipで言及して欲しい。

781 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 20:12:19.15 ID:aLeqVhz7.net]
残念だが手遅れ

782 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 20:17:25.63 ID:JLQLPcxv.net]
よく使うクラスだけでもマニュアル全部読んでおくといいよ大した量じゃないし

783 名前:デフォルトの名無しさん [2018/02/12(月) 13:39:48.05 ID:S+p/PDus.net]
普通は、transpose ぐらいあるだろ。
R なんて、行列が逆だから、transpose が無かったら、混乱する

module Enumerable だけは、読んでおけ

784 名前:デフォルトの名無しさん [2018/02/14(水) 16:44:54.84 ID:gwupYb1h.net]
Windows10 の、Chrome の自動操作で、
SeleniumWebDriver では、Ruby から起動したブラウザが、閉じてしまう。
sleep で、待つ事はできるけど

ブラウザが閉じないように、出来ないの?
それか、iMacros を使うしかないのか?

785 名前:デフォルトの名無しさん [2018/02/17(土) 22:07:32.61 ID:IU1gsQgu.net]
ActiveRuby (Beta 版)と言う、Rails など、40 gem、有用なライブラリ一式をまとめた、
Windows 用の、Precompiled Ruby があるね

Ruby 2.3.4 で、容量は、1GB

786 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 22:10:01.26 ID:C+rXeEsA.net]
何で句読点そんななの?

787 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 08:06:13.46 ID:FUvFB9Jm.net]
www2.ske48.co.jp/blog/detail/id:20150713113730840
これをみたまえ

788 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 08:14:01.13 ID:NxG0QMWB.net]
戦場カメラマンかよ



789 名前:デフォルトの名無しさん [2018/02/21(水) 12:00:51.75 ID:YvXKEUAS.net]
RubyのClassクラスはObjectクラスのインスタンス。

そんでもって、自作MyClassクラスを作れば、Classクラスのインスタンスとなる。同時に、Objectクラスを継承する。

ってことは、Objectのインスタンスメソッド、ClassのインスタンスメソッドをMyClassのインスタンスは継承している。

790 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 20:05:24.59 ID:HEIjAjBo.net]
Classクラスのクラスメソッドは、
自作MyClassクラスのクラスメソッドとなるか?

791 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 20:07:58.08 ID:gGEObxum.net]
なるよ

792 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 21:00:07.80 ID:HEIjAjBo.net]
Classクラスの特異クラスのインスタンスメソッドは、
自作MyClassクラスのクラスメソッドとなるか?

793 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 21:07:50.97 ID:HEIjAjBo.net]
オブジェクトの特異クラスのメソッドは、
そのオブジェクトの特異メソッドとなる。
では、オブジェクトの特異クラスのそのまた特異クラスのメソッドは、
そのオブジェクトの特異クラスメソッドとなるか?

794 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 21:13:10.82 ID:6K5cWIBm.net]
ご覧ください。
こういう処理すべき本質と離れた下らないことしか話すことのないクソ言語とハエ信者たちです。

795 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 22:26:16.94 ID:No3TMOHA.net]
ご覧ください
こういうプログラミングの話題でない煽りしかできない底辺です

796 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 22:42:56.90 ID:gGEObxum.net]
簡単に実装できるんだから自分で試せばいいのに

797 名前:デフォルトの名無しさん [2018/02/22(木) 18:58:12.64 ID:mWjDtu6E.net]
>>772 に言わせれば:
・以下の記事の内容は「処理すべき本質と離れた下らないこと」であり、
・以下の記事に登場するのは「クソ言語」であり、
・以下の記事の著者は「ハエ信者」なんだろね

Pythonのオブジェクトとクラスのビジュアルガイド – 全てがオブジェクトであるということ
postd.cc/pythons-objects-and-classes-a-visual-guide/

798 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 19:49:41.37 ID:w/32fA/q.net]
pythonごときクソ言語に劣等感抱いててワロタwww
追い詰められ過ぎwww消えそうwwwww



799 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 22:20:20.36 ID:3IU5aIfi.net]
クソだろうが何だろうが使われたもの勝ち

800 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 22:26:35.15 ID:K6gwUVsb.net]
Ruby にも、アルゴリズム・数学系のライブラリが揃っていれば、
蛇には負けぬものを。ぐぬぬぬぬ

実際、プログラミングコンテスト・パズル系は、Rubyで説明することが多いのに

801 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 04:41:21.61 ID:rDH2T2Uu.net]
今日からRubyの勉強する
楽しみ

802 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 23:08:36.72 ID:ysq1mmzI.net]
Ruby 2.6.0-preview1 リリース
https://www.ruby-lang.org/ja/news/2018/02/24/ruby-2-6-0-preview1-released/

803 名前:デフォルトの名無しさん [2018/02/25(日) 04:05:29.41 ID:pcyqC+jB.net]
numbers = (1..7).to_a

この配列を、前から走査して、ある数字が見つかった時、
その数字より前の配列と、その数字を含めて、その数字より後ろの配列に、
1-pass で分ける、簡潔な書き方はありますか?

partition, group_by, each_with_object とか?

例、4 が見つかった場合
[1,2,3]
[4,5,6,7]

804 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 04:12:39.42 ID:OLqFO2yC.net]
ありまぁす!

805 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 08:53:07.29 ID:Mg3bT8JO.net]
元の配列に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}

806 名前:781 mailto:sage [2018/02/25(日) 08:59:55.65 ID:pcyqC+jB.net]
SASS, HAML, Markdown とか、皆どれを使っているの?

>>783
ありがとう。素直にやるしかないですか

807 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 10:55:59.02 ID:mAmrOOAm.net]
Rails6開発開始

808 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 11:54:19.33 ID:OLqFO2yC.net]
>>784
ありまぁす!って言ってんだろうが



809 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 11:58:14.59 ID:OLqFO2yC.net]
[1, 2, 3, 4, 5, 6, 7].slice_before(4).to_a
=> [[1, 2, 3], [4, 5, 6, 7]]


(to_aはEnumeratorをそのまま使うようにすれば不要)

810 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 12:22:26.69 ID:caIICGcE.net]
これからRuby on RAILS勉強するんですけど
なんかいい参考書とかHPありますか?

811 名前:781 mailto:sage [2018/02/25(日) 12:57:24.51 ID:pcyqC+jB.net]
>>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 の本も出ているかも

812 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 13:36:01.35 ID:OLqFO2yC.net]
> slice_before だと、探している数字が複数回あると、
> そこから新たに、グルーピングが始まる

仕様どおりだろ

813 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 16:15:39.63 ID:shVfNcyg.net]
erbとかのテンプレートを元に画像を生成するgemってありませんか?
thinreportsでpdfではなくbmp,pngなどの画像を出力する感じです

814 名前:デフォルトの名無しさん [2018/02/27(火) 21:18:11.05 ID:PLAOSS1/.net]
「selenium webdriver screenshot」で検索!

Electron でも出来る

815 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 21:25:08.90 ID:+EUBPr3t.net]
inline_svg とか?

816 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 00:12:23.88 ID:mWE0Cmql.net]
>>784
AsciiDoc/Asciidoctor

817 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 19:08:53.94 ID:acVWAXbg.net]
シェルコマンドでimagemagick呼べばいいよ
gemすら使わずに一瞬でできる

818 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 21:12:02.76 ID:mIXPiXOq.net]
TSVデータを処理したいんですが
末尾の空白文字(タブ)がいつの間にか消えてしまいます

splitが自動削除するのは分かったけど他でも消えてる様です
この暗黙の空白削除現象を検索しても引っかからないんですがいい検索単語はないですか?
あと勝手に削除する理由はなんなんでしょう



819 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 21:36:50.04 ID:bddDF+sp.net]
https://docs.ruby-lang.org/ja/latest/class/String.html#I_SPLIT

820 名前:796 mailto:sage [2018/02/28(水) 22:18:52.36 ID:mIXPiXOq.net]
原因分からなかったけど解決しました

ループ内で毎回Hashに加えていくのを一旦stringにまとめてから
ループ後のHashに加えるようにしたら"\txxxxx\t\n"の後ろのタブが消えなくなりました

821 名前:796 mailto:sage [2018/02/28(水) 22:22:19.89 ID:mIXPiXOq.net]
前に壊したデータ読み直してました

822 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 00:03:53.83 ID:7c4/pzB6.net]
windows環境でrRubyinstaller2でインストールしてruby.exeのパスに非アスキー文字が含まれていると
requireしたときに$LOAD_PATHの非アスキー部分が文字化けしてload errorが起きるんですけど何か対処法はありませんでしょうか?
その場的に今はUTF-8で書いたコードの中で$LOAD_PATHに対応するパスを挿入して動かしてるんですが。。。
諸事情によりrubyはアスキー文字配下にインストールできないものとします

823 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 03:54:56.19 ID:QlU5Q+B8.net]
今すぐアンインストールしてWSLを入れよう

824 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 05:39:12.36 ID:xypD9Mi9.net]
>>800
バグ報告してくるんだ

825 名前:デフォルトの名無しさん [2018/03/02(金) 07:54:43.19 ID:mIGjbFX+.net]
Windows のirb でも、ascii 以外は正常に動かないから、
irb を使う時だけ、WSL・Ubuntu の方を使っている

UTF-8 では、cp932(shift-jis)が読めないのだろう

起動時オプションで、cp932 を指定すれば、読めるかも知れないけど、
逆にRuby 内部で、cp932 はヤバイのじゃないか?

UTF-8以外を使うと、他のアプリと通信できないとか、バグりそう

とにかく、PC のユーザー名・パス名などに、半角英数字以外を使うと、
多くのアプリでバグる

826 名前:803 mailto:sage [2018/03/02(金) 11:51:22.61 ID:mIGjbFX+.net]
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は微妙に異なるから、どこまで正常に動くか分からない

827 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 12:00:42.65 ID:OCKmRFPd.net]
なにをごちゃごちゃやってんだ?

こういうのは変換すべきレイヤーで変換するだけの話だろ
Rubyのスクリプト(に限らないが)は
どこでも同じように動かすんだから
ソースコードも内部も UTF-8だ
画面への入出力時に変換させればいいだけ

コマンドプロンプトをUTF-8に変換するって手もある
海外じゃCP932という日本専用の文字コード使ってないことぐらいわかるだろ?

828 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 12:39:35.62 ID:vnF4MMGw.net]
元々はwindowsのワイド文字をうまくutf8に変換してやってこうという方針だったのに
nobuがロケールに変換させまくって動かないだけ
まあ誰もバグ報告しないのも悪いけど



829 名前:803 mailto:sage [2018/03/02(金) 13:14:57.35 ID:mIGjbFX+.net]
Rubyist は、RubyでGem を作れるけど、C で低レベルなI/O を書けるわけじゃない

また、Linux・Windows の両方に対応させるのは、難しい

830 名前:803 mailto:sage [2018/03/02(金) 16:17:45.17 ID:mIGjbFX+.net]
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の日本語を考慮していないからじゃないの?






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

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

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