Ruby 初心者スレッド Part 62

■ このスレッドは過去ログ倉庫に格納されています
2017/11/24(金) 00:35:29.31ID:rLZHdQ3Q
プログラミング言語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/
2018/01/09(火) 14:13:43.58ID:mJzCa8Tc
Unicodeコードポイントにスケープされた4バイト文字をJSON..#parseすると怒られるんだけど、何かいい方法ないかな?
愚直にgsubするしかないのかな
https://ideone.com/V6sNRh
2018/01/09(火) 14:17:01.33ID:hZWQBtrg
断交が良い
697デフォルトの名無しさん
垢版 |
2018/01/09(火) 23:30:05.47
>>695
RubyのJSON.parseがUnicodeコードポイントエスケープに未対応なのかな?
「¥u{XXXXX}」を「¥uXXXX¥uXXXX」に変換してやればよさそうだけどね
698692
垢版 |
2018/01/10(水) 07:38:19.49ID:8FRtzSYP
Windows 10 Home, Ruby, Chrome, Selenium WebDriver は、64ビット版で、
ChromeDriver (32ビット版)も使えるけど、

Chrome v63 を、headless で使うと、エラーになる
「failed to launch gpu process.」

--headless, --disable-gpu を設定する必要がある

selenium-webdriver は、コンパイル無しで、gem を簡単にインストールできた

>>695-697
Ruby 2.4 からは、5バイト以上の絵文字なども、正規表現で使えると聞いた。
JSON では、そういう文字も使えないの?
2018/01/10(水) 12:32:40.29ID:8FRtzSYP
ReactDOM.render(
<div>
<h1>Hello, world!</h1>
<h2>texttext</h2>
</div>,
document.getElementById('app')
);

JavaScript の中に、直接HTML を書ける、
JSX みたいな書き方が、Ruby にある?

出来れば、erb のような書き方は、避けたい
2018/01/10(水) 16:07:42.64ID:STPlaxcQ
ヒアドキュメントは?
701デフォルトの名無しさん
垢版 |
2018/01/12(金) 18:18:49.39ID:nl8PJm0M
iCloud 9のコマンドプロンプト打っても俺のパソコンに反映されないんですが助けて
702デフォルトの名無しさん
垢版 |
2018/01/12(金) 22:23:27.82
>>698
規格上は使えるけどRubyのJSONライブラリがまだ対応していないっぽい
703デフォルトの名無しさん
垢版 |
2018/01/21(日) 21:58:25.57ID:Ycn/1JW2
改訂2版 パーフェクトRuby、Rubyサポーターズ、2017

この本は、ツールの説明なども多いから、読むのに時間がかかる
2018/01/22(月) 21:44:30.05ID:q3uir/RO
keyには現状:aか:bしか来ないけど将来的には増えるかもしれないとする。
ダックタイピングを意識して次みたいに書いてみたんだけどこれだと、
keyの種類が増えた時にそれに対応するクラスだけじゃなくてcase文も増やさないといけなくなる。
上手い書き方無いかな?
def hoge(key, value)
 x = case key
   when :a then A.new(value)
   when :b then B.new(value)
   end
 x.huga
 x.hage
end
2018/01/22(月) 22:06:22.86ID:LFdS7sNk
def hoge(key, value)
x = {a: A, b: B}[key].new(value)
x.huga
x.hage
end
2018/01/22(月) 22:32:29.51ID:O82cRrzF
def hoge(key, value)
x = Kernel.const_get(key.capitalize).new(value)
x.huga
x.hage
end
2018/01/22(月) 22:52:38.55ID:pYe1Cwj7
それは、典型的なオブジェクト指向の利点

派生クラスを使えば、switch〜case 文が無くなるから、
その部分の修正もしなくてよい

各派生クラスで、クラス内でオーバーライドされた、同名のメソッドを呼ぶだけ
2018/01/22(月) 23:04:44.47ID:cFg1Yiat
レンタルサーバーにRubyをインストールする手順に関する質問はここで良いでしょうか?
Railsの方が良いでしょうか?
2018/01/22(月) 23:35:54.90ID:/Sj7yLHe
Webサイトちょっと動かしたいだけなら自分で運用構築なんて時間の無駄だからPaaS使うことを強くお勧めする
710デフォルトの名無しさん
垢版 |
2018/01/23(火) 13:19:28.04ID:CDVCaOOu
環境構築には、vagrant, chef は、Ruby でレシピ(手順書)を書ける。
Docker もある

