17/12/22 21:24:19.52 6yk8gXaG.net
>>500
> 単純に静的言語はコンパイルである程度構文エラーを検出できるから楽を、
> リファクタリングが楽だと思ってるんじゃないかな
違うよ。静的型付け言語の場合が簡単なのは、
ソースコード上に型が書いてあるからだよ
コンパイルエラーは関係ない
例えば
class Klass {
522:デフォルトの名無しさん
17/12/22 21:28:48.59 6yk8gXaG.net
(間違って途中で送信した)
例えば
class Klass {
function foo() { }
}
みたいなクラスがあって、
fooをbarに書き換える時
↓ このように型が書いてあれば、ここのfooもbarに
書き換えなきゃいけないとわかる
function f(Klass k) {
k.foo();
}
↓ でもこの場合は、書き換えれば良いのかわからない
function f(k) {
k.foo();
}
ソースコード全体から、fを呼び出している所をすべて探して
引数にKlassクラス(もしくはそれを継承したクラス)を
渡していることを確認しなければいけない
523:デフォルトの名無しさん
17/12/22 21:38:46.01 6yk8gXaG.net
今回は一番簡単な例としてメソッド名の変更を例にしたが
例えば、メソッドの引数の数が変わったときも
型がわかれば、メソッドが特定できるので、変えなければいけない場所がわかる
メソッドが消えたこともわかる
クラス名で検索すれば、そのクラスを使ってるモジュールもわかるしね
シグネチャの変更に関わる部分は、静的型付け言語の場合は
すごく簡単に変更すべき場所を特定できる
524:デフォルトの名無しさん
17/12/22 21:40:18.92 6yk8gXaG.net
ここにリファクタリングの種類が書いてあるが、大部分は
シグネチャ(クラスやメソッドの名前や引数の変更)を伴うものだよ
URLリンク(so-zou.jp)
525:デフォルトの名無しさん
17/12/22 21:42:20.33 2CqGXpCv.net
Rubyの静的解析の難しさに関して言えば、単にソースに型が書いてないというだけではないんだよなあ
Rubyって、静的なクラス定義というのがそもそも存在しないんだよ
動かしてみて、RubyのVMのメモリ上に結果としてクラスオブジェクトができて、そこではじめてクラスが定義されたことになるの
この式のクラスは何か?とか考える以前に、クラスなんてものは動かしてみるまで無いの
526:デフォルトの名無しさん
17/12/22 21:48:13.59 6yk8gXaG.net
そう。それもあるね。
動くか、動いてないかの二択じゃないか?って
思うかもしれないがぜんぜん違う。
動いてない状態というのは一つしかないが、
動いている状態というのは無限に近い数ある
「0」と「0以上」の違いと同じ
動いてないという一つの状態なら、全部を調べることも可能だが、
動いているという無限にある状態は、調べ上げることは不可能
527:デフォルトの名無しさん
17/12/22 22:04:35.06 5nY8hqH+.net
>>498
Rubyの箇所をJavaScriptやPythonといった他の動的型付け言語へ
改変しても当てはまる事柄しか語っていないと指摘しているんだよ
以下 >>506-509 まで、Rubyには限定されないありふれた一般論が続く
>>501
つまり、そうゆうこと
>>511
>Rubyって、静的なクラス定義というのがそもそも存在しないんだよ
これも「動的型付け言語って、静的なクラス定義というのがそもそも存在しない」という話だね
Rubyに限らずJavaScriptやPythonといった他の動的型付け言語であれば、
「クラスなんてものは動かしてみるまで無い」のが動的型付けの原理だよ
528:デフォルトの名無しさん
17/12/22 22:17:37.91 6yk8gXaG.net
「クラスなんてものは動かしてみるまで無い」かもしれないが、
「仕様(やりたいこと)は動かしてみなくてもある」
ソースコードは動かさなくても「そのクラスは○○であること」
(○○にはメソッドが有ることとかはいります)を前提に
書いてあるというのに「動かしてみるまで無い」ことに意味があるのだろうか
529:デフォルトの名無しさん
17/12/22 22:21:48.38 2CqGXpCv.net
>>513がRailsを触ったことがないのはわかった
530:デフォルトの名無しさん
17/12/22 22:25:46.71 6yk8gXaG.net
>>514
反論して良いんだよ?
Railsがなんだって?
普通はデータベースにそのフィールドが
有るという前提でコード書くよね?
531:デフォルトの名無しさん
17/12/22 22:27:24.55 2CqGXpCv.net
>>515
それをどうやって実行前に認識するの?
DBのスキーマをクエリして調べるのか?w
532:デフォルトの名無しさん
17/12/22 22:32:17.34 6yk8gXaG.net
>>516
DBのスキーマを実行時に変えたりすることなんてまず無いだろ
実行前にスキーマは決まってる。
ならクラスも実行前に生成することは可能なわけだが?
Railsが実行後に決めているからと言って、実行時に決まることにはならない
スキーマは実行前に決まっているし、今話してるソースコードだって
そのフィールドが存在するという前提のソースコードを書いてるだろ
動的に生成してるその情報は、本当は実行前に決まってるんやで?
533:516
17/12/22 22:43:01.67 2CqGXpCv.net
可能かどうかとやるかどうかは別問題だろう
それRuby3の型検査の仕様として提案してみろ、このスレどころではなく罵倒と嘲笑の的だぞ
534:デフォルトの名無しさん
17/12/22 22:44:49.43 6yk8gXaG.net
>>518
これのどこが型検査の仕様なんだ?
そりゃ馬鹿にされるだろうな
型検査の仕様だと言ったお前が
535:デフォルトの名無しさん
17/12/22 22:49:53.16 6yk8gXaG.net
動的言語といっても本当に動的に決まることはほとんどなく
静的に決まってる情報を元に動的に作ってるだけなんだよな。
だから実行するたびに毎回同じものが作られる。
毎回同じものを作るなら、キャッシュするかのように
最初から作っておけば良いわけさ
536:デフォルトの名無しさん
17/12/22 22:50:08.15 2CqGXpCv.net
>>519
DBスキーマまで考慮したメタプログラミング対応の静的解析ツールを作るってこと?
実用的なものができると本気で思うなら作ればいいんじゃね?
みんな喜ぶし、そんな実績があればそれこそMRIの主要メンバーとしてRuby3の仕様決定を主導できるぞ
頑張れよ
537:デフォルトの名無しさん
17/12/22 23:01:34.92 6yk8gXaG.net
>>521
だから動的言語の仕様じゃ無理だって話してるじゃんw
ソースコードにクラスという型を書いてあるから多くのリファクタリングが簡単に出来るようになる
静的に決まってるならソースコードに静的に書けるわけで、
静的に書いておけば、リファクタリングが簡単に早くできるって話をしてる
538:デフォルトの名無しさん
17/12/22 23:36:34.81 5nY8hqH+.net
>>522
だからそれはRubyだけでなくJavaScriptやPythonを含む
大半の「動的型付け言語じゃ無理だ」っていう当たり前の話だろ?
539:デフォルトの名無しさん
17/12/23 00:24:15.46 eRzaIxhX.net
動的メソッドは?(初心者並感)
540:デフォルトの名無しさん
17/12/23 07:12:36.09 SJqo2RLv.net
>>522のその論理はもういいよw
食いたくないのに食わされてお腹いっぱいっすわ
541:デフォルトの名無しさん
17/12/23 07:28:35.18 SJqo2RLv.net
リファクタリングはシンプルにしていくのが目的なのに、話を小難しく複雑にしたいのはなぜだ
>>512 とか。
動的言語うんぬんゆってるやつから不吉な匂いがする
542:デフォルトの名無しさん
17/12/23 10:11:10.96 f0qvO5Sa.net
>>526
リファクタリングは、シンプルにしていくのが目的
だから、話を小難しく複雑したくない?
シンプルにしたいのはリファクタリングであって
「話」の話は関係ないよ
543:デフォルトの名無しさん
17/12/23 10:11:40.67 f0qvO5Sa.net
>>525
食いたくないなら見るな
544:デフォルトの名無しさん
17/12/23 10:13:50.17 AknL/7GP.net
このスレはいっつも議論してんなぁ
みんな日中は何してる人なの?
545:デフォルトの名無しさん
17/12/23 10:18:01.60 f0qvO5Sa.net
普通に仕事してるよ。
だから平日の日中は書き込めない
546:デフォルトの名無しさん
17/12/23 10:58:49.51 YmDQ4aAw.net
Rspecで下みたいな書き方ってあり?
それとも避けられる?
# def f n
# n + n
# end
context 'fの引数が0から255のとき' do
??256.times do |i|
????it { expect( f(i) ).to eq (2 * i) }
??end
end
547:デフォルトの名無しさん
17/12/23 11:05:45.83 QLWK33W3.net
>>531
テストの一般論で言えばダメ
それ結局同じことを実装とテスト両方に書いてるだけで、テストとして意味をなしてない
テストは入出力ともどんな低脳か見ても間違えようのない具体的な値を書くのが鉄則
548:デフォルトの名無しさん
17/12/23 11:10:32.49 YmDQ4aAw.net
>>532
じゃあもし0から255まで全部パスするか書きたいときは
it { expect( f(0) ).to eq (0) }
it { expect( f(1) ).to eq (2) }
...
ってズラっと列挙しろってこと?
549:デフォルトの名無しさん
17/12/23 11:14:45.72 QLWK33W3.net
あと、「nの2倍を返す」という観点と「入力は0から255まで」という観点がごっちゃになってるのも良くない
この場合、前者を代表値(5とか)でテストして、それに加えて後者の観点で境界値(0と255)を試すくらいでいいと思うよ
代表値は冗長かもしれないけど前者の観点をわかりやすく表現するという意味では価値はある
550:デフォルトの名無しさん
17/12/23 11:18:46.43 LnjVX11P.net
プロパティテストにしろよ。
551:デフォルトの名無しさん
17/12/23 11:58:54.91 YmDQ4aAw.net
>>534
なるほど、どうもありがとう
代表値、境界値(+不正な値)を試すくらいでいいんだね
552:デフォルトの名無しさん
17/12/23 15:22:55.73 f0qvO5Sa.net
テステス
553:デフォルトの名無しさん
17/12/23 15:29:55.01 UWK7YGb5.net
荒らしがハッスるしとる
やっぱアンチも人のいないアンチスレより人の多い本スレに来てしゃべりたいのか
かわいそう
554:デフォルトの名無しさん
17/12/23 15:32:00.40 f0qvO5Sa.net
あ、いや、いままでとちょっと違うことを書き込もうと思ったけど
ID変わってたかなーって思っただけ
変わってなかったので違う話はしないよw
あと他のスレには行かないと何度もいってる
あきらメロン
555:デフォルトの名無しさん
17/12/24 09:48:03.56 24EH1p52.net
URLリンク(rubyinstaller.org)
Windows10 に、Ruby を入れようと、
上のページの、7-Zip Archives から、Ruby 2.4(x64)をダウンロードすると、
rubyinstaller-2.4.3-1-x64.7z というファイル名だった。
これを、7-Zip で解凍すると、56MB になった
C:\Ruby24-x64\
とフォルダ名を変えたけど、ここからどうやってインストールするの?
それとも、これはインストーラーではないのかな?
556:デフォルトの名無しさん
17/12/24 10:02:29.66 naA/wMe4.net
環境を書いてから
何したいかを言え
557:デフォルトの名無しさん
17/12/24 10:08:38.24 imZP4RC3.net
なんで素直にexe落とさないの?
558:540
17/12/24 10:48:40.19 24EH1p52.net
圧縮された書庫だから、7-Zip Archives から、Ruby 2.4(x64)をダウンロードしたけど、
これはインストーラーとは違うものなのか?
rubyinstaller-2.4.3-1-x64.7z というファイル名だったけど
7-Zip Archives の上にある、RubyInstallers から、Ruby 2.4(x64)をダウンロードしてみるわ
559:540
17/12/24 11:01:29.86 24EH1p52.net
PowerShell で、7-Zip Archives 中の、\bin\ridk.ps1 version を実行してみた
PS C:\Ruby24-x64\bin> .\ridk.ps1 version
---
ruby:
path: C:/Ruby24-x64
version: 2.4.3
platform: x64-mingw32
ruby_installer:
package_version: 2.4.3-1
git_commit: 36aac73
os: Microsoft Windows [Version 10.0.16299.125]
やっぱり、これも、RubyInstaller なのかな?
よくわからない
560:デフォルトの名無しさん
17/12/24 11:02:00.42 A3ERayLu.net
Rubyにパイプラインオペレータってないの?
JavaScriptだと
exclaim(capitalize(doubleSay("hello")));
というカッコの入れ子が
"hello" |> doubleSay |> capitalize |> exclaim;
とシェルスクリプトのパイプのように
流れるような形で記述できるようになるらしいんだけど
561:デフォルトの名無しさん
17/12/24 11:05:46.33 mMj7aGtc.net
>>545
そんなのがあると誰もオブジェクト指向しなくなるからRubyの思想には合わないだろ
素直にメソッドチェインでやるか、さっさと関数型言語に乗り換えるべき
562:540
17/12/24 11:08:13.75 24EH1p52.net
7-Zip Archives からダウンロードした、Ruby 2.4(x64)は、
ひょっとして、CUI 版のインストーラーなのかな?
(rubyinstaller-2.4.3-1-x64.7z というファイル名だった)
7-Zip Archives 中の、\bin\ridk.ps1 に引数を付けて、
インストールするのかも知れない
よくわからないけど。
インストーラーじゃないかも知れないし
563:デフォルトの名無しさん
17/12/24 11:08:41.37 2eVeUlKQ.net
>>544
>>542
>>545
こんな gem がある
URLリンク(yuroyoro.github.io)
564:デフォルトの名無しさん
17/12/24 11:14:59.06 24EH1p52.net
>>545-546
まさに、Elixir
Matz も、Streem という新言語を考案して、日経Linux に連載していた。
GitHub にあるらしい
565:540
17/12/24 11:29:56.75 24EH1p52.net
7-Zip Archives から、Ruby 2.4(x64)をダウンロードすると、
rubyinstaller-2.4.3-1-x64.7z というファイル名だった。
これを、7-Zip で解凍すると、56MB になった
56MB もあるし、\bin の中には、ruby.exe, rubyw.exe もある。
実行環境が揃っているような気もする
実はポータブル版で、環境変数PATH を通せば、実行できるのかも知れない
よくわからないけど、何か捨てがたいw
566:540
17/12/24 11:37:26.57 24EH1p52.net
PowerShell で、7-Zip Archives 中の、\bin\ruby.exe -v を実行してみた
PS C:\Ruby24-x64\bin> .\ruby.exe -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]
やっぱり、7-Zip Archives の中にあるやつは、ポータブル版じゃないのか?
ひょっとして、実行もできるかも?
567:デフォルトの名無しさん
17/12/24 12:51:21.82 W/aeQ+z1.net
実行できて当たり前なのに何を言っているのか
インストーラーはパスを通したりするだけだぞ
568:540
17/12/24 13:37:01.71 24EH1p52.net
7-Zip Archives からダウンロードした、Ruby 2.4(x64)は、
環境変数PATH が通っていないだけで、実行できるの?
ここに、実行環境が一式が揃っているの?
つまり、どこにでも移動できるポータブル版?
569:デフォルトの名無しさん
17/12/24 13:55:33.60 A3ERayLu.net
>>548
期待したけど、やっぱりRubyの文法からは抜け出せないか
DSLが得意と言っても所詮Rubyの言語であることに変わりはないしな
570:デフォルトの名無しさん
17/12/24 13:58:58.91 A3ERayLu.net
>>546
まあ頭が固いw
a + b はオブジェクト指向じゃないっていうんですか?
a.add(b) ってしなきゃいけないですね
571:デフォルトの名無しさん
17/12/24 14:12:36.12 BNj/0IJ2.net
>>555
Rubyに文句を言う前にまずはRubyの仕様くらいちゃんと理解しよう
+は全く特別なところのないごく普通のインスタンスメソッド呼び出しだぞ
関数型でaddにパイプライン使うとしたら
b |> add(a) # add(a, b)に相当
こうなるわけだが、理解してるか?
572:デフォルトの名無しさん
17/12/24 14:15:02.58 A3ERayLu.net
>>556
まあ君はJavaScriptの仕様を知らなくて当然だろうけどね
|> オペレータっていうのは、引数を一つの関数呼び出しの
シンタックスシュガーに過ぎない
だから関数呼び出しを行ってるのと一緒
関数呼び出しをするとオブジェクト指向にならないのか?
そんなわけあるかw
573:デフォルトの名無しさん
17/12/24 14:29:26.20 BNj/0IJ2.net
>>557
ある機能が言語に追加されることでコーディングのスタイルが大きく変わってしまうことはよくある。
まあそういう経験則的な話は君には通じなそうだから、もっと具体的にRubyとの相性の悪さを説明してあげよう。
まず、関数型言語やJavaScriptでは裸の関数名は第一級関数(関数オブジェクト)だが、Rubyではメソッド呼び出しになってしまう。
だから>>548のようにシンボルを使った汚いハックをするか、|>の後にくる識別子は第一級関数として扱うという特別ルールを設けることになる。
特別ルールを設けたとしても、>>556のaddの例みたいな使い方には対応できない。
君は関数型言語を知らないみたいだから説明しとくと、add(a)はadd関数の第一引数にaを部分適用(カリー化)した引数一個の関数を返す。
|>の直後には必ず関数名が来るというルールだと、これは実現できないのはわかるよね。
574:558
17/12/24 14:33:34.04 BNj/0IJ2.net
それと、Rubyの関数は殆どがインスタンスメソッドであるというのも忘れてはいけない。
x |> y.hoge
これは y.hoge(x) と解釈すべきだろうか?
それともy.hoge()(x)かな?
今のRubyの仕様からすると後者が自然だと思わない?
575:デフォルトの名無しさん
17/12/24 14:46:41.85 bBhW4Y9m.net
ようお前ら。
Ruby 2.5が来るのは明日だぞ。
gem作ってる奴はちゃんと準備出来てるか?
Ruby2.5にした途端に泣きを見ることのないようにしとけよ。
576:デフォルトの名無しさん
17/12/24 15:29:04.65 A3ERayLu.net
>>558
あ、なるほどw シンタックスシュガーって言ってるのに、
あんたは関数型の仕様に変更すると思い込んでるわけかw
俺、Rubyを関数型にしろなんて一言も言ってないよ?
JavaScriptが関数型になったなんて一言も言ってないよ?
ただ、関数呼び出しのネストは見づらいから、一つの引数を取る関数の呼び出しを
|> でつなげた "書き方" ができると良いねって話しかしてないんだよ
> 今のRubyの仕様からすると後者が自然だと思わない?
理由が書いてないから判断不可能だね
>>556
> 関数型でaddにパイプライン使うとしたら
> b |> add(a) # add(a, b)に相当
> こうなるわけだが、理解してるか?
ぷぷw |> という記号を使っだけで、関数型になるべきだなんて
思い込んでるからそういう結論になる。馬鹿だねぇ
JavaScriptの関数型でない単なるパイプラインオペレータは引数が1つの
関数を受け取ることしかできない。 カリー化?そんなものはしない。
関数型のパイプラインオペレータを導入なんて話はしてないんだから当然の結論
引数が複数の関数を使いたければ、アロー関数でそうなるように書くだけの話
URLリンク(github.com)
let newScore = person.score |> double |> (_ => add(7, _)) # アンダースコアは只の変数、iでもaでも良い
papp proposalのpappメソッドを使うとこう書くこともできるようだけど
let newScore = person.score |> double |> add.papp(7)
577:デフォルトの名無しさん
17/12/24 15:52:11.56 2eVeUlKQ.net
>>554
Ruby使うんだから当たり前の話でそ?
Rubyじゃないスタイルでどうしても書きたいならすでにRubyを使う必要はないと思うんだけど
578:デフォルトの名無しさん
17/12/24 15:54:48.61 /VeWYwOF.net
Juliaおぬぬめ
579:デフォルトの名無しさん
17/12/24 16:00:56.08 2eVeUlKQ.net
Juliaいいね。これから大注目の言語だよ
ただ、現状は起動が激重なのでJuliacとかが公式採用されないとつらいかも
そういう意味ではJavaに似てるのかも(言語仕様という意味ではなく)
580:デフォルトの名無しさん
17/12/24 16:12:39.10 BNj/0IJ2.net
Juliaはクソ重い計算やデータの処理を長時間ぶっ通しで動かすための言語だよ
Rubyと比べるようなもんではないし、起動時間が問題になるようなものに使うのも間違い
581:デフォルトの名無しさん
17/12/24 20:04:37.70 4g6ysjQ5.net
>>545
>流れるような形で記述できるようになるらしいんだけど
できるようになるといふのは、以下の提案かな?
・ESNext Proposal: The Pipeline Operator
URLリンク(github.com)
調べてみると、これはあくまで提案(proposal)であって、
5段階あるECMAScript(= JavaScript)仕様策定過程の2番目に過ぎない
0. Strawman
1. Proposal <― パイプライン演算子の状態
2. Draft
3. Candidate
4. Finished
当然、現時点でその実装は存在しておらず「絵に描いた餅」に過ぎない
言い換えると、「こんなのできたらいいなあ」といふ話だよね?
582:デフォルトの名無しさん
17/12/24 20:35:54.14 4g6ysjQ5.net
>>561
>関数型のパイプラインオペレータを導入なんて話はしてないんだから当然の結論
え、こう書けないっていうの?
let newScore = person.score |> double |> add(7)
もし pipeline proposal が Finished(採用決定)になったとしても、このコードを
let newScore = person.score |> double |> (_ => add(7, _))
こうも冗長に書かなけりゃならないなんて、ダサイというか中途半端な提案だと思う
>>554の言�
583:tを借りると: 期待したけど、やっぱりJavaScriptの文法からは抜け出せないか 新しい提案と言っても所詮JavaScriptの言語であることに変わりはないしな っていう感想です しかも更にpapp proposal(部分適用サポートの提案)がFinishedになったと仮定してもなお let newScore = person.score |> double |> add.papp(7) こうなっちゃうなんて、もう少し練り直してから提案した方がいいと思うんだけどなぁ
584:540
17/12/24 22:02:54.10 24EH1p52.net
JS は、Ruby, Elixir の影響が強い。
Kotlin も、Groovy, Ruby の影響が強い
誰か、
>>540
の、7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64)をどうすれば
585:よいのか、教えてほしい
586:デフォルトの名無しさん
17/12/24 22:25:11.95 ZqTzsWSR.net
>>568
パスを通せ
587:デフォルトの名無しさん
17/12/24 23:05:16.75 A3ERayLu.net
>>567
> え、こう書けないっていうの?
少しは頭を働かせようよw
そこにある、add(7) が引数を一つ取る関数を返すなら書けるよ
それを汎用化したのがpapp。それにJavaScriptでカリー化する方法だってある
JavaScriptは関数型言語じゃないんだから、関数型言語の方からみて
ダサいとか言うなよw お前、関数型に洗脳されてるだろw
関数型を取り入れたなんて話はしてない。お前が言い出しただけ。
単にパイプラインオペレータという関数のネストを見やすくする機能を
追加するってだけの話
588:デフォルトの名無しさん
17/12/24 23:07:29.50 2eVeUlKQ.net
>>570
Rubyについてはこんな書き方しかできないのかと毒づいておいて、JavaScripitについては全力擁護
これをRubyスレでやらかしてたら荒らし認定を食らってもしょうがないレベルだぞ
589:デフォルトの名無しさん
17/12/24 23:12:18.94 A3ERayLu.net
>>566
> 当然、現時点でその実装は存在しておらず「絵に描いた餅」に過ぎない
知らないなら、知ったかぶりして語らないでよw
JavaScriptは5段階あるECMAScript(= JavaScript)仕様策定過程を
必ず0から一つづつ上げて行かないといけない
だからどんな仕様だって最初は0から始まる
こういう提案から仕様化されるまでのプロセスが明確になってるのは素晴らしいことだよ
で、Stage 1だが
URLリンク(azu.github.io)
・プロポーザルの目的や解決方法を示す
・Polyfillやデモ等を用いて解説する
どういうことかというとPolyfillやデモ等があるってことだ。
わかりやすく言うと、すでに使う方法があるってことだ。それがこれ
URLリンク(www.npmjs.com)
なので絵に描いた餅ではない。絵に描いた餅はStage 0
その0を脱却して、すでに使う方法が出来たということ
590:540
17/12/24 23:16:34.36 24EH1p52.net
7-Zip Archives の所からダウンロードした、Ruby 2.4(x64)を解凍し、
C:\Ruby24-x64 に改名して、
Windows10 で、ユーザー環境変数に、C:\Ruby24-x64\bin を追加したら、
PowerShell で、ruby コマンドが使えるようになった
PS C:\Users\Owner\Documents\Ruby> ruby -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]
C:\Ruby24-x64\bin には、erb, gem, irb, rake, ruby.exe, rubyw.exe
などのコマンドがあるから、
7-Zip Archives の所にあるものも、Rubyのポータブル版の実行環境なのかも
591:デフォルトの名無しさん
17/12/24 23:17:27.23 2eVeUlKQ.net
>>572
でさ、結局何が言いたいの?
JavaScriptサイコーってのが言いたいのなら完全にスレ違いだよ
592:540
17/12/24 23:23:27.95 24EH1p52.net
ちなみに、rubyinstaller の 7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64)は9MB で、解凍すると56MB になった
1/6 に圧縮されている
593:デフォルトの名無しさん
17/12/24 23:37:20.25 A3ERayLu.net
>>574
> でさ、結局何が言いたいの?
Rubyもサイコーになろうぜ
594:デフォルトの名無しさん
17/12/25 00:01:06.18 h6gXOlbY.net
>>570
>関数型を取り入れたなんて話はしてない。お前が言い出しただけ。
>>556 とは別人だけど、IDを確認できないほど冷静さを失っているのかな?
また、そもそも>>545の exclaim, capitalize, doubleSay という関数単位で部品化して
パイプライン演算子で組み立てるという発想そのものが関数型プログラミングであり、
それを自分(ID:A3ERayLu )から言いだしたという認識ができていないのかね?
>単にパイプラインオペレータという関数のネストを見やすくする機能を追加するってだけの話
だよね、関数型のパイプライン演算子と同じ名前だけど中身は微妙に異なるJavaScript固有の方言が
一つ提案されたという、ただそれだけの話
しかも最終的に採用されるか否かも確定すらしていない Proposal 段階でしかないといふ
595:デフォルトの名無しさん
17/12/25 00:21:34.94 mSK8fdnz.net
> また、そもそも>>545の exclaim, capitalize, doubleSay という関数単位で部品化して
> パイプライン演算子で組み立てるという発想そのものが関数型プログラミングであり、
関数呼び出しの形を変えただけ、
関数型プログラミングとは全く関係ない
596:デフォルトの名無しさん
17/12/25 00:25:59.73 h6gXOlbY.net
>>576
関数型言語のパイプライン演算子がサイコーという話なら同意するし、
それがオブジェクト志向言語であるRubyにとって今すぐ必要かどうかは別
597:にして、 数ある将来のRuby構想に向けた提案の一つとして理解したい でも >>561,570で自身(ID:A3ERayLu)が語っているように、 JavaScriptのそれは関数型ではないJavaScript固有の方言なんだろ? JavaScriptが独自の道に進もうとしてるなら「どうぞお好きになさいませ」だし、 それにRubyも従うべきという話に至っては「何を考えてるの?」としか言えないね >>570 >単にパイプラインオペレータという関数のネストを見やすくする機能を >追加するってだけの話 どちらかというと日常的にカッコだらけになるのはPythonだから、 そちらへ提案した方がいいんではないかな http://mevius.2ch.net/test/read.cgi/tech/1491491123/44-46 関数型プログラミングを公式文書で否定しているPythonだから、 関数型ではないパイプライン演算子の提案はきっと喜ばれるよ
598:デフォルトの名無しさん
17/12/25 00:38:42.38 W15ZQhn0.net
いずれにせよ>>559のようにメソッド呼出の括弧省略の問題があるからJavaScriptやCaml系のようなクリーンなシンタックスにはならないけどね
&:symbolとか->みたいなハック感溢れる醜い構文になる
599:デフォルトの名無しさん
17/12/25 01:02:31.40 h6gXOlbY.net
>>580
いや、オブジェクト指向言語のRubyなら、現時点でも
簡潔にメソッドチェーンで流れるようなコードが書ける
以下は>>545の例:
URLリンク(ideone.com)
refinements に関しては以下の記事が分かりやすかったのでご参考
・Ruby の refinements の使い途 - Qiita
URLリンク(qiita.com)
で、何かご不満はございますか?
600:デフォルトの名無しさん
17/12/25 01:03:23.68 mSK8fdnz.net
>>579
JavaScriptは元から関数型じゃないし
関数型になんかなろうとしてないよw
601:デフォルトの名無しさん
17/12/25 01:05:56.92 mSK8fdnz.net
>>581
> で、何かご不満はございますか?
はい。
def foo(i); end
def bar(i); end
def baz(i); end
となっているものの baz(bar(foo(1)) という呼び出しを
メソッドチェーンで繋げないということです。
パイプラインオペレータならこの通り
1 |> foo |> bar |> baz
602:デフォルトの名無しさん
17/12/25 01:53:39.67 h6gXOlbY.net
>>582
>JavaScriptは元から関数型じゃないし
うーみゅ、やっぱりJavaScriptって誤解されてるのね
・クロージャって何がいいの?
スレリンク(tech板:224番)
リンク切れ邦訳版「JavaScriptの勉強:世界で最も誤解されたプログラミング言語」
URLリンク(web.archive.org)
> Cの皮を被ったLisp
>
> JavaScriptには、Cのような中括弧や不格好なforステートメントがあるため、
> 一般的な手続き型言語のように見えますが、それは誤りです。JavaScriptはCやJavaよりも、
> LispやSchemeのような関数型言語と多くの共通点を持っているのです。JavaScriptには、
> リストの代わりに配列があり、プロパティリストの代わりにオブジェクトがあります。
> 関数はファーストクラスであり、クロージャも備えています。つまり括弧の対応をとる手間なしに、
> ラムダを利用できるのです。
>>583
それに関しては納得
前スレで書いたように、Rubyにおいてメソッドは一級市民(ファーストクラス)ではありませんからね
・Ruby 初心者スレッド Part 61
スレリンク(tech板:210番)
603:デフォルトの名無しさん
17/12/25 01:57:26.36 6htjEWah.net
ここはJavaScriptスレじゃないよ
604:デフォルトの名無しさん
17/12/25 02:12:49.73 mSK8fdnz.net
>>585
JavaScriptは関数型だってことにしたいんでしょw
605:デフォルトの名無しさん
17/12/25 02:14:31.41 6htjEWah.net
>>586
JavaScriptの話はそっちのスレでやれってこと
606:デフォルトの名無しさん
17/12/25 02:19:08.95 h6gXOlbY.net
>>585
まったくそのとおりですね
といふことで、JavaSciptのパイプライン演算子を提案され�
607:トいる方は、 JSスレヘお帰りになられるか、もしくわ 日常的にカッコだらけになってしまうPython(>>579) スレへ移動されるよう希望します 特にRubyと違ってPythonは関数が一級市民ですから、 JavaScriptの手法を適用するのは(Rubyよりも)容易でしょう
608:デフォルトの名無しさん
17/12/25 10:22:56.25 yHCsyXBb.net
Windows10 の、VS Code で、irb (PowerShell ターミナル)を起動して、
put "abc"
なら、実行できるけど、
put "あいう"
のように日本語があると、実行できないね
609:589
17/12/25 10:27:56.95 yHCsyXBb.net
put "abc" # あ
のように、コメントに日本語がある時は、実行できる
610:デフォルトの名無しさん
17/12/25 10:29:17.76 FXcNW9u1.net
>>589
それはrubyじゃなくてlibeditの不具合だよ
611:589
17/12/25 12:11:57.01 yHCsyXBb.net
知らないけど、UI 部分を、C言語とかで作っているから、
いつまで経っても修正できないのだろう
UI 部分は、VS Code みたいに、
ブラウザ技術を使っている、Electron で作れば良かった
612:デフォルトの名無しさん
17/12/25 20:14:59.36 YHWK2l8N.net
ねんがんのRuby 2.5.0をてにいれたぞ‼
URLリンク(www.ruby-lang.org)
613:デフォルトの名無しさん
17/12/25 21:16:04.65 FXcNW9u1.net
yield_selfは使いどころが結構ありそうだね
614:デフォルトの名無しさん
17/12/25 21:25:14.33 s8SRCdHD.net
使い方わかんないな
615:デフォルトの名無しさん
17/12/25 21:52:41.67 YHWK2l8N.net
yield_selfはこれまでメソッドチェーンをしたくてもできなかった場合で活躍するね
途中の一時変数は用無しになった
616:デフォルトの名無しさん
17/12/25 22:38:48.18 h6gXOlbY.net
昨日のパイプライン演算子に関する話の中に出てきた >>583 のようなケースが
以下のように書けるようになる
URLリンク(ideone.com)
・Ruby 2.5 の yield_self - Qiita
URLリンク(qiita.com)
F# や Elixir の登場ですっかり世間の認知度がアップしたパイプライン演算子、
すっかりハマって
「プログラミングスタイルをパイプライン形式(いわゆるメソッドチェーン)で統一して書きたい!」
という欲求を抑えられない人たちにとっては嬉しいメソッドの新設ではないかと思われ
個人的には、メソッド名は apply もしくはそれを短くした app が
感覚的に合っていた(エイリアスを定義するだけなんだけどね)
617:デフォルトの名無しさん
17/12/25 22:46:27.01 mSK8fdnz.net
ふっふっふ、ようやく気づいたかね?
昨日のパイプライン演算子の話は
ここにつながるのだよ
618:デフォルトの名無しさん
17/12/25 23:07:16.77 h6gXOlbY.net
つまり:
・JavaScriptでは現時点だと最終的に採用されるか否かも定かでない Proposal 段階で、
実験的な実装をいじってあーだこーだ議論している真っ最中
・一方、Rubyではとっくに議論を終えて公式にリリースを終えてしまった
といふ話ですね
619:デフォルトの名無しさん
17/12/25 23:20:17.82 YHWK2l8N.net
ちょっと面白い発見
ppを使うのにrequire要らずだってあったから試してみたけど、
使った最初に自動でrequireするようになってる
$ ruby25 --disable-gems -e 'puts $"'
enumerator.so
thread.rb
rational.so
complex.so
/usr/local/lib/ruby/2.5/amd64-freebsd11/enc/encdb.so
/usr/local/lib/ruby/2.5/amd64-freebsd11/enc/trans/transdb.so
$ ruby25 --disable-gems -e 'pp $"'
["enumerator.so",
"thread.rb",
"rational.so",
"complex.so",
"/usr/local/lib/ruby/2.5/amd64-freebsd11/enc/encdb.so",
"/usr/local/lib/ruby/2.5/amd64-freebsd11/enc/trans/transdb.so",
"/usr/local/lib/ruby/2.5/prettyprint.rb",
"/usr/local/lib/ruby/2.5/pp.rb"]
620:デフォルトの名無しさん
17/12/26 14:56:29.62 75dqQ4yg.net
private methodを定義する時ってどう書くのが普通?
private def foo
__bar
end
def foo
__ bar
end
private :foo
# クラスの後ろにまとめて定義
private
def foo
__bar
end
621:デフォルトの名無しさん
17/12/26 16:40:03.50 pHnCZ49/.net
自分の好きなタイミングで
622:デフォルトの名無しさん
17/12/26 17:17:14.64 MQU8AiWM.net
他人が読んで読みやすいとと思う書き方。
623:デフォルトの名無しさん
17/12/26 17:36:54.63 Zhknjblq.net
俺は後ろにまとめて書くようにしてる。
ついでに言うとprivateが連続した場合2個目以降のprivateは不要だが、パッと見て分かるように常に付けている。
最近は触って欲しくないメソッドはリファインメントを使うっていう手法を覚えたけど、これは異端なのか分からない。
624:デフォルトの名無しさん
17/12/26 22:52:56.50 pHnCZ49/.net
アンチ息してる?
アンチスレ死亡してるみたいだけど
625:デフォルトの名無しさん
17/12/26 23:11:59.17 Xx1508gc.net
アンチスレ死亡させていいよ
存在価値無いし、ここで十分
626:デフォルトの名無しさん
17/12/26 23:45:46.61 p5HaZQjy.net
そもそもRubyのprivateって実質的な強制力はほぼゼロでコメントとしての意味くらいしかないからな
そういう意味ではよほど小さなクラスを除けば全部に付けないとあまり意味ないんじゃないか
627:デフォルトの名無しさん
17/12/27 01:21:36.89 kb3Qecdj.net
アンチがアンチスレの存在をすっごい嫌がってるのは、本スレで暴れたいからだろうな
だが、断る
アンチはあの過疎ったアンチスレへ帰るべきだ
628:デフォルトの名無しさん
17/12/27 01:24:11.45 Kn/lt9VX.net
結局ここにアンチが来てなくても
アンチの話題をしたいわけなんだよな
もう病気だと思うよw
629:デフォルトの名無しさん
17/12/27 01:24:47.07 Kn/lt9VX.net
アンチスレも定期的に見てるようだし
630:589
17/12/27 01:58:58.62 u0gTyM9V.net
>>589-592
自己レス
irb -E CP932
irb の起動時に、オプションを付けると、日本語文字列も正常になった
puts "あ"
Ruby は、Windows でも無敵やな!
631:デフォルトの名無しさん
17/12/27 04:54:44.27 vGbq0nNV.net
>>601
人それぞれでいいと思うけど、自分はクラスの後ろにまとめて定義する派だね
ドキュメンテーションとしての可読性を重視し、あるクラス定義において
デフォは公開したいメソッドだけどキーワード private で宣言した以降の
セクションは非公開にしたいという意図がある
class Klass
公開したいメソッドの定義セクション
private
不公開なメソッドの定義セクション
end
個別に宣言する private :foo を使うケースは、公開するつもりでクラスを設計したけど、
リファクタリングの過程で「このメソッドは非公開でもいいんじゃね?」と疑問を感じたら
private :foo を付けテストを流して実験するといった一時的なもの
>>607
確かに、メンバ変数のアクセス制限という概念が無く、全ての変数がpublicとして扱われるのよね
URLリンク(qiita.com)
URLリンク(woodyring.blog.so-net.ne.jp)
ああ中途半端でめんどくさ
632:デフォルトの名無しさん
17/12/27 14:38:59.95 kb3Qecdj.net
612は勘違いしてる
変数にpublicも糞も無い
633:デフォルトの名無しさん
17/12/27 14:47:08.38 K4eQH++r.net
メンバ変数なんてない
インスタンス変数の事を言ってるならそもそもオブジェクトの外からはアクセスできない
634:デフォルトの名無しさん
17/12/28 23:13:58.27 zlcR2/4C.net
みんな、デバッグはpで済ましてる?
それとも何かツール使ってる?
635:デフォルトの名無しさん
17/12/28 23:14:30.42 AeGE7eie.net
は? ppだろ
636:デフォルトの名無しさん
17/12/28 23:18:20.87 s+AqweGp.net
自前でpryもどきを作ってbinding.hogeしてる
637:デフォルトの名無しさん
17/12/29 02:26:20.85 orHgNMeq.net
awesome-print/awesome_print: Pretty print your Ruby objects with style -- in full color and with proper indentation
URLリンク(github.com)
638:デフォルトの名無しさん
17/12/30 03:43:26.25 Codmlyj+.net
最近、debug.rb知って使うようになったけど
pで間に合うデバッギングしかまだやってないんだよな
639:540
17/12/30 08:54:20.80 M2I24uN0.net
RubyInstallers の、7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64)は、Rubyのポータブル版の実行環境だった。
Ruby 2.4(x64)は9MB で、解凍すると56MB になった
これだけでも、ファイルI/O など、結構遊べる
デフォルトで、erb, irb, minitest, sinatra などが入っている。
RSpec は入っていないけど
先に、bundler gem を入れて、
VS Code の画面で、Ruby Solargraph という拡張機能を入れると、
solargraph gem がインストールされるので、VS Code で補完ができる
VS Code で、Ruby のデバック用の拡張機能を入れようとすると、
Windows のネイティブコードにコンパイルする必要があるから、
The MSYS2 DevKit を入れる必要がある。
これが、1.7GB もあるらしいので、入れない方が良い
1行ずつデバッグせず、p などで表示しながら作るのが良い
MSYS2 DevKit を入れない範囲で、プログラミングするのが簡単
640:デフォルトの名無しさん
17/12/30 13:51:43.29 KgXg1sy3.net
JSON::Stateの挙動がマニュアルと違うのですがこれはバグでしょうか
URLリンク(ideone.com)
URLリンク(docs.ruby-lang.org)
641:デフォルトの名無しさん
17/12/30 14:02:41.65 8kEk1hAU.net
あぁ、バグだろうな。
お前のバグだ
642:デフォルトの名無しさん
17/12/30 15:07:11.63 KgXg1sy3.net
英語が読めなかったんですね。すみませんでした
マニュアルには「コロンとコンマの区切りの後にspace:で指定した文字列がおかれる」と書いてあります
643:デフォルトの名無しさん
17/12/30 15:21:25.29 9j+d+4sf.net
space_before: だろ
644:デフォルトの名無しさん
17/12/30 15:22:43.33 KgXg1sy3.net
space_beforeはコロンの直前なので関係ありません
645:デフォルトの名無しさん
17/12/30 15:25:29.81 9j+d+4sf.net
リストだからじゃね
646:デフォルトの名無しさん
17/12/30 17:05:16.47 20iing1R.net
何しても`,'の後ろには入らないね
バグっていうよりマニュアルの不備なのかな
647:デフォルトの名無しさん
17/12/30 17:25:46.52 IKvN98q1.net
,の後ろにスペース入れるのは一般的なフォーマットだから、常識的にはドキュメントの方が正しいでしょ
直してプルリク出せ
648:デフォルトの名無しさん
18/01/02 13:03:30.40 nZWiMujw.net
明けおめ
今年初のRubyスレ書き込み
649:デフォルトの名無しさん
18/01/02 22:10:18.61 Q+9WD3Xu.net
新年からRailsを勉強中。環境はwin64
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'default', 'data-turbolinks-track': 'reload' %>
</head>
さっきから、こいつに対してExecJS::ProgramError hogehoge#indexってエラーを吐いてばかり
coffee-scciptも1.8.0にしてもさっぱり解決せず。libv8とtherubyracerを入れろとか書いてるけど、
さっきから2時間以上苦戦してるが、全くインストールできずエラーばっかり
何なんだこれ
650:デフォルトの名無しさん
18/01/02 22:12:28.67 Q+9WD3Xu.net
違った、viewの中身はこいつだ
<!DOCTYPE html>
<html>
<head>
<title>hogehoge</title>
<%= csrf_meta_tags %>
<%= stylesheet_link_tag "application", media:"all", "data-turbolinks-track"=> true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
</head>
<body>
<%= yield %>
</body>
</html>
651:デフォルトの名無しさん
18/01/02 22:13:36.50 NRmrCA2E.net
今時WinでやるならWSLを使おう
どうせ運用はLinuxなんだからそれに慣れる意味でもな
あと、オワコンCoffeeなんか今更使っちゃダメ
652:デフォルトの名無しさん
18/01/02 22:30:29.29 Q+9WD3Xu.net
タイトルでそう思ったけど、ここ初心者スレじゃなかったのか
仕方ない、自分でもうしばらく足掻くか
653:デフォルトの名無しさん
18/01/02 22:32:05.53 ZaEks4dH.net
WSL使おうってアドバイスがあるのにさらっと無視するようじゃ、初心者スレ云々の問題じゃないかと思われる
654:デフォルトの名無しさん
18/01/02 22:37:12.02 IA96dLm2.net
すべてのwindowsでWSL使えるわけじゃないのに何言ってるの
655:デフォルトの名無しさん
18/01/02 22:42:47.77 ZaEks4dH.net
だったらWSL使えないって言えよ
そしたらVMWare使えってアドバイスもらえるんだからさ
656:デフォルトの名無しさん
18/01/02 22:44:20.68 IA96dLm2.net
答えのわからない質問に、的はずれな回答しなくていいから
わからないなら黙ってなさい
657:デフォルトの名無しさん
18/01/03 00:44:42.35 0mS9Giqv.net
原因わかったよ、鋸使わなかったから
鋸使ったらうまくいった
あとで調べたらWSLは互換性がどうたらとか書いてたし、VM使うほど容量に余裕ないんで
でもまあwindowsよりLinux使えってのが大きなヒントになったのは確か
658:デフォルトの名無しさん
18/01/03 00:53:49.79 BK81yZAH.net
互換性はWSLの方が遥かにマシだぞ
WinのRubyなんか動いたらラッキーレベルのおまけ
659:デフォルトの名無しさん
18/01/03 06:24:30.41 LyakWDNT.net
>>620
に書いておいた
The MSYS2 DevKit などで、
Windows のネイティブコードにコンパイルしているようなものは、基本的に使えない。
それに、コンパイルできても、正常に動くとは限らないし
Nokogiri などの各gem が、バージョンアップに対応しないから、
Rails 5 などは使えない
各gem を作っている人は、皆手弁当でやっているから、
OS のバージョンアップに一々、対応していられない
Ruby の対応状況と、各gem の対応状況は、全く違うし、作者も別人。
とにかく、gem を使うものは、gem のバージョンに合わせて、
Ruby, Rails のバージョンを下げないといけない
Ruby 使いは、vagrant, chef を使う。
または、WSL, Docker など
660:640
18/01/03 08:15:54.66 LyakWDNT.net
基本的に、gem の作者が、Windows10 用のバイナリを配布していない、
gem は、作者によって動作が保証されていない
それを、The MSYS2 DevKit などで、ユーザーが勝手に、
Windows のネイティブコードにコンパイルして、動かしているようなものは、
基本的には安全ではない。
コンパイルできても、正常に動くとは限らないから
gem の作者でもないユーザーが、勝手にコンパイルして動かしても、安全性を証明できない
gem の作者が配布している、バイナリのバージョンまで、
Ruby, Rails のバージョンを下げる必要がある
Windows10 の場合は、RubyInstallers に、最初から入っている、
erb, irb, minitest, sinatra などで遊ぶ。
gem も、ユーザーがコンパイルする必要のない、gem の範囲で、遊ぶのが良い
661:デフォルトの名無しさん
18/01/03 12:59:19.24 vVUVg3Hi.net
gemの範囲で遊ぶのが良い までは読んだ
まあ遊びというか入門勉強用にしとけばいいわけだな。遊びでも触っておけば、本番で構築が必要になった時
いくらでも応用利くから。MVCも他のフレームワークとあまり変わらなさそうだし
662:デフォルトの名無しさん
18/01/03 13:59:57.88 7RCD6iyC.net
何故、荒らしはアンチスレに帰らないで本スレで自演してるの?
さみしいの?
663:デフォルトの名無しさん
18/01/03 14:12:30.27 xfm5wXWm.net
>>643
アンチもクソも、現実を直視しよう
Rubyのコアのコミュニティに行くとWin使いには人権ないぞ
このスレはまだマシな方だよ
664:デフォルトの名無しさん
18/01/03 14:57:18.33 vVUVg3Hi.net
人権とかいう排他的な言い方しなくても、win環境には適応しきれていないのはわかったよ
rails new hogehogeコマンドで新たなアプリケーション作ってもまともに動かないことも分かったし
社内PCにはVMぐらいは作ってあるから、そっちでいくらでも試せる
今度はサーバ設定ツールにvagrant、chef、Docker、WSLとか書かれてるけど
どれが一番オススメかは聞いておきたい
665:デフォルトの名無しさん
18/01/03 15:31:56.84 SZxPYOzJ.net
なんかもう言ってることがすごいな
>The MSYS2 DevKit などで、ユーザーが勝手に、
>Windows のネイティブコードにコンパイルして、動かしているようなものは、
>基本的には安全ではない。
666:デフォルトの名無しさん
18/01/03 16:02:22.19 Z3K4Tirs.net
サーバー設定はchef-soloが簡単かなー
鯖は最終借りて使うことになるし
AWS,VPSなんかに使いまわしできる。
dockerなんかも便利
web系はLinuxは必須。
667:デフォルトの名無しさん
18/01/03 16:02:34.32 vVUVg3Hi.net
結局Vagrant使ってVB入れて続きを動かしてみることにした
668:デフォルトの名無しさん
18/01/03 19:09:04.58 7RCD6iyC.net
自演で伸ばしてくれるのはありがたいけど、
はやくアンチスレへ帰りなよ
669:デフォルトの名無しさん
18/01/03 19:29:07.03 tD4HLGIX.net
>>647
ansibleの方がマシ
ただ俺に言わせりゃ冪等性が必要ない
使い捨てマシンの設定はシェルスクリプトでいい
670:デフォルトの名無しさん
18/01/03 20:20:36.21 vVUVg3Hi.net
>>649
アンチスレとかあるんか?そんな技術どうこうに、わざわざアンチとか騒いで
何か開発上のメリットでもあるのか?
671:デフォルトの名無しさん
18/01/03 22:02:49.25 ML6+3XhW.net
嘘を吹聴してる荒らしはまだおるんか?
はよーアンチスレへ帰れ
初心者スレで嘘ばっかりつきやがって
672:デフォルトの名無しさん
18/01/03 23:03:06.29 vVUVg3Hi.net
そこまで言うなら
他のスレに貼り付けてやろうか?
Ruby開発者はこんな連中ばっかりだと
Pythonスレとかあたりに
673:デフォルトの名無しさん
18/01/03 23:07:20.10 vVUVg3Hi.net
俺はPHPとかJavaScriptはMVCフレームワーク含めて経験あるし、納品実績もあるけど
RubyやRailsは本当に初心者だよ、去年まではRailsなんて名前しか知らんかった
一応上司に勉強しといた方がいいって勧められて、せっかくの正月休みなんで
意気込んで勉強してたんだよ
こんなところで質問した自分が心底馬鹿だったわ
初心者を罵倒するスレに改名してくれ
674:デフォルトの名無しさん
18/01/03 23:08:40.92 ML6+3XhW.net
おまえ、
他のスレを荒らすのもええ加減にやめろ
みんな迷惑しとるやろうが
675:デフォルトの名無しさん
18/01/03 23:21:54.41 dC+KJDFP.net
>648デフォルトの名無しさん2018/01/03(水) 16:02:34.32ID:vVUVg3Hi
>結局Vagrant使ってVB入れて続きを動かしてみることにした
例の荒らしがとうとう他スレに移住してくれるわけか
これはめでたい
676:デフォルトの名無しさん
18/01/04 00:11:00.11 Db2jLLtK.net
Docker、2016、オライリー
実践 Vagrant、Mitchell Hashimoto、2014、オライリー
Vagrant, Packer などで有名な、HashiCorp の創始者
Chef実践入門 - コードによるインフラ構成の自動化、2014
cookbookは各社が公開している
Chef社のopscode、Railsを作っている Basecamp社、
Berkshelfを作っている Riot Games社、
Pivotal Trackerを作っている Pivotal Sprout社、
aws, engine yard
677:デフォルトの名無しさん
18/01/04 00:18:08.10 Y2aN+Ibt.net
まーた誤爆してる
ログ残すのがそんなに大好きなのかな
678:640
18/01/04 01:01:51.01 Db2jLLtK.net
CentOS は、64ビット版のみで、32ビット版はもうやっていない。
Linux も徐々に、32ビット版を作らなくなってきた
Ruby で、ユーザーが勝手に、ソースコードからコンパイルしているような、
32ビット版のgem は、使えなくなってくる
gem の作者がほったらかしで、64ビット版をサポートしていないから、
こういうgem に依存しているアプリは、Linux でも動かなくなっていく
679:デフォルトの名無しさん
18/01/04 01:49:10.10 Y2aN+Ibt.net
何他人を語ってるんだよお前
680:デフォルトの名無しさん
18/01/04 02:54:14.07 IBQXDyQ6.net
これ、朝になったらアンチが発狂して自演繰り返すパターンだわ
俺知ってる
681:540
18/01/04 07:31:26.40 Db2jLLtK.net
Windows10 Home で、RubyInstallers の、7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64) ポータブル版、The MSYS2 DevKit 無しで、
Nokogiri をインストールしたら、
コンパイル無しで、Windows用のバイナリgem がインストールできたのか?w
The MSYS2 DevKit は、インストールしていないけど
PS C:\Users\Owner\Documents\Ruby\proj01> bundle install
Fetching gem metadata from URLリンク(rubygems.org)
Resolving dependencies...
Using bundler 1.16.1
Fetching mini_portile2 2.3.0
Installing mini_portile2 2.3.0
Fetching nokogiri 1.8.1 (x64-mingw32)
Installing nokogiri 1.8.1 (x64-mingw32)
Bundle complete! 1 Gemfile dependency, 3 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
Post-install message from nokogiri:
Nokogiri is built with the packaged libraries: libxml2-2.9.5, libxslt-1.1.30, zlib-1.2.11, libiconv-1.15.
682:540
18/01/04 10:00:23.11 Db2jLLtK.net
Windows10 Home で、RubyInstallers の、7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64) ポータブル版 (The MSYS2 DevKit 無し)に、最初から、
libxml2-2.9.5, libxslt-1.1.30, zlib-1.2.11, libiconv-1.15
などのコンパイル済みライブラリが入っているみたい
なので、The MSYS2 DevKit が無くても、
Nokogiri gem を入れるだけで動く
やってみたら、Nokogiri は、確かに動いた!
インストールの最難関と言われる、Nokogiri が、簡単にインストールできた!w
Ruby 2.4, gem, Nokogiri などの進化を感じた
683:デフォルトの名無しさん
18/01/04 10:31:04.56 M7dikhfh.net
>ID:Db2jLLtK
何度も言うが自演を繰り返して荒らすなら
アンチスレへ行け
684:デフォルトの名無しさん
18/01/04 14:21:55.97 0iUUJ0bW.net
質問
Arrayで事足りるケースにしかまだ出会ってないけど
Enumerableってどういう時に使うの?
685:デフォルトの名無しさん
18/01/04 19:16:52.27 q0THGQuz.net
>>665
p ([].each).class.ancestors
686:デフォルトの名無しさん
18/01/04 22:09:15.03 ByuqHChs.net
初歩の初歩な質問ですけど…
配列に0から99までの数字を一括で格納したいです
a = [0,1,2...と記述していてはとても長くなるので…
どうすれば良いのでしょうか?
687:デフォルトの名無しさん
18/01/04 22:18:08.37 gbqCK9B9.net
>>667
(0..99).to_a
688:デフォルトの名無しさん
18/01/04 22:19:23.96 E5yE4mKi.net
[*0..99]という書き方も
689:デフォルトの名無しさん
18/01/04 22:21:04.48 gbqCK9B9.net
そういえば (0..99).to_a で気づいたけど、>>665 のいう Enumerable は Range クラスも持ってるな
ちょうどいい例じゃね?
690:デフォルトの名無しさん
18/01/04 22:29:13.42 ByuqHChs.net
できました
ありがとうございました
691:デフォルトの名無しさん
18/01/05 01:12:43.58 DBj0On7v.net
EnumerableならPrimeクラスの使い方見てみるのもいいかもね
692:540
18/01/05 10:23:43.97 JCua7yNV.net
Windows10 Home 64ビット版に、
RubyInstallers の、7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64)ポータブル版、The MSYS2 DevKit 無しで、
コンパイルせずに入れられる gem だけで、遊んでみた
以下は、入れた gem です
先に、bundler を入れて、以後のgem は、bundle install で入れた
rack-test は、sinatra のテストに使う。
Nokogiri
VS Code の拡張機能用の、solargraph
入れたgem と、irb, erb, minitest, sinatra が、正常に動いた
693:デフォルトの名無しさん
18/01/05 21:48:51.55 cNE023Or.net
#{hoge}などの形で入力をそのまま正規表現に入れた場合に、入力に正規表現が含まれていると意図しない挙動が起こると聞いたのですが、どのように回避するのが良いのでしょうか?
694:デフォルトの名無しさん
18/01/05 22:03:0
695:5.29 ID:Z2M9SnI/.net
696:デフォルトの名無しさん
18/01/05 22:28:18.08 wqtMql/4.net
>>674
#{hoge}などの形で入力をそのまま正規表現に入れない。
具体的には、Regexp.escape などでエスケープ処理した文字列を利用する。
697:デフォルトの名無しさん
18/01/05 23:28:05.64 MlGJfS7x.net
空港のwifiからアクセスした際にログイン出来ないという報告がありましてログを見たところ
ActionController::InvalidAuthenticityTokenというエラーが出ていました
CSRF対策の仕組みが関係することは分かったのですが
なぜこれが発生するのか分かる方いらっしゃいませんでしょうか
698:デフォルトの名無しさん
18/01/06 02:50:42.13 nSHs9ovb.net
空港やホテルは、設定が厳しい。
LAN 内ですら、お互いに通信できないだろ
隣の人のスマホと、アクセスできないだろ
699:デフォルトの名無しさん
18/01/06 02:53:50.34 qWm4dftC.net
>>678
つまり何が原因なのですか?
700:デフォルトの名無しさん
18/01/06 04:48:47.53 nSHs9ovb.net
空港やホテルの、wifiは危険だから、設定が厳しい
「空港 wifi セキュリティ」で検索!
701:540
18/01/06 07:03:24.91 nSHs9ovb.net
Windows10 Home 64ビット版に、
RubyInstallers の、7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64)ポータブル版、The MSYS2 DevKit 無しで遊んでみた
日本語については、
Windows の設定画面から、ユーザー環境変数へ追加します。変数名・値は、
RUBYOPT
--encoding=UTF-8
これで外部エンコーディング・Encoding.default_external が、
Windows-31J から、UTF-8 へ変更されるので、
Ruby 起動時のコマンドライン引数に、日本語を使えます
ただし、この環境変数を追加すると、irb が動かなくなる。
この環境変数が無ければ、
irb -E CP932
で、Windows-31J で、正常に動くので、
irb を使う人は、環境変数を追加せずに使う
702:デフォルトの名無しさん
18/01/06 10:01:00.08 UsOHfVJQ.net
>>681
大変申し訳ないが一回だけ言うね
日記の続きは貴方の個人的なブログでお願いしたい
ここはみんなのスレなのでご理解ください
703:デフォルトの名無しさん
18/01/06 12:53:30.03 HbY4/bGY.net
続きはCMのあとで
704:デフォルトの名無しさん
18/01/06 12:58:28.05 jet593Ss.net
備忘録とか日記のネタとか書くのは問題ないだろ
普段はそこまで賑わっているスレじゃないんだから
雑談OKなわけだし、初心者にはありがたい情報じゃないのかな
705:デフォルトの名無しさん
18/01/06 13:52:44.37 FAOceAzc.net
レス読んでないけど、情報共有するならここに書くよりかQiitaにあげた方が有益だと思うけどね
まぁどっちでもいいわ
706:540
18/01/06 14:44:04.22 nSHs9ovb.net
irb のソースコードを見て、誰か、
外部エンコーディング・Encoding.default_external が、
UTF-8 でも動くように、修正してくれないかな?
それと、Windows で、Ruby を使っている人も、書き込んでほしい。
Windows の、Ruby 使いが少ない
707:デフォルトの名無しさん
18/01/06 14:49:07.31 ul9KuZX2.net
自分で直してPull Reques出せ
基本的にWin使いに人権はないので、Winのためにソースを汚すことは嫌われるから注意
708:デフォルトの名無しさん
18/01/06 16:19:36.81 wARzH3D0.net
I’m like pp, just like pp
709:540
18/01/06 16:33:25.64 nSHs9ovb.net
irb がクソみたいな描画ライブラリを使わずに、
GUI だけを、PowerShell を使ってくれたら良いのに。
PS なら、UTF-8 だし
ロジック・GUI が分離できていて、
簡単に、PS に切り替えられたら良いのに
710:デフォルトの名無しさん
18/01/07 10:13:45.01 X58Odkk6.net
お前は何を言ってるんだ
RubyはUNIXにべったり密結合している
それを良く思っていないのはRuby村においては被差別民であるWin使いだけ
711:デフォルトの名無しさん
18/01/07 16:15:03.18 Jk6U4+ev
712:.net
713:デフォルトの名無しさん
18/01/09 00:08:55.57 TW5vurZJ.net
Windows で、Headless Chrome でテストしている香具師いる?
Windows 10, Ruby, Chrome, Selenium WebDriver は、64ビット版だけど、
Windows 用の、ChromeDriver は、32ビット版しかないけど、これで正常に動くの?
714:デフォルトの名無しさん
18/01/09 05:18:26.25 l1AA5LW3.net
rubyからOpenGLを扱うgemがいくつかあるけど、
どれが一番使われてるの?
715:デフォルトの名無しさん
18/01/09 07:11:34.91 mcq0XcNK.net
RubyはRailsにしか使われてないよ
716:デフォルトの名無しさん
18/01/09 14:13:43.58 mJzCa8Tc.net
Unicodeコードポイントにスケープされた4バイト文字をJSON..#parseすると怒られるんだけど、何かいい方法ないかな?
愚直にgsubするしかないのかな
URLリンク(ideone.com)
717:デフォルトの名無しさん
18/01/09 14:17:01.33 hZWQBtrg.net
断交が良い
718:デフォルトの名無しさん
18/01/09 23:30:05.47 .net
>>695
RubyのJSON.parseがUnicodeコードポイントエスケープに未対応なのかな?
「¥u{XXXXX}」を「¥uXXXX¥uXXXX」に変換してやればよさそうだけどね
719:692
18/01/10 07:38:19.49 8FRtzSYP.net
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 では、そういう文字も使えないの?
720:デフォルトの名無しさん
18/01/10 12:32:40.29 8FRtzSYP.net
ReactDOM.render(
<div>
<h1>Hello, world!</h1>
<h2>texttext</h2>
</div>,
document.getElementById('app')
);
JavaScript の中に、直接HTML を書ける、
JSX みたいな書き方が、Ruby にある?
出来れば、erb のような書き方は、避けたい
721:デフォルトの名無しさん
18/01/10 16:07:42.64 STPlaxcQ.net
ヒアドキュメントは?
722:デフォルトの名無しさん
18/01/12 18:18:49.39 nl8PJm0M.net
iCloud 9のコマンドプロンプト打っても俺のパソコンに反映されないんですが助けて
723:デフォルトの名無しさん
18/01/12 22:23:27.82 .net
>>698
規格上は使えるけどRubyのJSONライブラリがまだ対応していないっぽい
724:デフォルトの名無しさん
18/01/21 21:58:25.57 Ycn/1JW2.net
改訂2版 パーフェクトRuby、Rubyサポーターズ、2017
この本は、ツールの説明なども多いから、読むのに時間がかかる
725:デフォルトの名無しさん
18/01/22 21:44:30.05 q3uir/RO.net
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
726:デフォルトの名無しさん
18/01/22 22:06:22.86 LFdS7sNk.net
def hoge(key, value)
x = {a: A, b: B}[key].new(value)
x.huga
x.hage
end
727:デフォルトの名無しさん
18/01/22 22:32:29.51 O82cRrzF.net
def hoge(key, value)
x = Kernel.const_get(key.capitalize).new(value)
x.huga
x.hage
end
728:デフォルトの名無しさん
18/01/22 22:52:38.55 pYe1Cwj7.net
それは、典型的なオブジェクト指向の利点
派生クラスを使えば、switch~case 文が無くなるから、
その部分の修正もしなくてよい
各派生クラスで、クラス内でオーバーライドされた、同名のメソッドを呼ぶだけ
729:デフォルトの名無しさん
18/01/22 23:04:44.47 cFg1Yiat.net
レンタルサーバーにRubyをインストールする手順に関する質問はここで良いでしょうか?
Railsの方が良いでしょうか?
730:デフォルトの名無しさん
18/01/22 23:35:54.90 /Sj7yLHe.net
Webサイトちょっと動かしたいだけなら自分で運用構築なんて時間の無駄だからPaaS使うことを強くお勧めする
731:デフォルトの名無しさん
18/01/23 13:19:28.04 CDVCaOOu.net
環境構築には、vagrant, chef は、Ruby でレシピ(手順書)を書ける。
Docker もある
仮想環境コンテナ総合スレ Docker、Vagrant等 [無断転載禁止]c2ch.net
スレリンク(tech板)
732:デフォルトの名無しさん
18/01/23 20:57:16.21 STirpdQ8.net
FJORD BOOT CAMP(フィヨルドブートキャンプ)
URLリンク(bootcamp.fjord.jp)
無職なら誰でもオンライン無料学習
733:デフォルトの名無しさん
18/01/23 23:03:46.38 CDVCaOOu.net
Ruby の女神・池澤あやかは、島根県のRuby合宿で、Rubyを極めたらしい
734:デフォルトの名無しさん
18/01/24 23:02:47.87 ap7jtKrX.net
今日mechanizeを使い出したんだけどいいなこれ
なんで今まで使わずにスクレイピングしてたんだろってくらい感動した
735:デフォルトの名無しさん
18/01/25 03:45:42.62 1frilWR+.net
本の虫: 60%の人間はプログラミングの素質がない
URLリンク(cpplover.blogspot.jp)
736:デフォルトの名無しさん
18/01/25 15:25:13.47 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:デフォルトの名無しさん
18/01/25 18:01:16.77 SW6+fB/4.net
>>714
fizzbuzz
738:デフォルトの名無しさん
18/01/25 19:53:33.66 8RoLWIQ9.net
>>715
ARGVの文字列がexternal_str_new_cstr()で作られてるみたいだけど、
windowsだとUTF8_PATHが真になって、文字列がrb_external_str_new_cstr()で作られてないから
taintになってないっぽい
739:デフォルトの名無しさん
18/01/26 19:35:15.96 ywFtALU+.net
atomのautocomplete-rubyが動かないです
rsenseのパスは通しているのですがエラーが出ます
rsense startを実行後、localhost:47367にアクセス出来ないことから
rsenseのエラーだとは思うのですが対策がわかりません。
ruby 2.4.1、rsense 0.5.18 です
URLリンク(teratail.com)
では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:デフォルトの名無しさん
18/01/26 22:16:50.68 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:デフォルトの名無しさん
18/01/26 22:22:02.58 lWqampzR.net
端末・コマンドプロンプトなどで、
which rsense, where rsense などと打てば、
rsense の実行ファイルがあるディレクトリが、
環境変数PATH に設定されているかどうかがわかる
742:デフォルトの名無しさん
18/01/26 22:26:40.41 lWqampzR.net
rsense の実行ファイルがあるディレクトリが、
環境変数PATH に設定されているなら
~/.rbenv/versions/2.4.1/bin/rsense のように、パスを付けて書かなくても、
単に、rsense と打っても、実行ファイルを探せる
rsense start --port 47367 --path /Users/{ユーザー名}/Programming/ruby-book
だから、こう打てばよい
743:692
18/01/26 22:52:43.92 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
18/01/26 23:10:28.98 ywFtALU+.net
>>719
atomでの話とターミナルでの話が混ざっていてすみません。
atomでパスを ~/.rbenv/versions/2.4.1/bin/rsenseと書くと718で書いたエラーが出ます。
エラー内容はstartコマンドがないと言っているので確認のため
ターミナルで$ rsense startと打つとプロセスは走ります。
ただプロセスが走っているのにlocalhost:47367にアクセスできません。
745:デフォルトの名無しさん
18/01/26 23:32:26.03 lWqampzR.net
localhost は、つながらないとか、色々とバグるから、
127.0.0.1:47367 を使うこと
rsense start で、サーバーは確かに、47367 ポートで起動しているのか?
lsof とかで、開いているポートを調べる
746:デフォルトの名無しさん
18/01/26 23:46:55.80 lWqampzR.net
>atomでパスを ~/.rbenv/versions/2.4.1/bin/rsenseと書くと718で書いたエラーが出ます
漏れも、VS Code を使っているけど、
VS Code 内のPowerShell では、よくバグるから、
外部でPowerShell を起動して使っている
外部から、コマンドプロンプト・端末・PowerShell を起動してやれば?
747:デフォルトの名無しさん
18/01/26 23:58:30.46 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:デフォルトの名無しさん
18/01/27 00:21:43.19 PF3DsJ0N.net
> .rbenv って、探索パスの順序を入れ替える、仮想化技術だろ。
なにも仮想化してないので、仮想化技術ではない
749:デフォルトの名無しさん
18/01/27 01:59:43.65 lUeqkPr+.net
pyenv, virtualenv(venv)などのPythonの仮想環境構築も、これと同じ
環境変数PATH の前方に、パスを追加して、実行するコマンドの探索パスを変えることで、
実行されるファイルを変える
750:718
18/01/27 19:34:18.97 sDN5LFGv.net
rsenseがどうにも動かないのでatomでは他の補完パッケージを使うことにしました
751:デフォルトの名無しさん
18/01/27 20:20:50.96 lUeqkPr+.net
bundle exec を付けないと、パスが探せないとか
752:718
18/01/27 20:33:08.71 sDN5LFGv.net
>>730
ターミナルではコマンドが実行できるのでパスは通っているはずなんですが
指定されたポートのローカルサーバーにアクセス出来ない。
($ rbenv which rsense で ~/.rbenv/versions/2.4.1/bin/rsense が出ます)
atomではパスを通す前はno such directryのエラーがパスを通すとcommand not foundになるので
パス自体は通っているとは思うのですがコマンドが見
753:つからない理由がわからない。 すみません、いろいろ言ってもらったのですが改善できなそうでした。
754:デフォルトの名無しさん
18/01/28 23:07:14.79 +HoRx5lM.net
Rubyスクリプト内から別のRubyスクリプトを実行して、エラーが出ても元のRubyスクリプトの処理を止めない方法はありますか?
755:デフォルトの名無しさん
18/01/28 23:22:35.75 ALu/+v8Q.net
シェルコマンドでruby実行すればいいだろ
所詮Rubyなんか書捨てスクリプトなんだからスマートさなんか気にしないで手っ取り早い方法を選べばいい
756:デフォルトの名無しさん
18/01/29 00:28:48.72 3fqaX6d7.net
UNIXならProcessクラス使えば
757:デフォルトの名無しさん
18/01/31 00:19:33.04 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:デフォルトの名無しさん
18/01/31 01:31:31.84 ah9e2u9N.net
>>732-734
外部コマンドをバッククォートで囲むとか、IO.popen を使って、
終了ステータス「$?」で分岐する
Rubyで外部コマンドを実行して結果を受け取る方法あれこれ
URLリンク(qiita.com)
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:デフォルトの名無しさん
18/02/07 21:03:36.63 /4oaORK0.net
Windows向けのRubyバイナリですが
ASRの2.5はいつ出るんでしょうか?
RubyInstallerはOLEがうまく動かないのでASRを使っています。
760:デフォルトの名無しさん
18/02/07 21:24:44.94 N9vep8wO.net
RubyはWindowsで使うものではない
WinでRubyなんてプロダクションでは全く使われていないので、最新バージョンに追従しなければ何かまずいことになるというプレッシャーは無く、
有志が気が向いたときに遊びでやってるだけだ
そんなものに期待するのがそもそもの間違い
いい加減諦めてWSLかVMかMacに移行しなさい
761:デフォルトの名無しさん
18/02/07 21:42:14.34 ZXClH+OJ.net
WindowsでRuby使うとかマゾもいいとこ。
おとなしくPythonにしとけばいいのに。
日本語の情報が豊富!とか言って初心者釣ってたやつらにも責任がある。
コミュニティがシェア9割のWindowsを親の仇のように嫌ってる時点で初心者向けなんか有り得ないというのに。
762:デフォルトの名無しさん
18/02/08 04:05:47.94 31uXy/SD.net
Windows10 Home で、WSL(Windows Subsystem for Linux)正式版を簡単に導入できた
MS Store から簡単に、Ubuntu 16.04 をダウンロードできた。
サイズは、200MB ほど
パッケージマネージャーで、Ruby 2.3 も簡単にインストールできた
763:デフォルトの名無しさん
18/02/08 04:50:05.31 lklijtOD.net
できたんだ
764:デフォルトの名無しさん
18/02/08 06:54:03.75 ZE8Ol0Sg.net
>>737
OLEがうまく動かないってどういうこと?
765:737
18/02/08 18:58:35.45 zFeCrx9M.net
>>742
リモートのデータベースに接続できない
766:デフォルトの名無しさん
18/02/08 19:31:35.11 x393c3Y0.net
最近のwindowsは32bit版のODBCと64bit版のODBC分かれてるから
データソース作るときにどっちか逆になると繋がらないことがたまによくある
767:737
18/02/08 20:06:16.19 zFeCrx9M.net
環境はwindows7の32bitだ
そんで同じスクリプトで
ASRなら繋がるけどRubyInstallerだと繋がらないんだ
768:デフォルトの名無しさん
18/02/09 01:32:56.68 JPCfoDnF.net
まず、エラーメッセージを取得して、それで検索することから始める
769:デフォルトの名無しさん
18/02/09 01:36:30.27 ZFL6conz.net
そして5年前の情報とかしかなくて終わる
770:デフォルトの名無しさん
18/02/09 18:48:38.40 g1sd4Kag.net
AWSのCloud9のRubyで アラーム代わりにwavやmp3を再生したいんですけど、かんたんにできるでしょうか
771:デフォルトの名無しさん
18/02/09 19:25:09.92 FL1yxC1J.net
bokete みたいなwebサイト作りたいんですけど何種類かアイデアあるんすけど
ruby ➡ Ror
php ➡ WordPress
どっちがいいっすか?
772:デフォルトの名無しさん
18/02/10 01:08:50.39 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:デフォルトの名無しさん
18/02/10 01:37:14.21 dbzbK1DZ.net
>>748
Ruby関係ない
純粋にJavaScriptやHTML5の話
774:デフォルトの名無しさん
18/02/10 08:42:39.65 BVqOrgag.net
>>750
WindowsだろうがLinuxだろうがワンライナーならどちらのクォーテーション・マークでも動作するから置換する必要はない
それでも置換するなら、簡単なものなら..tr('"\'','\'"')
真面目にやるなら式中の"を%Qに'を%qにでもすればいいんじゃない
775:デフォルトの名無しさん
18/02/10 17:44:21.82 3K6ZWpKd.net
Array#zipに関する質問です。
aを二次元座標[x, y]の配列として
a[0].zip(*a[1..-1])と同じ動作を効率的にできるだけ短く書くコードを教えてください。
776:デフォルトの名無しさん
18/02/10 17:55:38.94 eFhUfahp.net
>>753
そんなところをハックしてもパフォーマンスは一ミリも改善しません
速くしたいなら他の言語を使うか、SQLをチューニングましょう
777:デフォルトの名無しさん
18/02/10 20:29:37.87 Jen4nAbv.net
aの要素数が滅茶苦茶多いと、引数に渡すだけで大変そう
778:デフォルトの名無しさん
18/02/10 21:53:50.96 ELWGSSBQ.net
引数を渡すかわりに引導を渡してみては?
779:デフォルトの名無しさん
18/02/10 22:18:46.37 BVqOrgag.net
速いかは知らないけど
a.transposeでいいんじゃないの
780:デフォルトの名無しさん
18/02/11 18:24:55.59 ONLKHfKt.net
>>757
transposeなんてメソッド存在していたとは……知らなかった。
というかriのArray#zipで言及して欲しい。
781:デフォルトの名無しさん
18/02/11 20:12:19.15 aLeqVhz7.net
残念だが手遅れ
782:デフォルトの名無しさん
18/02/11 20:17:25.63 JLQLPcxv.net
よく使うクラスだけでもマニュアル全部読んでおくといいよ大した量じゃないし
783:デフォルトの名無しさん
18/02/12 13:39:48.05 S+p/PDus.net
普通は、transpose ぐらいあるだろ。
R なんて、行列が逆だから、transpose が無かったら、混乱する
module Enumerable だけは、読んでおけ
784:デフォルトの名無しさん
18/02/14 16:44:54.84 gwupYb1h.net
Windows10 の、Chrome の自動操作で、
SeleniumWebDriver では、Ruby から起動したブラウザが、閉じてしまう。
sleep で、待つ事はできるけど
ブラウザが閉じないように、出来ないの?
それか、iMacros を使うしかないのか?
785:デフォルトの名無しさん
18/02/17 22:07:32.61 IU1gsQgu.net
ActiveRuby (Beta 版)と言う、Rails など、40 gem、有用なライブラリ一式をまとめた、
Windows 用の、Precompiled Ruby があるね
Ruby 2.3.4 で、容量は、1GB
786:デフォルトの名無しさん
18/02/17 22:10:01.26 C+rXeEsA.net
何で句読点そんななの?
787:デフォルトの名無しさん
18/02/19 08:06:13.46 FUvFB9Jm.net
URLリンク(www2.ske48.co.jp)
これをみたまえ
788:デフォルトの名無しさん
18/02/19 08:14:01.13 NxG0QMWB.net
戦場カメラマンかよ
789:デフォルトの名無しさん
18/02/21 12:00:51.75 YvXKEUAS.net
RubyのClassクラスはObjectクラスのインスタンス。
そんでもって、自作MyClassクラスを作れば、Classクラスのインスタンスとなる。同時に、Objectクラスを継承する。
ってことは、Objectのインスタンスメソッド、ClassのインスタンスメソッドをMyClassのインスタンスは継承している。
790:デフォルトの名無しさん
18/02/21 20:05:24.59 HEIjAjBo.net
Classクラスのクラスメソッドは、
自作MyClassクラスのクラスメソッドとなるか?
791:デフォルトの名無しさん
18/02/21 20:07:58.08 gGEObxum.net
なるよ
792:デフォルトの名無しさん
18/02/21 21:00:07.80 HEIjAjBo.net
Classクラスの特異クラスのインスタンスメソッドは、
自作MyClassクラスのクラスメソッドとなるか?
793:デフォルトの名無しさん
18/02/21 21:07:50.97 HEIjAjBo.net
オブジェクトの特異クラスのメソッドは、
そのオブジェクトの特異メソッドとなる。
では、オブジェクトの特異クラスのそのまた特異クラスのメソッドは、
そのオブジェクトの特異クラスメソッドとなるか?
794:デフォルトの名無しさん
18/02/21 21:13:10.82 6K5cWIBm.net
ご覧ください。
こういう処理すべき本質と離れた下らないことしか話すことのないクソ言語とハエ信者たちです。
795:デフォルトの名無しさん
18/02/21 22:26:16.94 No3TMOHA.net
ご覧ください
こういうプログラミングの話題でない煽りしかできない底辺です
796:デフォルトの名無しさん
18/02/21 22:42:56.90 gGEObxum.net
簡単に実装できるんだから自分で試せばいいのに
797:デフォルトの名無しさん
18/02/22 18:58:12.64 mWjDtu6E.net
>>772 に言わせれば:
・以下の記事の内容は「処理すべき本質と離れた下らないこと」であり、
・以下の記事に登場するのは「クソ言語」であり、
・以下の記事の著者は「ハエ信者」なんだろね
Pythonのオブジェクトとクラスのビジュアルガイド – 全てがオブジェクトであるということ
URLリンク(postd.cc)
798:デフォルトの名無しさん
18/02/22 19:49:41.37 w/32fA/q.net
pythonごときクソ言語に劣等感抱いててワロタwww
追い詰められ過ぎwww消えそうwwwww
799:デフォルトの名無しさん
18/02/22 22:20:20.36 3IU5aIfi.net
クソだろうが何だろうが使われたもの勝ち
800:デフォルトの名無しさん
18/02/22 22:26:35.15 K6gwUVsb.net
Ruby にも、アルゴリズム・数学系のライブラリが揃っていれば、
蛇には負けぬものを。ぐぬぬぬぬ
実際、プログラミングコンテスト・パズル系は、Rubyで説明することが多いのに
801:デフォルトの名無しさん
18/02/23 04:41:21.61 rDH2T2Uu.net
今日からRubyの勉強する
楽しみ
802:デフォルトの名無しさん
18/02/24 23:08:36.72 ysq1mmzI.net
Ruby 2.6.0-preview1 リリース
URLリンク(www.ruby-lang.org)
803:デフォルトの名無しさん
18/02/25 04:05:29.41 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:デフォルトの名無しさん
18/02/25 04:12:39.42 OLqFO2yC.net
ありまぁす!
805:デフォルトの名無しさん
18/02/25 08:53:07.29 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
18/02/25 08:59:55.65 pcyqC+jB.net
SASS, HAML, Markdown とか、皆どれを使っているの?
>>783
ありがとう。素直にやるしかないですか
807:デフォルトの名無しさん
18/02/25 10:55:59.02 mAmrOOAm.net
Rails6開発開始
808:デフォルトの名無しさん
18/02/25 11:54:19.33 OLqFO2yC.net
>>784
ありまぁす!って言ってんだろうが
809:デフォルトの名無しさん
18/02/25 11:58:14.59 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:デフォルトの名無しさん
18/02/25 12:22:26.69 caIICGcE.net
これからRuby on RAILS勉強するんですけど
なんかいい参考書とかHPありますか?
811:781
18/02/25 12:57:24.51 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:デフォルトの名無しさん
18/02/25 13:36:01.35 OLqFO2yC.net
> slice_before だと、探している数字が複数回あると、
> そこから新たに、グルーピングが始まる
仕様どおりだろ
813:デフォルトの名無しさん
18/02/27 16:15:39.63 shVfNcyg.net
erbとかのテンプレートを元に画像を生成するgemってありませんか?
thinreportsでpdfではなくbmp,pngなどの画像を出力する感じです
814:デフォルトの名無しさん
18/02/27 21:18:11.05 PLAOSS1/.net
「selenium webdriver screenshot」で検索!
Electron でも出来る
815:デフォルトの名無しさん
18/02/27 21:25:08.90 +EUBPr3t.net
inline_svg とか?
816:デフォルトの名無しさん
18/02/28 00:12:23.88 mWE0Cmql.net
>>784
AsciiDoc/Asciidoctor
817:デフォルトの名無しさん
18/02/28 19:08:53.94 acVWAXbg.net
シェルコマンドでimagemagick呼べばいいよ
gemすら使わずに一瞬でできる
818:デフォルトの名無しさん
18/02/28 21:12:02.76 mIXPiXOq.net
TSVデータを処理したいんですが
末尾の空白文字(タブ)がいつの間にか消えてしまいます
splitが自動削除するのは分かったけど他でも消えてる様です
この暗黙の空白削除現象を検索しても引っかからないんですがいい検索単語はないですか?
あと勝手に削除する理由はなんなんでしょう
819:デフォルトの名無しさん
18/02/28 21:36:50.04 bddDF+sp.net
URLリンク(docs.ruby-lang.org)
820:796
18/02/28 22:18:52.36 mIXPiXOq.net
原因分からなかったけど解決しました
ループ内で毎回Hashに加えていくのを一旦stringにまとめてから
ループ後のHashに加えるようにしたら"\txxxxx\t\n"の後ろのタブが消えなくなりました
821:796
18/02/28 22:22:19.89 mIXPiXOq.net
前に壊したデータ読み直してました
822:デフォルトの名無しさん
18/03/02 00:03:53.83 7c4/pzB6.net
windows環境でrRubyinstaller2でインストールしてruby.exeのパスに非アスキー文字が含まれていると
requireしたときに$LOAD_PATHの非アスキー部分が文字化けしてload errorが起きるんですけど何か対処法はありませんでしょうか?
その場的に今はUTF-8で書いたコードの中で$LOAD_PATHに対応するパスを挿入して動かしてるんですが。。。
諸事情によりrubyはアスキー文字配下にインストールできないものとします
823:デフォルトの名無しさん
18/03/02 03:54:56.19 QlU5Q+B8.net
今すぐアンインストールしてWSLを入れよう
824:デフォルトの名無しさん
18/03/02 05:39:12.36 xypD9Mi9.net
>>800
バグ報告してくるんだ
825:デフォルトの名無しさん
18/03/02 07:54:43.19 mIGjbFX+.net
Windows のirb でも、ascii 以外は正常に動かないから、
irb を使う時だけ、WSL・Ubuntu の方を使っている
UTF-8 では、cp932(shift-jis)が読めないのだろう
起動時オプションで、cp932 を指定すれば、読めるかも知れないけど、
逆にRuby 内部で、cp932 はヤバイのじゃないか?
UTF-8以外を使うと、他のアプリと通信できないとか、バグりそう
とにかく、PC のユーザー名・パス名などに、半角英数字以外を使うと、
多くのアプリでバグる
826:803
18/03/02 11:51:22.61 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:デフォルトの名無しさん
18/03/02 12:00:42.65 OCKmRFPd.net
なにをごちゃごちゃやってんだ?
こういうのは変換すべきレイヤーで変換するだけの話だろ
Rubyのスクリプト(に限らないが)は
どこでも同じように動かすんだから
ソースコードも内部も UTF-8だ
画面への入出力時に変換させればいいだけ
コマンドプロンプトをUTF-8に変換するって手もある
海外じゃCP932という日本専用の文字コード使ってないことぐらいわかるだろ?
828:デフォルトの名無しさん
18/03/02 12:39:35.62 vnF4MMGw.net
元々はwindowsのワイド文字をうまくutf8に変換してやってこうという方針だったのに
nobuがロケールに変換させまくって動かないだけ
まあ誰もバグ報告しないのも悪いけど
829:803
18/03/02 13:14:57.35 mIGjbFX+.net
Rubyist は、RubyでGem を作れるけど、C で低レベルなI/O を書けるわけじゃない
また、Linux・Windows の両方に対応させるのは、難しい
830:803
18/03/02 16:17:45.17 mIGjbFX+.net
library irb/input-method
URLリンク(docs.ruby-lang.org)
class IRB::ReadlineInputMethod のソースコードを見れば良いの?
それとも、GNU Readline のソースコードかな?
Windows のirb で、日本語がバグるのは、
根本的に、GNU Readline が、Windowsの日本語を考慮していないからじゃないの?
831:デフォルトの名無しさん
18/03/02 16:40:11.45 ypGJ9h8+.net
というかrubyコミュニティがwindowsを考慮してない。
むしろ怨み、蔑み、嫌っている。昔から。
832:デフォルトの名無しさん
18/03/02 17:18:20.26 0lL3/u0V.net
>>809
そだねー
833:803
18/03/02 17:55:40.44 mIGjbFX+.net
console.log("あ");
Windows で、node (REPL)を実行したけど、
日本語を入力しても、PowerShell・コマンドプロンプトの両方で、正常に動く
834:デフォルトの名無しさん
18/03/02 23:07:42.42 wSJnGqkk.net
RubyはLinuxで動かすようにすればいいよ
WindowsでちょこっとしたやりたいことがあるならC#使え、と
どうせ仕事でやってるRubyはLinuxで動くんだからさ
Windowsマシンでの開発ならVMかDocker使えばすべて解決
835:デフォルトの名無しさん
18/03/03 01:14:23.68 vdurK0jv.net
ありがとうございました
ググってみたら結構前から報告されていたバグみたいなので諦めることにします
836:デフォルトの名無しさん
18/03/03 01:19:41.29 GGmAMA7z.net
>>800
$LOAD_PATHをforce_encoding()で環境に適応したエンコーディングを設定したら?
あるいは、バイナリに設定して、むりやりそれっぽいバイトデータをつっこむとか?
837:デフォルトの名無しさん
18/03/03 01:21:46.51 GGmAMA7z.net
>>808
chcp 65001とかしてもダメかね?
838:デフォルトの名無しさん
18/03/03 15:41:40.19 VQ/a88pK.net
cmd で chcp 65001 するくらいなら
git for windows インスコして git bash (mintty) 使うと幸せになれるぞ
839:デフォルトの名無しさん
18/03/03 15:43:54.56 x/6oRrTp.net
65001 は右端とか折り返し表示がバグるね
840:803
18/03/03 15:49:49.91 HcfLoqAp.net
Ruby の起動オプションに、外部・内部エンコーディングか、RUBYOPT で指定できる。
ファイル内でも指定できる
それと、PowerShell・コマンドプロンプト、WSL・Ubuntu・bash で指定できる
これらの組み合わせの中で、文字化けしない組み合わせを探す
または、$LOAD_PATH の辺りで、指定するとか
841:デフォルトの名無しさん
18/03/03 17:58:14.02 URsJSGy/.net
Rubyの2.5.0p2をRubyインストーラーでインストールしたらRubyの2.5.0p0だった・・・
842:デフォルトの名無しさん
18/03/03 18:17:52.81 A+Ivs8ru.net
patchlevelはもう無いよ
843:デフォルトの名無しさん
18/03/03 18:26:46.78 VQ/a88pK.net
>>818
そんな試行錯誤は一番あかんやつや
844:デフォルトの名無しさん
18/03/03 21:39:09.27 rw2aiDdk.net
そうそう。結局 Rubyやirb に問題が有るんじゃなくて
単に >>803 が理解してないだけ
845:デフォルトの名無しさん
18/03/03 21:55:10.06 GRjh9/QH.net
そういうことだから理解できない初心者は間違ってもrubyなんか使おうと思わないようにね。
初心者や子供にruby勧めてくるのは例外なくマウント取りたいだけのクズだぞ。
846:デフォルトの名無しさん
18/03/03 21:56:04.27 ETPjeMg1.net
書籍のサンプルコードの一部です
この@memoという変数はいわゆる辞書形式のデータ構造で
[remain, pre]は辞書のキー(複合キー?)という理解でいいんでしょうか
ちなみに@を付けないとどうなりますか
変数名に記号が付くのが凄く気になります
@memo = {}
# 計算結果をメモする
@memo[[remain, pre]] = cnt
847:デフォルトの名無しさん
18/03/03 22:30:11.11 gHPIEkfR.net
>>824
[remain, pre]は辞書のキーって理解であってる
irb等のREPLで試すとすぐ分かる
@はインスタンス変数に付けるプレフィクス
848:デフォルトの名無しさん
18/03/04 00:30:02.17 99M3BGnn.net
>>825
ありがとうございました
849:デフォルトの名無しさん
18/03/04 02:42:13.82 Oz1ASWrr.net
キーに配列が使えるのか・・・
850:デフォルトの名無しさん
18/03/04 04:12:18.75 aAfADGFK.net
オブジェクトはなんでもイケるんじゃなかったっけ?
ハッシュ値さえちゃんと返せば。
851:デフォルトの名無しさん
18/03/04 11:33:10.30 7gUy2hud.net
キーにした配列を変化させた時はrehashしないとキーが一致しなくなる
文字列のキーは変化させても、キーはセットしたときのまま
852:デフォルトの名無しさん
18/03/04 11:34:10.89 Oz1ASWrr.net
なるほどね。先入観として[a,b]ってかいたら毎回newされて、
キーとしては未定義値のnil固定か、別オブジェクト扱いで不定になるか、と思えた
853:デフォルトの名無しさん
18/03/05 16:37:38.89 62GuhFZ7.net
str = <<'EOT'
str = << 'EOT'
here doc で、下のように、<< の後ろに半角空白があると、文法エラーになる
それと、WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理すると、
改行コードが異なるから、不正な形式のファイルと言われる。
改行コードを、LF だけに変えると、正しく処理できる
854:デフォルトの名無しさん
18/03/05 22:15:57.90 xs+Qg6beE
便乗して報告するよ。
exp()の前後でxの正負が逆転します。
たぶん、Cで書き換えてからだと思う。
$ irb
irb(main):001:0> require "bigdecimal"
=> true
irb(main):002:0> x = BigDecimal("-50")
=> -0.5e2
irb(main):003:0> BigMath.exp(x, 50)
=> 0.19287498479639177830173428165270125747528326512303e-21
irb(main):004:0> x
=> 0.5e2
855:デフォルトの名無しさん
18/03/05 17:53:15.03 aK37pZ+C.net
mode: 'rt'
で読み込めばいいじゃん
856:831
18/03/05 19:10:41.11 62GuhFZ7.net
options に行区切りを指定したら、
WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理できた
row_sep: "\r\n" では出来たが、
row_sep: :auto では、エラーになる
857:デフォルトの名無しさん
18/03/05 21:53:10.11 K/Y9LwEe.net
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が見えます。
858:デフォルトの名無しさん
18/03/05 22:05:54.92 K/Y9LwEe.net
自己解決しました。
[1] pry(main)> self.private_methods(false)
とすれば見えました。
859:デフォルトの名無しさん
18/03/11 14:39:13.23 veKfJdlp.net
1
860:デフォルトの名無しさん
18/03/15 18:29:02.24 5enxwtKu.net
RubyからDB扱うときって皆は何のライブラリ使ってるの?
861:デフォルトの名無しさん
18/03/15 19:28:59.60 tIXtXy4E.net
RubyでDBを扱う場合、プロダクションで使われているのは世界で唯一ActiveRecordのみ
862:デフォルトの名無しさん
18/03/15 21:18:59.56 OYGfq7D7.net
インターフェースじゃん。
バックでmysqlとか動いてるぞ。
いいからちゃんと勉強しろよ。
863:デフォルトの名無しさん
18/03/15 21:31:02.48 rmXeLovx.net
>>840
ライブラリで答えてください
864:デフォルトの名無しさん
18/03/15 23:24:57.24 xG9lbsTH.net
>>838
ActiveRecordが大半なのは間違いない
ORMを求めてるならsequel、rom、hanami等
素のDBライブラリならmysql2, sqlite3-ruby, ruby-pg
ArelでSQLを構築してDBライブラリ使ってSQL実行してもいい
865:デフォルトの名無しさん
18/03/16 15:24:05.43 3ma6aQHv.net
sqlite3
866:デフォルトの名無しさん
18/03/16 18:23:28.28 2Gd98HT2.net
>>840
Rails屋がSQLすら書けなさそうに見えて腹立つのは分からんでもないけど、今はDBインターフェースの話しかしてないぞ
867:デフォルトの名無しさん
18/03/16 23:22:04.16 yiSYhWxU.net
「Node.js超入門、掌田津耶乃、2017」を読んでいるけど、JavaScript の基本は、Ruby
Ruby のSinatra, JS のNode.js を、full scratch で書くと、ほぼ同じ
Rails, JSのExpress + Bookshelf が、ほぼ同じ
868:デフォルトの名無しさん
18/03/16 23:24:51.12 3NuYtiCt.net
掌田津耶乃ってダメな本じゃなかったか?
869:844
18/03/17 00:05:48.37 nxO/ldT7.net
プログラミング本では、掌田が第一人者。
Unity, UE4 などのゲームエンジンから、最近は、Python, Node.js にも進出
売れる・成長する分野には、必ず掌田が参入してくる。
業界の風見鶏
「Node.js超入門、掌田津耶乃、2017」
この本で、Sinatra, Rails を学ぶ方が簡単。
20時間ほどで読める
後は、YouTube の動画で、OK