仮想環境コンテナ総合スレ Docker、Vagrant等 [無断転載禁止]c2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1487235664/l50
2018/01/23(火) 20:57:16.21ID:STirpdQ8
FJORD BOOT CAMP(フィヨルドブートキャンプ)
https://bootcamp.fjord.jp/

無職なら誰でもオンライン無料学習
2018/01/23(火) 23:03:46.38ID:CDVCaOOu
Ruby の女神・池澤あやかは、島根県のRuby合宿で、Rubyを極めたらしい
2018/01/24(水) 23:02:47.87ID:ap7jtKrX
今日mechanizeを使い出したんだけどいいなこれ
なんで今まで使わずにスクレイピングしてたんだろってくらい感動した
2018/01/25(木) 03:45:42.62ID:1frilWR+
本の虫: 60%の人間はプログラミングの素質がない
https://cpplover.blogspot.jp/2012/05/60.html
2018/01/25(木) 15:25:13.47ID:d3UPMMWN
バージョン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)
2018/01/25(木) 18:01:16.77ID:SW6+fB/4
>>714
fizzbuzz
2018/01/25(木) 19:53:33.66ID:8RoLWIQ9
>>715
ARGVの文字列がexternal_str_new_cstr()で作られてるみたいだけど、
windowsだとUTF8_PATHが真になって、文字列がrb_external_str_new_cstr()で作られてないから
taintになってないっぽい
2018/01/26(金) 19:35:15.96ID:ywFtALU+
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)
719デフォルトの名無しさん
垢版 |
2018/01/26(金) 22:16:50.68ID:lWqampzR
>/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 \」とする
2018/01/26(金) 22:22:02.58ID:lWqampzR
端末・コマンドプロンプトなどで、
which rsense, where rsense などと打てば、

rsense の実行ファイルがあるディレクトリが、
環境変数PATH に設定されているかどうかがわかる
2018/01/26(金) 22:26:40.41ID:lWqampzR
rsense の実行ファイルがあるディレクトリが、
環境変数PATH に設定されているなら

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

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

だから、こう打てばよい
722692
垢版 |
2018/01/26(金) 22:52:43.92ID:lWqampzR
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 のヘッドレスモードを使っている
723718
垢版 |
2018/01/26(金) 23:10:28.98ID:ywFtALU+
>>719
atomでの話とターミナルでの話が混ざっていてすみません。
atomでパスを ~/.rbenv/versions/2.4.1/bin/rsenseと書くと718で書いたエラーが出ます。
エラー内容はstartコマンドがないと言っているので確認のため
ターミナルで$ rsense startと打つとプロセスは走ります。
ただプロセスが走っているのにlocalhost:47367にアクセスできません。
2018/01/26(金) 23:32:26.03ID:lWqampzR
localhost は、つながらないとか、色々とバグるから、
127.0.0.1:47367 を使うこと

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

lsof とかで、開いているポートを調べる
2018/01/26(金) 23:46:55.80ID:lWqampzR
>atomでパスを ~/.rbenv/versions/2.4.1/bin/rsenseと書くと718で書いたエラーが出ます

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

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

外部から、コマンドプロンプト・端末・PowerShell を起動してやれば?
2018/01/26(金) 23:58:30.46ID:lWqampzR
>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を実行しなければならないとか
2018/01/27(土) 00:21:43.19ID:PF3DsJ0N
> .rbenv って、探索パスの順序を入れ替える、仮想化技術だろ。

なにも仮想化してないので、仮想化技術ではない
2018/01/27(土) 01:59:43.65ID:lUeqkPr+
pyenv, virtualenv(venv)などのPythonの仮想環境構築も、これと同じ

環境変数PATH の前方に、パスを追加して、実行するコマンドの探索パスを変えることで、
実行されるファイルを変える
729718
垢版 |
2018/01/27(土) 19:34:18.97ID:sDN5LFGv
rsenseがどうにも動かないのでatomでは他の補完パッケージを使うことにしました
730デフォルトの名無しさん
垢版 |
2018/01/27(土) 20:20:50.96ID:lUeqkPr+
bundle exec を付けないと、パスが探せないとか
731718
垢版 |
2018/01/27(土) 20:33:08.71ID:sDN5LFGv
>>730
ターミナルではコマンドが実行できるのでパスは通っているはずなんですが
指定されたポートのローカルサーバーにアクセス出来ない。
($ rbenv which rsense で ~/.rbenv/versions/2.4.1/bin/rsense が出ます)
atomではパスを通す前はno such directryのエラーがパスを通すとcommand not foundになるので
パス自体は通っているとは思うのですがコマンドが見つからない理由がわからない。
すみません、いろいろ言ってもらったのですが改善できなそうでした。
2018/01/28(日) 23:07:14.79ID:+HoRx5lM
Rubyスクリプト内から別のRubyスクリプトを実行して、エラーが出ても元のRubyスクリプトの処理を止めない方法はありますか?
2018/01/28(日) 23:22:35.75ID:ALu/+v8Q
シェルコマンドでruby実行すればいいだろ
所詮Rubyなんか書捨てスクリプトなんだからスマートさなんか気にしないで手っ取り早い方法を選べばいい
2018/01/29(月) 00:28:48.72ID:3fqaX6d7
UNIXならProcessクラス使えば
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 の下にあるログファイルを見て、
もっと詳しいエラーメッセージを取得して検索する
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
737デフォルトの名無しさん
垢版 |
2018/02/07(水) 21:03:36.63ID:/4oaORK0
Windows向けのRubyバイナリですが
ASRの2.5はいつ出るんでしょうか?
RubyInstallerはOLEがうまく動かないのでASRを使っています。
2018/02/07(水) 21:24:44.94ID:N9vep8wO
RubyはWindowsで使うものではない
WinでRubyなんてプロダクションでは全く使われていないので、最新バージョンに追従しなければ何かまずいことになるというプレッシャーは無く、
有志が気が向いたときに遊びでやってるだけだ
そんなものに期待するのがそもそもの間違い
いい加減諦めてWSLかVMかMacに移行しなさい
2018/02/07(水) 21:42:14.34ID:ZXClH+OJ
WindowsでRuby使うとかマゾもいいとこ。
おとなしくPythonにしとけばいいのに。
日本語の情報が豊富!とか言って初心者釣ってたやつらにも責任がある。
コミュニティがシェア9割のWindowsを親の仇のように嫌ってる時点で初心者向けなんか有り得ないというのに。
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 も簡単にインストールできた
2018/02/08(木) 04:50:05.31ID:lklijtOD
できたんだ
2018/02/08(木) 06:54:03.75ID:ZE8Ol0Sg
>>737
OLEがうまく動かないってどういうこと?
743737
垢版 |
2018/02/08(木) 18:58:35.45ID:zFeCrx9M
>>742
リモートのデータベースに接続できない
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だと繋がらないんだ
2018/02/09(金) 01:32:56.68ID:JPCfoDnF
まず、エラーメッセージを取得して、それで検索することから始める
2018/02/09(金) 01:36:30.27ID:ZFL6conz
そして5年前の情報とかしかなくて終わる
2018/02/09(金) 18:48:38.40ID:g1sd4Kag
AWSのCloud9のRubyで アラーム代わりにwavやmp3を再生したいんですけど、かんたんにできるでしょうか
2018/02/09(金) 19:25:09.92ID:FL1yxC1J
bokete みたいなwebサイト作りたいんですけど何種類かアイデアあるんすけど
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
2018/02/10(土) 01:37:14.21ID:dbzbK1DZ
>>748
Ruby関係ない
純粋にJavaScriptやHTML5の話
2018/02/10(土) 08:42:39.65ID:BVqOrgag
>>750
WindowsだろうがLinuxだろうがワンライナーならどちらのクォーテーション・マークでも動作するから置換する必要はない
それでも置換するなら、簡単なものなら..tr('"\'','\'"')
真面目にやるなら式中の"を%Qに'を%qにでもすればいいんじゃない
2018/02/10(土) 17:44:21.82ID:3K6ZWpKd
Array#zipに関する質問です。
aを二次元座標[x, y]の配列として
a[0].zip(*a[1..-1])と同じ動作を効率的にできるだけ短く書くコードを教えてください。
2018/02/10(土) 17:55:38.94ID:eFhUfahp
>>753
そんなところをハックしてもパフォーマンスは一ミリも改善しません
速くしたいなら他の言語を使うか、SQLをチューニングましょう
2018/02/10(土) 20:29:37.87ID:Jen4nAbv
aの要素数が滅茶苦茶多いと、引数に渡すだけで大変そう
2018/02/10(土) 21:53:50.96ID:ELWGSSBQ
引数を渡すかわりに引導を渡してみては?
2018/02/10(土) 22:18:46.37ID:BVqOrgag
速いかは知らないけど
a.transposeでいいんじゃないの
2018/02/11(日) 18:24:55.59ID:ONLKHfKt
>>757
transposeなんてメソッド存在していたとは……知らなかった。
というかriのArray#zipで言及して欲しい。
2018/02/11(日) 20:12:19.15ID:aLeqVhz7
残念だが手遅れ
2018/02/11(日) 20:17:25.63ID:JLQLPcxv
よく使うクラスだけでもマニュアル全部読んでおくといいよ大した量じゃないし
761デフォルトの名無しさん
垢版 |
2018/02/12(月) 13:39:48.05ID:S+p/PDus
普通は、transpose ぐらいあるだろ。
R なんて、行列が逆だから、transpose が無かったら、混乱する

module Enumerable だけは、読んでおけ
762デフォルトの名無しさん
垢版 |
2018/02/14(水) 16:44:54.84ID:gwupYb1h
Windows10 の、Chrome の自動操作で、
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
2018/02/17(土) 22:10:01.26ID:C+rXeEsA
何で句読点そんななの?
2018/02/19(月) 08:06:13.46ID:FUvFB9Jm
http://www2.ske48.co.jp/blog/detail/id:20150713113730840
これをみたまえ
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のインスタンスは継承している。
2018/02/21(水) 20:05:24.59ID:HEIjAjBo
Classクラスのクラスメソッドは、
自作MyClassクラスのクラスメソッドとなるか?
2018/02/21(水) 20:07:58.08ID:gGEObxum
なるよ
2018/02/21(水) 21:00:07.80ID:HEIjAjBo
Classクラスの特異クラスのインスタンスメソッドは、
自作MyClassクラスのクラスメソッドとなるか?
2018/02/21(水) 21:07:50.97ID:HEIjAjBo
オブジェクトの特異クラスのメソッドは、
そのオブジェクトの特異メソッドとなる。
では、オブジェクトの特異クラスのそのまた特異クラスのメソッドは、
そのオブジェクトの特異クラスメソッドとなるか?
2018/02/21(水) 21:13:10.82ID:6K5cWIBm
ご覧ください。
こういう処理すべき本質と離れた下らないことしか話すことのないクソ言語とハエ信者たちです。
2018/02/21(水) 22:26:16.94ID:No3TMOHA
ご覧ください
こういうプログラミングの話題でない煽りしかできない底辺です
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/
2018/02/22(木) 19:49:41.37ID:w/32fA/q
pythonごときクソ言語に劣等感抱いててワロタwww
追い詰められ過ぎwww消えそうwwwww
2018/02/22(木) 22:20:20.36ID:3IU5aIfi
クソだろうが何だろうが使われたもの勝ち
2018/02/22(木) 22:26:35.15ID:K6gwUVsb
Ruby にも、アルゴリズム・数学系のライブラリが揃っていれば、
蛇には負けぬものを。ぐぬぬぬぬ

実際、プログラミングコンテスト・パズル系は、Rubyで説明することが多いのに
2018/02/23(金) 04:41:21.61ID:rDH2T2Uu
今日からRubyの勉強する
楽しみ
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/
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]
2018/02/25(日) 04:12:39.42ID:OLqFO2yC
ありまぁす!
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}
784781
垢版 |
2018/02/25(日) 08:59:55.65ID:pcyqC+jB
SASS, HAML, Markdown とか、皆どれを使っているの?

>>783
ありがとう。素直にやるしかないですか
2018/02/25(日) 10:55:59.02ID:mAmrOOAm
Rails6開発開始
2018/02/25(日) 11:54:19.33ID:OLqFO2yC
>>784
ありまぁす!って言ってんだろうが
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をそのまま使うようにすれば不要)
2018/02/25(日) 12:22:26.69ID:caIICGcE
これからRuby on RAILS勉強するんですけど
なんかいい参考書とか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 の本も出ているかも
2018/02/25(日) 13:36:01.35ID:OLqFO2yC
> slice_before だと、探している数字が複数回あると、
> そこから新たに、グルーピングが始まる

仕様どおりだろ
2018/02/27(火) 16:15:39.63ID:shVfNcyg
erbとかのテンプレートを元に画像を生成するgemってありませんか?
thinreportsでpdfではなくbmp,pngなどの画像を出力する感じです
792デフォルトの名無しさん
垢版 |
2018/02/27(火) 21:18:11.05ID:PLAOSS1/
「selenium webdriver screenshot」で検索!

Electron でも出来る
2018/02/27(火) 21:25:08.90ID:+EUBPr3t
inline_svg とか?
2018/02/28(水) 00:12:23.88ID:mWE0Cmql
>>784
AsciiDoc/Asciidoctor
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。