[表示 : 全て 最新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/

2 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 00:36:08.95 ID:rLZHdQ3Q.net]
たのしいRuby 第5版、2016

Effective Ruby、2015

メタプログラミング Ruby 第2版、2015

Rubyのしくみ、2014

改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015

リファクタリング:Rubyエディション、2010

3 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 01:29:56.00 ID:rLZHdQ3Q.net]
開発環境

RDE
Windows用IDE
https://ja.osdn.net/projects/sfnet_rubyde/
以下、RDEの使用説明
rubyde.sourceforge.net/hiki/ja/FrontPage.html

サクラエディタ
Windows用高機能エディタ
https://ja.osdn.net/projects/sfnet_sakura-editor/
以下、ruby用設定の説明
supportdoc.net/support-sakura/ruby.html

Emacs
GNUの高機能エディタ
以下、EmacsでのRuby開発について
https://qiita.com/hiconyan/items/582e27128decfe9d249e

VSCode
マルチOSに対応したマイクロソフト社製のソースコードエディタ
https://code.visualstudio.com/download

4 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 01:46:47.26 ID:rLZHdQ3Q.net]
RDEのデバッグ機能を使う場合、設定においてデバッグオプションを「-r debug2」から「-r debug」と書き換えて、
ruby付属のdebug.rbを使うようにすること
RDE付属のdebug2.rbはruby1.8用のスクリプトのため、現在のrubyのversionには使えません

5 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 08:36:20.17 ID:r53+zpq0.net]
>>1 乙

6 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 15:40:51.82 ID:unmm6CwQ.net]
出るφは撃たれる

7 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 20:55:02.73 ID:zBIai8/a.net]
前スレにも書いたけど中級者上級者向けのRuby本が必要だと思う
それもruby界隈で一般化された題材じゃなくてまだ広く知れ渡っていない専門的な題材を扱った本を
Openglとか分散VMとか大規模演算rubyとか他にもこういう題材は結構あると思う

8 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 21:55:29.31 ID:OhY/q4lK.net]
現段階で専門的な題材の書籍を出しても赤字になるだけで厳しいと思う
だったらまだ一般的なプログラミング雑誌で連載する方が見込みはあるんじゃないかなあ
あとは教育機関・研究機関における浸透度合いを高めるところも攻めた方がいい
それと会社のお偉いさんはRubyの案件をさらに増やして

とりあえず日本で有人月面着陸を計画してるからmrubyも載せようぜ

9 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 22:38:23.64 ID:e8MWK5Ug.net]
初心者向け書籍で裾野を広げまくったからニーズはあるだろ
いわば教科書を読んで基礎を学んで、それらを試せる応用分野をみんな探している所
Rubyと+αの専門性の高いものを出せば、目的はないけど何か読みたいって層にはドンピシャで来る
web系はRailsやWEBrickでこれからも出るし、科学計算や3Dとか教養シリーズみたいな感じで出せば全然いける

10 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 22:48:35.39 ID:LT7w1DpA.net]
データ分析系は
Pythonが流行してるから
そっちで本出すだろ

Rubyだとライブラリと
速度がネックになるから



11 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 23:21:25.25 ID:azT4+Y0L.net]
>>9
cadをやってるから、物理演算とかシミュレート系をだして欲しい
あと、組込み向けにソースコンパイルやらRuby-C間の解説とか

12 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 23:44:18.39 ID:e8MWK5Ug.net]
>>10
学んだRubyで何かする本が求められていると言っているのに、
何故Pythonが出てくるんだ?

13 名前:デフォルトの名無しさん [2017/11/27(月) 00:33:15.55 ID:o0pIkOSz.net]
rubyコンとかRuby勉強会とかどんな感じ?
マシンスペック的にはどんなのもっていけばいい?

14 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 01:59:56.02 ID:x+zk8UEy.net]
開発マシンの、CPU は i7、メモリは最低でも 8GB(16GB が望ましい)
Windows 10 pro
WSL・仮想OS で、Linux

Mac の人も多い

15 名前:デフォルトの名無しさん [2017/11/27(月) 07:55:32.25 ID:gt4bCosJ.net]
>>12
Rubyはrails以外に使い道無いから他の事したいなら他の言語覚えろよ

16 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 12:11:21.22 ID:W0wAPtjw.net]
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること

17 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 13:14:45.58 ID:o0pIkOSz.net]
>>15
荒らし行為をやり続けてPythonスレから追い出されたの?
ここじゃ病気は治せないから病院に行ったほうがいいよ

>>14
やっぱり結構なマシンを持って行くんだね
ARMプロセッサ積んだボードにrubyをクロスコンパイルして入れた自作のマシンとか考えてたけど、
低スペックでもWinノートPCを買っておいた方が良いか

18 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 18:50:34.20 ID:agUtcdpR.net]
最近の荒らしはやり方が雑だよな
殆ど単発の自演しか涌かないし
出て来ても「はいはい、荒らしてますよ〜」みたいな嫌々やらされてる感しかない

19 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 19:23:05.97 ID:x+zk8UEy.net]
Ruby は、Linux 必須だから、WSL・仮想OS ・Docker などが必須

2つのOS を動かすから、メモリは最大限積む必要があり、
CPU はi7 にすると、16GB まで積める。
i3, i5 だと、8GBまでかな?

それと、たいていのプログラム言語の本の動作条件が、Windows Pro

一般的に、開発用PC は、高スペック。
画面も、フルHD 以上

20 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 21:01:16.83 ID:LZyaXIN8.net]
もうこいつどんだけ粘着するのか



21 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 21:44:22.84 ID:agUtcdpR.net]
自演も中途半端
もうただ単に定型文を打つだけで満足してて、
荒れたかどうかも気にしなくなってるんだよな
夏休みの宿題やらされてる子供かよ

22 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 22:51:47.97 ID:rAG/Bhsm.net]
「また自演した」「このスレには自演が居るから」「このスレには自演がいます!いますよ!ほら!」としか書くことがなくなったんだろうなと思う
本当に他人から貰ったレスというのは自分がいちばんよくわかってて、そしてそれは本レスにおいても自演指摘レスにおいてもおそらく極めて少ない
住人の冷めた態度が効いてると表現することはできなくもないが

23 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 23:02:26.98 ID:SI4QCwP5.net]
静的型マンセーの粘着がいるのは確かだが、何でもかんでも自演自演言ってるやつもちょっと病的だよな
ちょっとネガティブな発言しただけなのに荒らしの自演認定されたことあるし

24 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 23:32:26.87 ID:W0wAPtjw.net]
上の人は荒らしだからスルーでお願いします

>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること

25 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 23:50:32.31 ID:9RbRf1jA.net]
>>22
>>23

即座にバレとる
アホやろお前?

26 名前:デフォルトの名無しさん mailto:sage [2017/11/27(月) 23:53:05.49 ID:rAG/Bhsm.net]
>>23
スレ住人が過去に何度か同調したことがあるのだが、
そのせいで自分が こ れ 以 降 何 を し て も 正義で多数派で「こちら側」に居れると勘違いしてしまったらしいのだ
いつか自分が「あ

27 名前:ちら側」に追いやられていたことに気づく日がくればいいと思う []
[ここ壊れてます]

28 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 00:02:17.19 ID:1+J/qigr.net]
そうやって嫌々やってるからまたボロを出す
22:51:47.97
23:02:26.98
こんだけ時間くっつけて発言すればバカにさえ自演だってわかる
しっかり頭を働かせろ

ゆとり世代か何かか?

29 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 00:03:55.96 ID:qPKDeu2+.net]
だから、まあ、我々はふたつの荒らしを並行同時にあしらいながら進まねばならなくなっている
「やってはいけないこと」「さわってはいけないもの」は倍以上に増え、発言の困難性は以前より遥かに増した
難儀なことだ

30 名前:デフォルトの名無しさん [2017/11/28(火) 00:07:19.20 ID:TcvLN2I4.net]
完動する事を確認しているDLライブラリ使ったスクリプトを、思いつきでrubyに付属のdebug.rbで診たら、
dllの関数呼び出しの所で`unknown symbol "関数名"' (RuntimeError)がでてなかなかブレークポイントまで進めません
一部の止まるエラーを抑えたり、スクリプト上の一定部分だけデバッガー無効化したりすることは可能ですか?



31 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 00:39:00.64 ID:yd/D5jJi.net]
>>28は俺らを辟易させることが目的らしい
でもそれって俺等がいつも通りに荒らしをバカにしながら会話し続けたらどうするの?
いつまでもあの騙せそうにない自演でレスを稼いでくれる?

32 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 03:30:10.92 ID:PkJOT8pW.net]
そのエラーになる部分を、コメントアウトして実行すれば?

33 名前:デフォルトの名無しさん [2017/11/29(水) 04:08:52.30 ID:zX4fkY5X.net]
debug.rbはkernelのset_trace_funcで登録したprocを、デバッギーの行毎に呼び出してる
だから呼び出されたくない行は登録するproc内でif文を使って分岐させてやれば良い

やってることはそれ程難しくないし、debug.rbに10行程度書き加えれば出来るよ

34 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 18:32:32.11 ID:MwOAAXQr.net]
>>29
DEBUGGER__クラス内の一番下段の下記を、
stdout.printf "Debug.rb\n"
stdout.printf "Emacs support available.\n\n"
RubyVM::InstructionSequence.compile_option = {
trace_instruction: true
}
set_trace_func proc { |event, file, line, id, binding, klass, *rest|
DEBUGGER__.context.trace_func event, file, line, id, binding, klass
}

35 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 18:44:22.06 ID:MwOAAXQr.net]
下のに書き換え、
@@ignore_ = {}
def DEBUGGER__.ignore_(ignorefl = @@ignore_)
return @@ignore_ = ignorefl
end
stdout.printf "Debug.rb\n"
stdout.printf "Emacs support available.\n\n"
RubyVM::InstructionSequence.compile_option = {:trace_instruction => true} if RUBY_VERSION > "1.9.0"
set_trace_func proc { |event, file, line, id, binding, klass, *rest|
tb = caller(0);last_i = "";i_name = "";i_num = 0;
last_i = tb[-1] if tb.size > 0
last_i.dup.each_line(":"){ |i_line|
if i_line .to_i > 0 || (i_line.chop).to_i > 0
break if i_name.size < 1
i_num = (i_line[-1] == ":" ? (i_line.chop).to_i : i_line .to_i)
i_name = i_name.chop
break
else
i_name += i_line
end
}
if i_num > 0 && DEBUGGER__.ignore_.include?(i_name) && DEBUGGER__.ignore_[i_name].include?(i_num)
# debug_skip
else
DEBUGGER__.context.trace_func event, file, line, id, binding, klass
end
}

36 名前:デフォルトの名無しさん mailto:sage [2017/11/29(水) 18:51:55.61 ID:MwOAAXQr.net]
デバッグするソースファイル

37 名前:フ最初の方に以下を書き加え、debugをスキップしたいファイルをignorefに、行をRangeかArrayでignorelにいれる
if defined? DEBUGGER__
ignoref = __FILE__
ignorel = []# 27..48
DEBUGGER__.ignore_[ignoref] = ignorel
end

debugのスクリプトそのものを書き換えるんじゃなくて、
複製して別名をつけたものを書き換えて使ったほうが良いよ
[]
[ここ壊れてます]

38 名前:デフォルトの名無しさん mailto:sage [2017/11/30(木) 01:37:59.97 ID:XY2yKXS8.net]
Rubyでopenglのシェーダーを扱った本、技術評論社辺りから出してくれないかな
こういうのこそRuby向けだよ

39 名前:デフォルトの名無しさん [2017/11/30(木) 13:11:26.74 ID:dNsMGYhb.net]
OpenGL自体のgemとかはそろってるから、
ミクミク互換やXファイル互換のソースを添付して出せば売れそうだけどな

40 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 01:22:55.57 ID:UulhXT9P.net]
# frozen_string_literal: false
ソースの最初に上のように書かれてるのを見つけたけどどいう意味?
他にもこういうのあるの?



41 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 04:44:53.26 ID:zZy3ktkC.net]
>>38
ruby-3以降はリテラル文字列がfrozenされることになるけど、
そうさせないためのマジックコメントでリテラル文字列の破壊的動作が許されるようにしている

ruby-2.3以降であればruby --enable frozen-string-literal <ファイル名>でrubyを起動することで、
リテラル文字列をfrozenされた状態とする挙動を試すことができる

# これまでの挙動
$ ruby -e 'p "A".downcase!'
"a"

# ruby-3以降のリテラル文字列の挙動を試す (ruby-2.3以降)
$ ruby --enable frozen-string-literal -e 'p "A".downcase!'
-e:1:in `downcase!': can't modify frozen String (RuntimeError)
from -e:1:in `<main>'

42 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 02:33:11.13 ID:7L3qqdqd.net]
>>39
前スレのリテラルの話でArrayが出てたけど、Arrayも何か将来的に関係あるの?

43 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 12:25:58.45 ID:S9pj625T.net]
二項演算子型のシンタックスシュガーって場合によっては意図したとおりに動いてくれないんだね

Math::PI %1 #=> unknown type of %string
Math::PI *1 #=> undefined method `PI' for Math:Module
Math::PI /1 #=> unterminated regexp meets end of file
Math::PI >1 #=> true

pi = Math::PI
pi %1 #=> unknown type of %string
pi *1 #=> 3.141592653589793
pi /1 #=> 3.141592653589793
pi >1 #=> true

44 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 12:28:39.60 ID:S9pj625T.net]
pi %1 #=> unknown type of %string
じゃなくて
pi %1 #=> 0.14159265358979312
だった
定数だとうまくいかない模様

45 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 12:49:07.58 ID:m0rwQM4g.net]
>>41が何を意図しているか分かるわけないだろう

46 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 13:43:40.72 ID:0GCrzYMu.net]
スペースを入れろってだけの話では

47 名前:デフォルトの名無しさん [2017/12/02(土) 13:50:50.68 ID:XRYOyseR.net]
今年もクリスマスイブに何か発表ある?

48 名前:デフォルトの名無しさん [2017/12/03(日) 03:01:00.42 ID:IGABZHMD.net]
>>39
さんくす

49 名前:デフォルトの名無しさん mailto:sage [2017/12/03(日) 12:36:05.29 ID:76TDWePk.net]
Ruby2.5

50 名前:デフォルトの名無しさん [2017/12/05(火) 03:46:28.43 ID:XHolF61u.net]
Rubyの型システムは早ければ2020年のオリンピック頃にお目見えか
どんな物になるんだろう



51 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 16:37:09.15 ID:tba/yJ/+.net]
Rが楽しくて勝手にやってるんだが
rubyはどうやって勉強すればいいんだ
>>2の自分に合うのを買えばいいのかな?

52 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 16:48:30.13 ID:lVtWIMct.net]
他言語の経験

53 名前:あるなら
プロを目指す人のためのRuby入門という入門書が新しくておすすめ(出たばかり)
[]
[ここ壊れてます]

54 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 17:04:59.24 ID:04pPds2q.net]
本は買った後、
分からない事があれば、ここで環境とコード示して聞けば良いよ
誰かが答えてくれるから

55 名前:デフォルトの名無しさん mailto:sage [2017/12/05(火) 23:05:42.39 ID:bv7GN3wK.net]
たのしいRuby 第5版、2016

R を知ってるなら、これも読む。
みんなのPython 第4版、2017

この2冊は、表裏一体。
ただし、先に「たのしい」から読むこと

56 名前:デフォルトの名無しさん mailto:sage [2017/12/06(水) 00:16:07.55 ID:Nuv0O2Zm.net]
>>50-52
3冊チェックしてみました
webのサンプルを読んで書店で見てみます
ありがとうございました

57 名前:デフォルトの名無しさん [2017/12/06(水) 04:53:57.53 ID:j5o9izkC.net]
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること

58 名前:デフォルトの名無しさん mailto:sage [2017/12/06(水) 16:47:29.82 ID:AVh4r46K.net]
Effective RubyがKindleで半額セール中(1728円)

59 名前:デフォルトの名無しさん [2017/12/06(水) 21:44:56.35 ID:sdwtDf9T.net]
RubyでOpenGLの書籍も来い

60 名前:デフォルトの名無しさん mailto:sage [2017/12/06(水) 21:46:49.21 ID:vDrxBWCE.net]
読者100人ぐらいしかいなさそう



61 名前:デフォルトの名無しさん mailto:sage [2017/12/06(水) 21:48:41.70 ID:Q8AsPyaZ.net]
まずRubyが遅いから
画像処理やろうって人が少ない

62 名前:デフォルトの名無しさん mailto:sage [2017/12/06(水) 21:57:47.76 ID:j5o9izkC.net]
3Dモデリングなら速度要らなさそう
あと可視化の分野辺り


というか、ゲームじゃなければ速度いらないだろ

63 名前:デフォルトの名無しさん [2017/12/06(水) 22:11:16.54 ID:sdwtDf9T.net]
3Dモデルというか、OpenGL学ぶのに最適だよRubyは
教材として出せば良いのに
商材として出すならMMDやXといった各種3Dモデル形式に対応した3DモデリングソフトをRubyで書いてCD付録として書籍につければ良い
そのRubyコード目当てに買う人は多いだろうし、Rubyで書いてるから書き換えやすく、改造もしやすい

64 名前:デフォルトの名無しさん mailto:sage [2017/12/06(水) 23:53:59.61 ID:9Cl2Q0EY.net]
残念ながらそれはない
Rubyはまともに使うつもりないなら学習のオーバーヘッドが大きすぎる
今ならJavaScriptとWebGLでいいよ

65 名前:デフォルトの名無しさん [2017/12/07(木) 02:09:30.99 ID:5ii6i5Is.net]
おまえがネガキャンしても無意味だ

66 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 02:49:15.45 ID:mIJMiEiv.net]
openglか
確かラッパーのgemがいくつかあるんだよな
初期のでglVertexPointerやらglColorPointerやら使って三角形を描画するとかやった記憶がある
今のgemはVBOやシェーダは使えるのか?

67 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 03:59:25.76 ID:GxHPFgmw.net]
3Dモデラーソフトのソースが付くなら欲しい
ゼロから書くのは面倒だけど既にある程度完成しているなら、
自分で足りない所だけ追加して楽できる

68 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 16:46:28.15 ID:al0lHo8n.net]
>>63
gemをちょっとググってみたけどopengl4.xに対応しててそれ用の関数もある
shaderがどこまで出来るかは自己の環境次第なんじゃね?
まあ、最近はopengl4.x使える環境がデフォだけど

69 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 22:06:15.41 ID:mIJMiEiv.net]
みんな、Rubyのリファクタリングツール使ってる?
今まで手動でやってきたんだけど、何かお勧めツールかgemある?

70 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 22:18:59.22 ID:h0N877cC.net]
rubymine



71 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 22:35:19.73 ID:p8nuhjj6.net]
rspec
rubyは静的解析が極めて困難な言語であり、リファクタリングを機械的に安全に行うことはできない
テストをちゃんと書いておいて、実際に繰り返し動かしながら結果的に元の挙動が再現されるように慎重に行う必要がある

72 名前:デフォルトの名無しさん mailto:sage [2017/12/07(木) 23:56:42.24 ID:kyxQutt+.net]
テストはバグが有ることを証明することはできるが
バグがないことを証明することはできない
故にいくらテストを書いても安心できない

73 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 00:13:02.65 ID:AScviHBw.net]
お前のツールでリファクタリングしたらバグったやないか客の業務止まっとるんやぞどないしてくれんねんボケエ!!!
こうなるのが目に見えてるんだからツール作る方もやりたくないわな
静的リファクタリングを動的型言語に求めるのは筋違い

74 名前:デフォルトの名無しさん [2017/12/08(金) 00:48:46.54 ID:yFCS8xkj.net]
また言ってるのかこいつ
はやく精神科に見てもらえ


ruby会議16か15でリファクタリングのgemのOHPあったけど、
ぐぐったら出てくるから見てみ

75 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 01:08:24.02 ID:ra4CwiYK.net]
>>2 のリファクタリング:Rubyエディションを読めばわかるけど、
ツールで自動化するのは問題なく、むしろポイントはツールの使い勝手とか連携させるとかの方
リファクタリング機能自体にはあんまり差異は無い
例の自演荒らしはそれを知らずに静的云々とか煽ってるけど

76 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 01:33:37.38 ID:AScviHBw.net]
>>72
さすがにリファクタリングに関して静的型と差異がないというのは贔屓目に見ても無理があるわ
例えばクラスのメソッドのリネームを安全に行うには、そのメソッドを使っている箇所を全て正確に特定しなければならない
静的型なら造作もないことだけど、ちょっと頭使えばわかることだが動的型では原理的に不可能

77 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 01:35:02.78 ID:T1izFLQz.net]
Ruby技術者試験受けるよ!
アドバイスとかあったらお願いします
ちなみに、今年中にsilver受験するつもり

78 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 01:36:07.26 ID:AScviHBw.net]
あと、Rubyに限ったことじゃないけどスクリプト言語は識別子を短くする傾向があるから、
単純にgrepで抽出するのも困難を極める
もちろん静的型では一文字メソッドだろうと全く問題ないけどね

79 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 02:01:33.10 ID:AScviHBw.net]
何が言いたいかというと、リファクタリングにツールの力を借りたくなるようなものを動的型で作るなら必ずテストを書けってことだ
絶対に安全というわけではないが気休めにはなる
テストのない大規模なRubyのソースは単なる糞の山であり、確実にメンテ不能に陥る

80 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 02:24:45.46 ID:DD2Dk6IR.net]
strArray = %w(a b c a c)
strHash = strArray.each_with_object(Hash.new(0)) { |str, h| h[str] += 1 }

p strHash #=> {"a"=>2, "b"=>1, "c"=>2}

使われている文字が、一番多いもの(複数可)と、その回数を求める。
ひとまず、Hash に使われている回数を入れたけど、

ここから最大のもの、a, c の、2回を求めるには、どうすれば良い?



81 名前:デフォルトの名無しさん [2017/12/08(金) 02:44:53.49 ID:yFCS8xkj.net]
>ID:AScviHBw
連投の癖から見ても例のあいつだな
話題すりかえれると思ってんのかゴミ

82 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 02:47:13.84 ID:cpGshdOM.net]
yFCS8xkjは例のアイツを記憶している
それぐらい例のアイツを意識しまくっている

83 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 02:49:26.53 ID:ra4CwiYK.net]
>>79
自演バレてるぞ

84 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 02:52:47.39 ID:cpGshdOM.net]
自演じゃねーしw

例え自演だとしても、お前が例のアイツを忘れられない
ってのは事実だろう?だってそれっぽい書き込みをみたら
思い出してしまったんだし。

俺はどうでもいい人のことなんか覚えられないなぁw

85 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 03:03:28.70 ID:M1BysAXW.net]
今日の荒らしのIDはID:AScviHBwとID:cpGshdOMか
もっとレス稼げよカス

86 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 03:05:51.79 ID:cpGshdOM.net]
そういや上の方でrspecって名前が出てたけど、
rspecの使い方をマスターするのは重要だな。

contextとlet、この2つの正しい使い方は
ちゃんと理解しないといけない
たんなるグループわけとか変数の代わりではない

87 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 03:11:55.00 ID:cpGshdOM.net]
少しヒントを出すか。

context(describe)はテスト対象のコードが複雑なら遠慮なくネストすること
もちろんテスト対象のコードはなるべくシンプルにするものだから
その場合はテストコードもcontextのネストも深くはならないのだが、
条件分岐があればそれに対応してcontextもネストさせてよい

そしてletは名前を遠慮なくかぶらせていい。
一般的には外側のスコープと同じ名前の変数を作るのは良くないことだが
describeとcontextのネストの中で、外側と同じ名前の変数は遠慮なく作っていい。
というか外側のletはデフォルト値、内側のletはそれを上書きする。そういう扱い

88 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 03:18:31.95 ID:ra4CwiYK.net]
いつもネガキャンがバレたら即自演荒らし始めるけど、
もしかして何かの病気?

89 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 03:20:06.76 ID:cpGshdOM.net]
いつもと違う=別人 という発想に至れないのが残念な人だなw
思い込みハゲしいぜハゲ

90 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 03:25:08.37 ID:JkPU7Xcj.net]
>>77
x = strArray.uniq.group_by{|e| strArray.count(e)}
# 最大値
m = x.keys.max # => 2
# 最大値を返す要素
x[m]. #=> ["a", "c"]



91 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 03:25:58.22 ID:ra4CwiYK.net]
ここまで「ネガキャンをしていたのは自分です」と告白してくれる人も珍しい
こんな正直な人なかなかいない

連投する癖は相変わらずウザイけど

92 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 03:31:15.22 ID:cpGshdOM.net]
>>88
ネガキャンしてたのはお前だろw

何も言わないなら図星だし
必死に否定するのは怪しい
正直に答えろ

という理屈で語らないでくださいよw
俺ネガキャンしてないし

93 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 03:51:22.77 ID:ra4CwiYK.net]
いつもネガキャンがバレたら即自演荒らし始めるけど、
もしかして何かの病気?

94 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 03:52:53.67 ID:cpGshdOM.net]
だから誰と間違ってんだよw

95 名前:デフォルトの名無しさん [2017/12/08(金) 04:13:17.16 ID:uDZwOU33.net]
ネガキャン失敗を晒しあげ

96 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 05:21:46.31 ID:ra4CwiYK.net]
>>91
お前って行動を振り返る癖がないんだな
墓穴を掘るのは別に止めないけど、病気ならはやく病院に行った方が良いよ

97 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 05:27:36.83 ID:T81djMMQ.net]
毎回同じようなこと繰り返してるけど、今のrubyで問題ないと思ってるやつのほうが相当やばいと思うけどね

98 名前:デフォルトの名無しさん [2017/12/08(金) 05:33:53.21 ID:uDZwOU33.net]
荒らし「毎回同じようなこと繰り返してるけど、今のrubyで問題ないと思ってるやつのほうが相当やばいと思うけどね」(荒す口実にしないとは言っていない)

99 名前:77 mailto:sage [2017/12/08(金) 06:05:43.38 ID:DD2Dk6IR.net]
strArray = %w(a b c a c)
strHash = strArray.each_with_object(Hash.new(0)) { |str, h| h[str] += 1 }

p strHash #=> {"a"=>2, "b"=>1, "c"=>2}

maxCount = strHash.values.max #=> 2
p strHash.select {|k, v| v == maxCount } #=> {"a"=>2, "c"=>2}

key, rassoc を使うと、最初に一致した、1つしか返さない。
p strHash.key(maxCount) #=> "a"
p strHash.rassoc(maxCount) #=> ["a", 2]

>>87
ありがとう。その方法でも出来ますね

100 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 06:34:00.66 ID:T81djMMQ.net]
今度は俺が荒らし扱いか
めんどくさいスレだな



101 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 06:34:11.97 ID:ra4CwiYK.net]
毎回繰り返されているのはRubyに関係無い荒らしの自爆劇なんだよな

102 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 06:41:08.45 ID:61INIGrw.net]
単発でネガキャン繰り返してた奴=自演しながら静的静的言い続けてる荒らし
は確定か
次、荒らしがやりそうなのは
荒らしをスルーして書き込みさせてたIDでの"加勢"かな?

103 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 07:38:48.25 ID:AScviHBw.net]
少なくともID:AScviHBwはRubyと関係ないことは言ってないし別に間違っ

104 名前:スことも言ってないでしょ
静的型の方がリファクタリングしやすい、くらいMatzでも発言したことあるぞ
さすがにこんなのまで荒らし扱いするのはこのスレくらいだよ
[]
[ここ壊れてます]

105 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 08:04:15.93 ID:ZXhAMZdZ.net]
>>100
ID位変えろ。

106 名前:デフォルトの名無しさん [2017/12/08(金) 09:57:04.25 ID:v/VLqoKO.net]
>>100
>少なくともID:AScviHBwはRubyと関係ないことは言ってないし別に間違ったことも言ってないでしょ

確かに動的型付けであるRuby とは関係あるし、間違っていることも言っていない
ただしそれは Ruby 固有の問題ではなく動的型付け言語全般に共通のこと
にもかかわらずRubyスレに粘着してクソレスを連投してるから荒らしと言われる

たとえば>>76を改変すると:
  >テストのない大規模なPythonのソースは単なる糞の山であり、確実にメンテ不能に陥る
この文章は動的型付け言語であるPythonと関係するし、間違ってもいないでしょ

107 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 10:28:17.37 ID:3HBH94ah.net]
それはRubyユーザーがRubyのスレでRubyについて何か書き込むのは当たり前では?
その意味で、唐突にPythonなど他の言語を持ち出す方が荒らしでは?
もう一度書くけど、RubyユーザーがRubyのスレでRubyについて書くのは当たり前では?

逆にPythonユーザーがPythonスレに何か書き込むとき
同じことがRubyにも言えたら、ここにも何か書き込まなきゃならないのか?

108 名前:デフォルトの名無しさん [2017/12/08(金) 11:06:13.77 ID:+YVZNSfe.net]
まあ歓迎しない空気があるスレで歓迎しない話題を延々と続けるのもどうかとは思うが。

109 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 12:25:20.39 ID:T81djMMQ.net]
最近のrubyの明るい話題と言えば、require 'pp' と書く必要がなくなったことくらいだな

110 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 15:14:06.90 ID:ra4CwiYK.net]
荒らしよ
お前のやっている行為が荒らし行為じゃないって言うなら
ruby-listやruby-devに行けよ



111 名前:デフォルトの名無しさん [2017/12/08(金) 15:55:17.61 ID:v/VLqoKO.net]
>>103
>RubyユーザーがRubyのスレでRubyについて書くのは当たり前では?

もちろん、それなら当たり前だよ
でも ID:AScviHBw がやった、RubyユーザーでもないのにRubyスレで
Rubyに限らない一般論を連投する行為は当たり前じゃないだろ?
  hissi.org/read.php/tech/20171208/QVNjdmlIQnc.html

たとえばRailsユーザーがRubyスレでRailsについて連投するのは当たり前じゃないし、
そこでWebProg板の専用スレへの誘導を促されても移動せずに屁理屈をこね回していれば、
その行為に対して荒らし認定されるのは当たり前だろ?

ということで、これ以上「動的型付け言語におけるリファクタリング」うんぬんを
語りたければ、専用の隔離スレがあるからそちらへ移動を願う

・静的型付け言語の潜在開発生産性は今の100倍 ×5
  mevius.2ch.net/test/read.cgi/tech/1385273168/
・リファクタリングをただのコード修正と思ってる人へ
  mevius.2ch.net/test/read.cgi/tech/1275121556/

112 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 16:03:31.33 ID:61INIGrw.net]
次から初心者スレでネガキャンや自演を繰り返す輩は
ruby-listやruby-devに来れないなら荒らし認定して良いだろう

ruby-listやruby-devに来たなら書き込み時のIDとレス番をしっかり伝えて発言しろよ

113 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 16:39:26.80 ID:8wQDKBTk.net]
今日のID

ID:AScviHBw
ID:cpGshdOM
ID:T81djMMQ
ID:3HBH94ah

ID:v/VLqoKO ←New!

114 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 20:29:36.48 ID:3HBH94ah.net]
RubyユーザーがRubyに思うことを書き込むときに
他の言語にも言えることだったら書き込んではいけないというのはおかしい
他の言語は関係なかろう、Rubyユーザーなのだから

115 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 20:38:10.07 ID:ra4CwiYK.net]
初心者スレでイキってないでruby-listかruby-devにいって来いよ荒らし

116 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 21:52:10.81 ID:cpGshdOM.net]
おっすただいま。また誰かと俺を勘違いしてる人が
暴れてるのかな?

117 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 21:58:28.54 ID:ra4CwiYK.net]
この荒らしは自演で嘘ばかりついて人を騙す事しかしないけど、
ruby-listやruby-devの名が出た途端にダンマリ
もしかして過去に追い出された口かな?

だからruby-listやruby-devにいけないのか

118 名前:デフォルトの名無しさん [2017/12/08(金) 21:59:58.96 ID:TcYdv7Hd.net]
ruby から numpy 使えば文句なさそう
って一瞬思ったがそれなら最初から python でいいや

119 名前:デフォルトの名無しさん [2017/12/08(金) 22 ]
[ここ壊れてます]

120 名前::03:16.63 ID:8wQDKBTk.net mailto: 100デフォルトの名無しさん2017/12/08(金) 07:38:48.25ID:AScviHBw
少なくともID:AScviHBwはRubyと関係ないことは言ってないし別に間違ったことも言ってないでしょ
静的型の方がリファクタリングしやすい、くらいMatzでも発言したことあるぞ
さすがにこんなのまで荒らし扱いするのはこのスレくらいだよ
[]
[ここ壊れてます]



121 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 22:25:47.08 ID:gOxqVObs.net]
Ruby3で予定されてるType Checkingのことでちょっと聞きたいんだけど
def sum(x: Integer, y: Integer)
って言う形にするって見たんだけど、キーワード引数はどういう形でこの先生き残ればいいのか教えて下さい

122 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 22:33:35.37 ID:ra4CwiYK.net]
例の荒らしが荒らす前に答えとく
まだ型システムがどうなるかは決定してないから、
誰もわからない
一応、2020年のオリンピック頃に何か発表されるようだけど、
キーワード引数には言及されてないと思う

123 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 22:49:19.36 ID:PDg411NM.net]
>>112
ruby-devでいいから発言してみたら?
スレ内でやってた事が荒らし行為じゃないなら、皆が納得するわけだし
判り易い様にIDとレスの番号も書いてね

124 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:05:52.19 ID:ra4CwiYK.net]
その場合、発言できないとなるとみんなから荒らし認定されるわけだけど


俺は出来ない方に一票
日付変更でIDリセットを狙ってるんだよ
呼吸するように嘘を吐く性格だからもう絶対出て来ないのは判りきっている

125 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:07:29.21 ID:cpGshdOM.net]
>>118
いやruby-devとは内容が違うだろ

126 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:10:46.95 ID:cpGshdOM.net]
ruby-devはrubyの開発者のためだから場所が正しくない
Ruby初心者の質問と回答はここしかないな

127 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:18:20.96 ID:gOxqVObs.net]
>>117
ありがとう

128 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:18:34.18 ID:PDg411NM.net]
連投ってことはやっぱり荒らしか

129 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:22:20.73 ID:ra4CwiYK.net]
ruby-listでもruby-devでもどっちでも構わないよ

発言マダー?

130 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:39:14.89 ID:DD2Dk6IR.net]
荒らしと会話するな。
会話して、話を続ける者も、荒らしと同じ

荒らしを無視しないと、ずっと荒らされる。
荒らしは無視されるのが、辛い

>>116
Haxe のデフォルト引数は、以下。
? は、null になる

function f(x:int = 0, ?y:String):Void{ }



131 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:40:59.47 ID:cpGshdOM.net]
>>125
了解した

132 名前:デフォルトの名無しさん [2017/12/08(金) 23:42:38.02 ID:8wQDKBTk.net]
これは自演ですわ


125デフォルトの名無しさん2017/12/08(金) 23:39:14.89ID:DD2Dk6IR
126デフォルトの名無しさん2017/12/08(金) 23:40:59.47ID:cpGshdOM

133 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:47:48.85 ID:cpGshdOM.net]
>>127
外れ。つーかIDが交互に出てるじゃんw

134 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:52:28.13 ID:ra4CwiYK.net]
荒らし認定完了したな


こんなに何ヶ月も粘着するなら、
ネガキャンや荒らす奴はruby-listやruby-devに書き込んでからスレにレスしてもらう事にするか
本人承認って事で
嫌ならネガキャンや荒らし行為しなければ良いだけだし

135 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:54:07.78 ID:gOxqVObs.net]
>>125
知りたいのはキーワード引数の泉源についてです!

136 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:54:25.19 ID:cpGshdOM.net]
その荒らしだと認めたら、荒らし決定
でも荒らしと認めなかったら、荒らし決定

っていうのやめたら?
ほんと必死すぎだよw

137 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:55:18.78 ID:cpGshdOM.net]
>>125
> 荒らしと会話するな。
あ、ごめんw

138 名前:デフォルトの名無しさん [2017/12/08(金) 23:57:30.52 ID:8wQDKBTk.net]
>>132
「初心者スレでないとネガキャンと荒らし行為ができない」とかなにアホな事を公言してるの?
頭大丈夫?
自分でなにを言ってるのか理解してる?

自分の書き込みを読み返せないの?

139 名前: mailto:sage [2017/12/08(金) 23:58:00.23 ID:cpGshdOM.net]
うーん、とりあえずトリップつけておこうかな

140 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:58:49.70 ID:cpGshdOM.net]
>>133
ネガキャンも荒らしもしてない。
だから誰と勘違いしてるのさ?



141 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:59:20.20 ID:cpGshdOM.net]
俺の書き込みってどれだよ?
そこで俺じゃないIDを持ってくるんだろうなw

142 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 23:59:55.92 ID:ra4CwiYK.net]
よし、次はruby-listかruby-dev、好きな方で発言よろ

143 名前: mailto:sage [2017/12/09(土) 00:01:31.26 ID:/arVeZ+Z.net]
ちなみにトリップつけたのは
日付変わってID変わるのを待って逃げたなとか
言わさないため

144 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 00:01:48.43 ID:/arVeZ+Z.net]
>>137
そこはRuby初心者スレじゃない

145 名前:デフォルトの名無しさん [2017/12/09(土) 00:03:53.78 ID:Q5h5RL93.net]
腹いてーwwwwwwwwwww

146 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 00:07:27.23 ID:/arVeZ+Z.net]
俺はさっきも言ったとおりネガキャンも荒らしもしてないので
逃げる必要もない。だからあえてIDが変わっても
俺だとわかるようにした。
本当の荒らしは逃げる頃だろう

147 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 00:18:21.31 ID:JRYZIrF0.net]
みんな、君がRubyコミュニティで発言するのを待っているんだけど

148 名前:125 mailto:sage [2017/12/09(土) 00:25:45.47 ID:zmyZSbxv.net]
荒らしと会話するな。
会話して、話を続ける者も、荒らしと同じ

荒らしを無視しないと、ずっと荒らされる。
荒らしは無視されるのが、辛い

149 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 00:26:47.64 ID:CCmdYb7I.net]
俺も今いる荒らしに謎の自演認定されたことあるわ(もちろん間違い)
語り口からあぼーんしやすいから関わらないようにしよう

150 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 00:28:10.11 ID:G1+8m8SN.net]
ruby-listかruby-devへの発言、
まだですか?



151 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 00:30:08.15 ID:/arVeZ+Z.net]
はい、荒らしは無視しますね

152 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 00:35:37.60 ID:bnxFwpIe.net]
俺、ずっと待ってんだけど
発言まだー?

153 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 00:36:49.54 ID:/arVeZ+Z.net]
お前は待ってないだろw
初めてのIDなんだから初めてこのスレで発言した人じゃん?

154 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 00:45:21.26 ID:xhCLu2lr.net]
トリップ消してるし逃げる気まんまんじゃないですか
発言まですか?

155 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 00:46:24.36 ID:/arVeZ+Z.net]
トリップはIDが違っても同じ人物であることを示すための
一時的なものだぞw

156 名前:77 mailto:sage [2017/12/09(土) 00:46:47.45 ID:zmyZSbxv.net]
>>96 で、
>maxCount = strHash.values.max #=> 2
>p strHash.select {|k, v| v == maxCount } #=> {"a"=>2, "c"=>2}

これをもっと簡単に選択できないかな?
ブロックに条件を設定して

Hash の値が、最大のものを取得する(複数可)

157 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 00:51:08.82 ID:/arVeZ+Z.net]
つーかなんでRubyスレでも似たようなことやってるんだ?って
思ったら、向こうから持ってきた話題かよw

向こう(JavaScript)での回答を書いておくよ

const counts = _.countBy(['みかん','りんご','みかん','ばなな','りんご','りんご']);
const max = _.max(_.values(counts));
const picked = _.pickBy(counts, _.partial(_.eq, max));
const items = _.keys(picked);
console.log(items);
// => ["りんご"]

このcountByってのがRubyにはないみたいね
(と言っても、countByっていうのはJavaScript標準ではなく
lodashという有名なライブラリだけど)

158 名前:デフォルトの名無しさん [2017/12/09(土) 00:56:26.93 ID:JRYZIrF0.net]
これで荒らし確定、と

何ヶ月も粘着がスレを荒したため、
これから対策でネガキャン等行為を行う人がいた場合はruby-listやruby-devへ誘導するようにお願いします
自演でIDを変えて荒らをし繰り返すため、加勢するIDも含めて誘導するようお願いします

荒らしはruby-listやruby-devを追い出されたため現在、出入り禁止になっています

159 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:00:53.77 ID:+EgCPyTt.net]
>>152

ruby-listかruby-dev、どちらかに発言するか失せるかしろ荒らし

160 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:02:49.78 ID:/arVeZ+Z.net]
>>154
> 荒らしはruby-listやruby-devを追い出されたため現在、出入り禁止になっています



161 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:07:25.12 ID:+EgCPyTt.net]
つまりは荒らし本人だったわけか、あんなに「自分は違う」とか言っておいて

人を騙す事もなんとも思っていない隣国の住人みたいな奴だなお前

162 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:09:01.78 ID:/arVeZ+Z.net]
「つまり」どういう理屈なんだろう?
頭悪そう

163 名前:デフォルトの名無しさん [2017/12/09(土) 01:12:50.76 ID:v8w6iGdG.net]
発言できないのを自分で認めちゃったかー
祭りが終わっちまったな

というか、自分で墓穴掘った事にも気が付いていなさそう

164 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:13:58.12 ID:/arVeZ+Z.net]
あー、ほんまもんのアホだったkw

荒らしが書き込みできないと言ったのであって
俺は荒らしじゃないんだから関係ないんだよ。

165 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:17:34.96 ID:/arVeZ+Z.net]
そもそも告知されてない限り「追い出された」なんて事例が
存在することは、追い出された本人にしかわかりようがないんやで

166 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:18:15.65 ID:/arVeZ+Z.net]
まあ追い出した側かもしれんがね
(そんな

167 名前:竄ツがここに来るか?) []
[ここ壊れてます]

168 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:18:16.38 ID:JRYZIrF0.net]
ずっとrubyのコミュで発言を待っているんだけど
まだ?

169 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:22:52.71 ID:zWazrV9P.net]
ああ、これは例の荒らしの特技、連投ですわ


159デフォルトの名無しさん2017/12/09(土) 01:13:58.12ID:/arVeZ+Z
あー、ほんまもんのアホだったkw

荒らしが書き込みできないと言ったのであって
俺は荒らしじゃないんだから関係ないんだよ。

160デフォルトの名無しさん2017/12/09(土) 01:17:34.96ID:/arVeZ+Z
そもそも告知されてない限り「追い出された」なんて事例が
存在することは、追い出された本人にしかわかりようがないんやで

161デフォルトの名無しさん2017/12/09(土) 01:18:15.65ID:/arVeZ+Z
まあ追い出した側かもしれんがね
(そんなやつがここに来るか?)

170 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:23:38.62 ID:/arVeZ+Z.net]
なんでいちいちID変えて言うんだろう?w



171 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:25:42.47 ID:JRYZIrF0.net]
今度は見えない敵と戦いだした

たぶん、もうそろそろだと思う

172 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:26:58.97 ID:/arVeZ+Z.net]
(いつも通り)俺はなにもしないよ

173 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:37:31.18 ID:hbOJEhsM.net]
Rubyスレに幼稚なレスが多いのって、Rubyが初心者にオススメ!なんて看板掲げてるからだよな

174 名前:召喚の儀 mailto:sage [2017/12/09(土) 01:38:00.68 ID:sJnBhFUt.net]
おい荒らし、餌だ


144デフォルトの名無しさん2017/12/09(土) 00:26:47.64ID:CCmdYb7I
俺も今いる荒らしに謎の自演認定されたことあるわ(もちろん間違い)
語り口からあぼーんしやすいから関わらないようにしよう

175 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:46:35.31 ID:JRYZIrF0.net]
>>166
荒らしさーん、Rubyコミュでの発言はまだ無理ですか?
自演してる暇あったら発言してくださいよ

1、2分で終わる事じゃないですか?

176 名前:77 mailto:sage [2017/12/09(土) 01:48:08.68 ID:zmyZSbxv.net]
>>152
Underscore の、_.countBy と同じで、
Ruby では、group_by (Enumerable)で、要素をグループ分けできる

strHash = {"a"=>2, "b"=>1, "c"=>2}

maxCount = strHash.values.max #=> 2
p strHash.select {|k, v| v == maxCount } #=> {"a"=>2, "c"=>2}

Hash の値が、最大のものを取得する(複数可)のに、
2行書いてるけど、もっと簡単に書けないのかなと思って

答えが1つなら、簡単に書けるけど、
複数の場合の方法が、見つからない

177 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:52:16.23 ID:sJnBhFUt.net]
これを張っておこう

>単発でネガキャン繰り返してた奴=自演しながら静的静的言い続けてる荒らしは確定か
>次、荒らしがやりそうなのは
>荒らしをスルーして書き込みさせてたIDでの"加勢"かな?

178 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 01:52:18.96 ID:/arVeZ+Z.net]
>>170
グループ分けしてくれるけど、カウントはしてくれないでしょ?
https://ref.xaio.jp/ruby/classes/enumerable/group_by

Rubyのgroup_byはUnderscore(lodash)でもgroupBy

179 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:01:56.81 ID:hHujkNr/.net]
俺もruby-listとruby-devで発言をずっと待ってるんだけど、
1、2分でおわることなのに何故、逃げ回ってるの?

つーか、逃げないとか言ってたのに
どうしてそれほど人に嘘をついて騙そうとするの?

180 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:05:21.82 ID:/arVeZ+Z.net]
> 荒らしさーん、Rubyコミュでの発言はまだ無理ですか?

荒らしだと自覚がある人はruby-listとruby-devで発言してやってください



181 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:07:57.91 ID:JRYZIrF0.net]
>>174
何、逃げ回ってるんだよ

182 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:10:17.22 ID:/arVeZ+Z.net]
なんで用事がないのに書き込まないといけないんだろう?
不思議だ。荒らせと言ってるのかな?
俺荒らしじゃなしし

183 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:11:37.40 ID:hHujkNr/.net]
荒らしって疑われたら、自演でまともなやり取りして疑いをかわそうとするけど、
遅いよね

普通の人はまともですアピールなんかしない
普通の人は自演なんてできないからね、しかたがない
アピールするのは自演できる荒らしだけ

184 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:12:33.36 ID:/arVeZ+Z.net]
じゃあ自演してないし、俺確実に荒らしじゃないじゃんw

185 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:12:51.59 ID:kKoELm7m.net]
>>176
いちいち荒らしにかまうなよ
質問流れちゃってんじゃん

186 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:13:28.83 ID:/arVeZ+Z.net]
つーか、JavaScriptスレでも一緒だけど
本当の荒らしってスレに関係ないことをずーっと言ってるんだよ
俺は同じことをJavaScriptスレでも指摘してる。
本当の荒らしは誰かって

187 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:14:13.53 ID:/arVeZ+Z.net]
>>179
早く質問なり回答してくれよw
俺しか質問に回答してないじゃんかw

188 名前:デフォルトの名無しさん [2017/12/09(土) 02:16:17.79 ID:H3vgf6HH.net]
>>181
お前、まだいたの?
へたくそな自演してないで失せろよ

189 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:27:37.92 ID:JRYZIrF0.net]
結局、いつもの口先だけの荒らしだったか

190 名前:デフォルトの名無しさん [2017/12/09(土) 02:43:12.45 ID:H3vgf6HH.net]
二代目テンプレつくったよ


粘着する荒らしがスレを何ヶ月も荒らしたため、
ネガキャン等行為を行う人がいた場合はruby-listやruby-devへ誘導するようにお願いします
自演でIDを変えて荒らをし繰り返すため、加勢するIDも含めて誘導するようお願いします

荒らしはruby-listやruby-devを追い出されたため現在、出入り禁止になっています
そのため過去、誘導されると逃げ回った経過があるので、コミュニティで発言を確認するまで誘導してください



191 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:45:16.67 ID:/arVeZ+Z.net]
透明あぼ〜んにしてみた
これで俺が見えるのは、毎回ID変更してる人だけになったよ

192 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:46:08.45 ID:/arVeZ+Z.net]
あとついでにruby-listとruby-devも透明あぼ〜ん行きとなった

193 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:50:44.63 ID:/arVeZ+Z.net]
77 名前:デフォルトの名無しさん[sage] 投稿日:2017/12/08(金) 02:24:45.46 ID:DD2Dk6IR [1/3]
strArray = %w(a b c a c)
strHash = strArray.each_with_object(Hash.new(0)) { |str, h| h[str] += 1 }

p strHash #=> {"a"=>2, "b"=>1, "c"=>2}

使われている文字が、一番多いもの(複数可)と、その回数を求める。
ひとまず、Hash に使われている回数を入れたけど、

ここから最大のもの、a, c の、2回を求めるには、どうすれば良い?

87 名前:デフォルトの名無しさん[sage] 投稿日:2017/12/08(金) 03:25:08.37 ID:JkPU7Xcj
>>77
x = strArray.uniq.group_by{|e| strArray.count(e)}
# 最大値
m = x.keys.max # => 2
# 最大値を返す要素
x[m]. #=> ["a", "c"]

96 名前:77[sage] 投稿日:2017/12/08(金) 06:05:43.38 ID:DD2Dk6IR [2/3]
strArray = %w(a b c a c)
strHash = strArray.each_with_object(Hash.new(0)) { |str, h| h[str] += 1 }

p strHash #=> {"a"=>2, "b"=>1, "c"=>2}

maxCount = strHash.values.max #=> 2
p strHash.select {|k, v| v == maxCount } #=> {"a"=>2, "c"=>2}

key, rassoc を使うと、最初に一致した、1つしか返さない。
p strHash.key(maxCount) #=> "a"
p strHash.rassoc(maxCount) #=> ["a", 2]

194 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:51:09.43 ID:/arVeZ+Z.net]
話を戻してみた

195 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:52:12.45 ID:JRYZIrF0.net]
これはありがたい
誰が自演で荒らしてるかすぐに分かるな

196 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:55:02.92 ID:/arVeZ+Z.net]
ちなみに2ちゃんねるブラウザを使ってると
新規IDの人はすぐに分かる

197 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 02:56:08.51 ID:Ujqv8+EC.net]
>>190
ruby-listかruby-devで発言できたら認めてやるよ

  お 前 に 出 来 た ら な

198 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 03:03:08.34 ID:JRYZIrF0.net]
ID:/arVeZ+Zは昨日からずっと逃げ回ってたんだっけ?
さっそくテンプレを張らせて頂く


粘着する荒らしがスレを何ヶ月も荒らしたため、
ネガキャン等行為を行う人がいた場合はruby-listやruby-devへ誘導するようにお願いします
自演でIDを変えて荒らをし繰り返すため、加勢するIDも含めて誘導するようお願いします

荒らしはruby-listやruby-devを追い出されたため現在、出入り禁止になっています
そのため過去、誘導されると逃げ回った経過があるので、コミュニティで発言を確認するまで誘導してください

199 名前:77 mailto:sage [2017/12/09(土) 03:15:35.50 ID:zmyZSbxv.net]
(acc, b) => { acc <= b }
こういう判別関数があったとして、求める答えが、1つだけなら簡単。

例えば、入力が[3, 2, 3, 5]でも、
バッファに持っている値は、[3, 3, 3, 5]の順番で、1つだけで済むけど、

答えが複数可能になると、[3, 3, [3, 3], 5]の順番で、
途中でバッファに複数を持つ必要がある

こういう処理が難しいから、答えを1つしか返さないのだろう

あるレコードの列の値、Hash の値、あるオブジェクトのプロパティの値が、
最大のものを求める(複数可能)という、簡単な関数が、意外と見つからない

200 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 03:23:13.41 ID:/arVeZ+Z.net]
個人的には二回やればいいと思うんだよね。

多分一回でやったほうが速いと思ってるんだろうけど
ループの中で複雑なことをやるとCPUのキャッシュから溢れてしまうので
シンプルな処理のループを二回やるほうが速いのではないかって思ってる
あとマルチコアだと別々に処理できるかもしれないしね
まあ実際に検証はしてないんだけどさ



201 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 03:27:37.70 ID:2nAyZadj.net]
ID:/arVeZ+Zって何をやったの?

202 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 03:30:23.07 ID:/arVeZ+Z.net]
JavaScriptスレでlodash使ったコードを書いたよ
それを持って>>77がこのスレに来たようだ

203 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 03:32:23.28 ID:JRYZIrF0.net]
荒らしじゃ無いよアピールしてるけど、
ここ数ヶ月、Rubyスレに粘着して自演で荒らし行為を繰り返してた荒らし本人
それで昨日、皆がブチ切れて、
ruby-listかruby-devのどちらかで発言して本人確認しろって事になったんだけど
ID:/arVeZ+Zが逃げ回り、その道中もアホな自演で墓穴堀りまくって、今に至る

204 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 03:41:01.56 ID:2nAyZadj.net]
もしかして最近の単発ネガキャンもID:/arVeZ+Zなの?

205 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 04:04:00.12 ID:JRYZIrF0.net]
うん
昨日のレスとか見ると分るけど、
連投する癖とかまんまで今日のIDは

ID:zmyZSbxv
ID:/arVeZ+Z
ID:kKoELm7m
ID:hbOJEhsM
ID:CCmdYb7I

今は、昨日の自演で使った別IDと会話ごっこしてる

それで、ID:/arVeZ+Z がRubyコミュニティで発言できなかったから皆で、
今後の対策として荒らし行為やネガキャンを行う人がいた場合は、
ruby-listとruby-devに誘導する事になった

206 名前:77 mailto:sage [2017/12/09(土) 04:10:47.76 ID:zmyZSbxv.net]
>>194
strHash = {"a"=>2, "b"=>1, "c"=>2}

maxCount = strHash.values.max #=> 2
p strHash.select {|k, v| v == maxCount } #=> {"a"=>2, "c"=>2}

全要素をなめて、最大値を求めて、
もう1回、全要素をなめて、
その最大値を使っている、オブジェクトを求めるのに、抵抗を感じるw

普通、2回も全要素をなめるか?w

207 名前:デフォルトの名無しさん [2017/12/09(土) 04:34:45.05 ID:su9Dppjp.net]
これが昨日のID変えれなかった自演失敗例

>100デフォルトの名無しさん2017/12/08(金) 07:38:48.25ID:AScviHBw
>少なくともID:AScviHBwはRubyと関係ないことは言ってないし別に間違ったことも言ってないでしょ
>静的型の方がリファクタリングしやすい、くらいMatzでも発言したことあるぞ
>さすがにこんなのまで荒らし扱いするのはこのスレくらいだよ

で、それを自演でカバーしようとしたのがこれ

>79デフォルトの名無しさん2017/12/08(金) 02:47:13.84ID:cpGshdOM
>yFCS8xkjは例のアイツを記憶している
>それぐらい例のアイツを意識しまくっている

で、うまくトリップで引継ぎさせたIDがこれ

>ID:/arVeZ+Z

で、後に加勢させるため昨日から荒らしをスルーして投稿させてたIDがこれ

>ID:zmyZSbxv

話を遮る所からもご覧のとおりアボーンしてるから見えてないんだよ

ID:zmyZSbxv=ID:/arVeZ+Z

208 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 04:52:18.43 ID:ptiAgEOA.net]
もういいよ
当分は何も出来ないだろうし又ネガキャンや荒らしやって来たらテンプレでとっちめまくるから

209 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 04:53:26.04 ID:/arVeZ+Z.net]
>>200
二回舐めても良いんじゃない?って思ってる
メモリはキャッシュに入るだろうし、
ループとかCPUの投機的実行が当たりやすいだろうから
そんなに時間変わらないんじゃないかって思ってる
検証してみてくれ

210 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 05:02:36.18 ID:ptiAgEOA.net]
そうやって地道にしっかりレスを稼げ



211 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 05:11:54.17 ID:JRYZIrF0.net]
将来、型システムが導入される事になったらやっぱり型もオブジェクトになんのかな
型の呼び出しや定義なんかもRubyっぽくメタプログラミングやワンライナーで書けたり

212 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 05:53:50.28 ID:PWfKTZji.net]
事前エラーだー最適化だー高速化だーっと言って型を検討してるわけだが、
今更テンプレートのような型マクロとかテキストマクロの時代に戻るわけではないだろうし
Ruby的に下のようなぶっとんだ書き方も無きにしも非ず
def foo(x : (@flag ? String : Array) , y : (@flag ? String : Array) )
p x,y
end
まぁ、これだと事前チェックの時に実行時情報が必要になるから何か仕掛けが必要なんだが

213 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 07:21:40.66 ID:JRYZIrF0.net]
>>206
その書き方を出来るようにするには、
実行時情報よりも型チェックのために事前に走らせる部分をRubyのコードから抜き出す必要があるけど?

214 名前:デフォルトの名無しさん [2017/12/09(土) 08:54:23.61 ID:puk20IRY.net]
>>205
型もオブジェクトになんのかなというか、すでにRubyには
クラスと呼ばれる(部分型付された)型が存在し、知られているように
クラスはClassクラスのインスタンス、いわゆるオブジェクトだね
で、型システムの導入で変わるのは、オブジェクトがメソッドを
受け付けた時に行われる検査が実行時のみであった(動的型付け)のが
どこまで実行前にできる(静的型付け)ようになるのか?という議論になる

そして静的片付けには型(=クラス)をコードで宣言する明示的片付けと
宣言しない暗黙的片付けの二種類があって、>>206は前者に該当する
ここでMatzがたびたび主張している「型を書きたくない」という方針は
後者の暗黙的片付けであり、これは「Rubyの構文を大きく変更しない」
という別のMatzの方針とも一貫している
いいかえると型宣言構文の新規追加が必須な明示的片付けは採用したくないという意味

まとめると、理想的にはRubyユーザーから見ると既存の構文はなんら変更もなく
(=互換性を維持したまま)型システム導入の利点を享受できるようになる
ただしこれはあくまで理想的な姿であって、技術的に高度な型システムの導入において
どこまで妥協できる/する/すべきと言った様々な取捨選択が議論されているところ

215 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 08:58:19.29 ID:Xp00eVEZ.net]
>>207
そうじゃない
この場合、xの型は String | Array として扱うべき
フロー解析によって、その後コード上で flagで分岐した時点でthenブロックではString, elseブロックではArrayと確定する
TypeScriptはそういう方式

216 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 14:15:40.37 ID:HCMuc4Gp.net]
>>208
なるほど、良くまとまってます

217 名前:
要するに、もはや静的型チェックが有ったほうが良かったのは
社会主義が資本主義に負けたのと同じぐらい分かりやすいレベルで
誰の目にも実験的/経験的に明らかというか
動的型のプロパガンダ的な嘘がバレて広く知れ渡ったので
今までは北朝鮮みたいにあんな調子で押し通していたが
いよいよ立ち行かないので、あれだけ言っといて今更恥ずかしいことではあるが
恥を忍んでRuby3.0で静的型チェックを入れたい
という背景があるってことだね
で、ここまではRuby触ってる人なら当たり前の常識なわけだが

もし、明示的な型宣言を文法に入れるなら、変数宣言をするということになり
変数宣言をするということは、型だけじゃなく変数のスコープも宣言出来るということで
CやJavaなどで見られる、いわゆる普通のレキシカルスコープを採用できるし
「@」のような気職の悪いものは要らなかったという結論になるわけだな
なんで変数宣言を入れるということは、静的型に白旗を上げるということだけではなく
「変数宣言を変数への最初の代入で代用するから変数宣言と代入の文法的区別がつかない」
という文法的問題、気色の悪いスコープについても意味が無かったということで
おおよそ変数周りのすべてて雪崩的に設計ミスだったということになる
ここまで壮大に間違ったなら、一から作り直した方が良いんだろうが
それならユーザー視点で考えると、間違ってない他の真っ当な言語を使えばよい話になるので
Rubyは大きく間違っているが、もはや間違ったまま行くしかない
とMatzは考えているってのが>>208なわけか
(流石のMatzもこの程度のことに気が付いていないとは思えない、言わないだけで)
ただ宗教的な感覚も絡んできて、誤った考え方でもある一定の信者はつくもので
Rubyはあえてそこを狙っているわけで(Matzはインタビューなどで逆張り逆張りと良く言っていた)
初めから分かっててわざと間違えた可能性もあるし、あるいは両方か
まぁペテン師だ
[]
[ここ壊れてます]

218 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 14:50:03.37 ID:HCMuc4Gp.net]
まぁ単純に考えても、今更、静的型を導入するぐらいなら
初めから静的型にしておけばよかったのは言うまでもない
仮に静的型が最近出てきた考え方でRubyを開発した当時は知りもしなかった
というなら仕方がないが、静的型は昔からあったし、RubyはCで書かれたわけで
知らなかったというのはあり得ないし、むしろ自分は静的型の恩恵を受けて
Rubyを開発したわけであって
そこは明確な意思をもって、あえて動的型にしたわけだから、今更静的型にするのはどうよ
(なら、初めからしておけよ、と思うだろ?)
ただもしRubyが静的型だったのならC/C++やJavaと競合して生き残れる理屈が無かったし
それもあって動的型にした部分もあるんだろうし
あまり言いたくはないが、そういうのを世間一般では悪魔に魂を売ったとかと表現して
それでカルト宗教というかドーピングというか、まぁ社民党にも支持者はいるわけで
そこを狙ったんなら、今更クリーンにっつっても、ブレるっつーか、民進党の前原代表みたいになるし
メジャー行けばもっと大きな勢力がひしめいてるわけだから
今まで通りマイナーメジャーでやってくのが良いんじゃね?と思わんでもない
いやぁこれは、メジャーマイナーとマイナーメジャーのどちらのほうが良いのかという
Pythonはメジャーマイナーを狙いに行ってるようなので
一つ席が空いたという部分も含めてRubyはマイナーメジャーを狙う感じなんだろう
Matzが好きな逆張り的な意味で

219 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 15:20:28.57 ID:IaSBe7Pk.net]
これが本当の荒らし

220 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 16:18: ]
[ここ壊れてます]



221 名前:52.76 ID:jtqcr+t2.net mailto: >>210
あほか、
何でわかりやすいレベルなんだよ。
お前の中の価値観ではそうだというレベルの話じゃねーか。
[]
[ここ壊れてます]

222 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 16:21:32.60 ID:jtqcr+t2.net]
嘘で押し通すというのは
トランプ大統領がエルサレムの首都認定が
世界中からバッシングを浴びたと報道しているやつだ。これが嘘

本来ならエルサレムが首都になって嬉しいという声があるはずなのに
そういう報道が一切ない。
トランプの大統領選前と同じで嘘を押しとうそうとしているわ。

223 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 16:48:54.96 ID:HCMuc4Gp.net]
「静的型があったほうが良かったのは分かりやすいレベルで明らか」
それを俺の頭の中だけの話で嘘っぱちだというのは勝手だが
ではなんで動的型の権化みたいなRubyで
次期メジャーバージョンアップで静的型などという話が持ち上がってるんだ?
となるわなぁ
少なくとも次期Rubyを策定している連中はそう考えてるわけで
とりあえずRubyにおいては真実だし、このスレ的にはそれ以上の論証は要らないんだが
一般的に言っても最近出てきた目ぼしい言語は当たり前に静的型だし
つまり嘘で押し通そうとしているのはお前だが
ではなぜ嘘をついたのか?目的はなんだ?
身を守るための嘘なら仕方ないんだが、こんな掲示板でそんな必要ないし
利害関係のない掲示板でなんで嘘をつきまわるんだ?

224 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 17:32:32.99 ID:IaSBe7Pk.net]
これが本当の荒らし

225 名前:デフォルトの名無しさん [2017/12/09(土) 17:50:31.43 ID:yzhjOMYr.net]
ID:/arVeZ+Z
おい糞野郎
臭い自演してないで失せろボケ

226 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 17:58:34.44 ID:/arVeZ+Z.net]
まーた俺と勘違いしてる

227 名前:デフォルトの名無しさん [2017/12/09(土) 17:59:43.05 ID:yzhjOMYr.net]
な、召喚の儀で呼べただろ?

228 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 18:31:50.87 ID:ojM2xQr7.net]
>>218
みんなが言ってる通りruby-listで発言してみてはどう?
本当に違うならそれで証明が出来ると思う

229 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 19:02:37.47 ID:JLcgGjoy.net]
>>218はこのまま逃げ回ってIDリセットを狙ってる
昨日のレス読めば分かるけど、
結局は口先で騙して逃げることしかしてない
トリップも消したし

230 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 19:04:59.03 ID:/arVeZ+Z.net]
>>219
頭大丈夫か?
自分から見に行かないと、お前の書き込みは見れないんやで?



231 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 19:05:48.98 ID:/arVeZ+Z.net]
>>221
じゃあお前はID変えるなよ?
お前とわかるものがなくなったら、
逃げたとみなすで?

232 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 19:10:08.10 ID:JRYZIrF0.net]
昨日も今日もID:/arVeZ+Zが叩かれてる間はネガキャンも静的云々も出てこなかったね
なんでかなー(棒)

233 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 19:16:15.66 ID:JLcgGjoy.net]
>>223
俺もruby-listかruby-devで発言をずっと待ってるんだけど
逃げ回らないでくれる?

いつになったら発言するの?

234 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 19:39:46.57 ID:CViON1aA.net]
やっぱ静的型だけどdynamicがあるC#がナンバーワン!

235 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 19:41:28.53 ID:Avl0kHLY.net]
スレ進みすぎだなおい
何があった?

236 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:01:45.91 ID:PLdtTEIG.net]
>>227
1.rubyをネガキャン(個人的には荒らしとまではいかない程度)する人が元から住みついていた
2.自分に対して否定的な意見は全て自演と決めつける狂人が発生(JRYZIrF0 [や単発ID)
  弁護士云々言ったりコピペ連投したりする人
3.せっかく質問があっても2のせいで流れてもうわかんね ← 今ここ

237 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:03:09.41 ID:xil3RrnV.net]
>>225
いっつも絡んでるこいつが一番うざい

238 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:03:52.96 ID:ZQM0F59y.net]
ID:/arVeZ+Zがここ何ヶ月かこのスレに粘着して荒らしてた本人だと判明
で、分りやすい自演を繰り返して誤魔化すからruby-listかruby-devで発言して本人確認しろって事になった
それらからID:/arVeZ+Zが絶賛逃げ回ってる所
必死チェッカーで調べてみ?
これぞ粘着の本領だって

239 名前:分るレス数だから

今後の対策としてはID:/arVeZ+Zを念頭に荒らし行為やネガキャンを行う人がいた場合はruby-listとruby-devに誘導する事になった
[]
[ここ壊れてます]

240 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:10:24.80 ID:xil3RrnV.net]
荒らしと言われてる方はまだrubyの話してるけど、それに反応してる方がただのキチガイになって迷惑すぎる
あーまた馬鹿なこと言ってるわって相手にしないでおくか、rubyの話としてマジレスするかのどっちかにしなさい



241 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:15:40.04 ID:PLdtTEIG.net]
ruby?-d?ev云々いって/?a?r?V?e?Z?+?Zに絡んでいる人(全部同一人物。もしくは多くて2人程度と思われる)が荒らしなのでスルーしましょう

242 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:20:14.45 ID:ZQM0F59y.net]
>>223が急に発言しなくなっただろ?
これで自演できてるつもりなんだよ本人は

243 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:29:52.03 ID:zmyZSbxv.net]
荒らしに、レスを付けるな。
荒らしと会話するな。
荒らしが、ずっと居座るだけ

この板では、何かを答えても、
「知らんくせに答えるな」ってレスが付いて、
「そうだよな」って、すぐにそのレスに賛同する、レスが付く

荒らしに、すぐに賛同する奴が、いる訳がないのに。
それが、どんな深夜にも起こる

とにかく単発ID の奴は、荒らしと見て、スルーする事!

244 名前:デフォルトの名無しさん [2017/12/09(土) 20:32:50.99 ID:ECkYCn8N.net]
>>232
お前のギャグさいこーwwwww

245 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:43:26.43 ID:/arVeZ+Z.net]
>>233
なんだ? 飯ぐらい食わせろよwww
発言しなかったからってなんなんだ?

246 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:44:08.67 ID:/arVeZ+Z.net]
>>224
> なんでかなー(棒)

土曜(休日)の昼間だからだよ?
意味ぐらいわかるよね

247 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:46:52.18 ID:/arVeZ+Z.net]
なんだ?俺が来た途端黙ったなw

248 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:48:58.33 ID:/arVeZ+Z.net]
IDを変えて逃げたとか思ってたんだろうなw
だからID変えてないことがわかると
恥ずかしくなって発言できなくなってしまう
それにお前は毎回IDを変えてるよね(誰のことかわかるよね?w

249 名前:デフォルトの名無しさん [2017/12/09(土) 20:49:36.99 ID:ECkYCn8N.net]
223が自演できるのは書き込み時間からわかったけど
荒らしてたのは本当にこいつなの?

250 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:51:29.23 ID:/arVeZ+Z.net]
IDは変えたら戻すことはできないから自演してない証拠になるからな
その反面、毎回IDを変えることはできるから
違うIDで同じようなことを言ってると自演とばれるわけだ



251 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 20:58:58.11 ID:zmyZSbxv.net]
JavaScript のスレでも、やってる。
荒らしは、全部のスレで、いちゃもんを付けてくる。
そのくせ、プログラミングの話をした事はない

他人のレスを、やたら探したりする。
他人のレスを探しても、1円にもならないのに

荒らしは、仕事した事がないはず

252 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 21:03:22.23 ID:/arVeZ+Z.net]
ライブラリの話をすんなってうるさいアイツのことだなw
同一人物でなければ、荒らしの脳内構造は一緒ってことなんだろう
スレと関係ない話しかしない

俺はもちろんスレと関係ある話をした

253 名前:デフォルトの名無しさん [2017/12/09(土) 21:17:18.85 ID:ECkYCn8N.net]
ごめん、223が荒らしだったわ

254 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 21:24:17.46 ID:/arVeZ+Z.net]
何度も言わなくてもいいよ
お前ぐらいしかそんなこと言ってない
何度も言っても、こうしてバラされたら効果ゼロ

235 名前:デフォルトの名無しさん[] 投稿日:2017/12/09(土) 20:32:50.99 ID:ECkYCn8N [1/3]
>>232
お前のギャグさいこーwwwww

240 名前:デフォルトの名無しさん[] 投稿日:2017/12/09(土) 20:49:36.99 ID:ECkYCn8N [2/3]
223が自演できるのは書き込み時間からわかったけど
荒らしてたのは本当にこいつなの?

244 名前:デフォルトの名無しさん[] 投稿日:2017/12/09(土) 21:17:18.85 ID:ECkYCn8N [3/3]
ごめん、223が荒らしだったわ

255 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 21:49:29.83 ID:KAnpleQL.net]
せいぜい20レス/日のこのスレで彼は今も我らのために見えない敵と戦ってらっしゃるのだ
以下テンプレにいくつか追加

>粘着する荒らしがスレを何ヶ月も荒らしたため、
>ネガキャン、逸脱した連投、荒らし行為を行う人がいた場合は対策としてruby-listやruby-devへ誘導するようにお願いします
>自演でIDを変えて荒らしを繰り返すため、加勢するIDも含めて誘導するようお願いします
>
>荒らしはruby-listやruby-devを追い出されたため現在、出入り禁止になっています
>そのため過去、誘導されると逃げ回った経過があるので、コミュニティで発言を確認するまで誘導してください

256 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 22:18:52.50 ID:HCMuc4Gp.net]
俺は極たま〜〜に静的型どうのこうのの長文を書き込むことがあるぐらいで
言うほど連続投稿しないし、毎日書き込んだりしないし、チラ裏の日記みたいな感じで
特にここ最近半月ほどはスレが荒れていたこともあって何も書き込まないようにしてたんだが
過剰に反応して何にでも荒らし認定する一部のアレな人が全然関係ない人を攻撃していて
攻撃された人は気の毒だなぁとか思いながら、変なことになってるなぁと傍観していたんだが
その流れがあまりにもアレすぎたのか、いよいよ本物が居付いてしまったようだけど
自業自得とはいえ残念なことだな
他の真っ当な住人からしたら随分迷惑なことだろうし、俺も嫌かなぁ

結果的には俺の書き込みに過剰に反応する必要は無かったし
元々荒らしと言われるほど、ひどい内容や投稿スタイルではなかったはずなんだが
(ここが何処かを考えれば、通常、それぐらいは普通にあり得るかなぁという範囲)
実際には過剰反応している奴が意味のない書き込みで一番このスレを荒らしていたし
そのことは他の住人からもちょくちょく指摘が入ってたと思うんだがねぇ
というか、そのあいだ俺は書き込んでなかったんだが・・・しかしまぁ結果的にこの事態だわ

俺も勉強になって、自分たちに都合の悪い事実を、荒らし認定などで黙殺しようとしても
事実を黙殺する歪のようなもので、もっと酷いことになるんだな
嘘が雪だるま式に広がって〜とよく似ている
こういうときは沈黙は金だね

257 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 22:23:27.43 ID:fpEjaZID.net]
スレの終末感がまさにRubyの現状を象徴しているかのようだな

258 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 22:25:40.22 ID:jtqcr+t2.net]
悪貨が良貨を駆逐するってやつだ
良心的なやつがここにいても
アホが次から次に湧いてくるから
心がおられる。

そしてgoとかPythonとかkotolinとかにいってしまう。

259 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 22:26:53.94 ID:/arVeZ+Z.net]
> そしてgoとかPythonとかkotolinとかにいってしまう。

それこそまさに悪貨が良貨を駆逐するってやつだな
今他の何かを駆逐して生き残ってるやつは全部悪貨なんだよ!

260 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 22:28:02.68 ID:/arVeZ+Z.net]
悪貨が良貨を

シリア軍、北部でISIS駆逐の作戦開始 空港を奪還
https://www.cnn.co.jp/world/35073425.html



261 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 23:10:08.11 ID:PLdtTEIG.net]
NGワードになったんでideoneにIDを列挙しておくけど
https://ideone.com/sMHbO4
ID:/arVeZ+Zを誹謗する48個のレスはID:JRYZIrF0を除いて全部のIDがほぼ単発かつ、単発でないものは全て安価がかぶらない
全部ID:JRYZIrF0が自演してることはほぼ明らか
こいつ病気なんじゃねえの
このスレの癌だよ

262 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 23:25:49.93 ID:/arVeZ+Z.net]
乙w

263 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 23:30:09.58 ID:lAUVYRHS.net]
Setクラスってどういうときに使いますか?

Arrayクラスインスタンスにuniqかけて集合だと考えてたけど違うのではと思ったもので。

264 名前:デフォルトの名無しさん [2017/12/09(土) 23:58:52.32 ID:JRYZIrF0.net]
ここまで自演
----------------------------

265 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 23:59:53.67 ID:/arVeZ+Z.net]
あ、日付が変わるw

266 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 00:00:06.57 ID:ML6lMJWk.net]
変わったーw

267 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 00:02:47.92 ID:nDrrD3Ex.net]
あーあ、これでruby-listかruby-devで発言せず逃げ回ったことが確定しちゃった

268 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 00:17:50.29 ID:MJKB1Uts.net]
ruby-devでリテラルの最適化の話がずっとあるけど、
やっぱ、ArrayもStringみたいになるのかな?

269 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 00:32:18.71 ID:/jbkU8iJ.net]
>>254
uniq だと O(n) かかるので
Set だとハッシュを使っているだろうから O(1) でいけるんじゃないかな

270 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 00:37:16.10 ID:fgyE63pk.net]
>>259
3の型付けなんて最適化や速度upで入れたいって言ってるわけでなぶんそうなるだろ
ruby-listでfrozen_string_literal前提の話とかちょろちょろ見るようになったし

型そのものはあんまり興味ない
希望の書き方とかる



271 名前: []
[ここ壊れてます]

272 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 00:38:47.43 ID:fgyE63pk.net]
タイプミスった、ごめん

>>259
3の型付けなんて最適化や速度upで入れたいって言ってるわけでなぶんそうなるだろ
ruby-listでfrozen_string_literal前提の話とかちょろちょろ見るようになったし

型そのものはあんまり興味ない
希望の書き方とかる? -> 希望の書き方とかある?

273 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 00:50:55.71 ID:MJKB1Uts.net]
あんまりイメージわかないけど、可能なら型をrubyの文法のif文とかメソッドチェーンに組み込みたい

一度、ここでアンケとってruby-listで型の希望の書き方とか立ててみる?

274 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 01:14:35.57 ID:XVX0tsBl.net]
ruby-listに直でアンケとっても良いけど
荒らしもいなくなった様だからやってっみる?

275 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 01:28:00.42 ID:ML6lMJWk.net]
なんか番号とんでるけど、まだあの荒らしいるのかw

276 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 01:40:44.61 ID:ZzgYAKrD.net]
投稿時はruby-listかruby-devのどちら向けの話題なのかワードを入れておく?

x : Integer
は、ありきたりというか仮引数の時ハッシュと間違いやすいだろ
繋げて書けるように
Integer =_ x = nil
みたいなのどうよ

277 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 01:44:56.11 ID:nRE+Ifdg.net]
元々、荒らしは、全部のスレで、いちゃもんを付けてくる。
漏れも、何回も攻撃されてる

単発ID で「間違ったこと書き込むな」とか、荒らしが書き込むと、
すぐに違うID で「そうだよな」みたいに、荒らしに同調するレスが付く。
深夜でもそうだから、荒らしに同調する奴が居るなんて、あり得ない

プログラミングの話は、一切できないくせに、批判ばっかり書いてるのが荒らし

ただ、Ruby, JavaScript のスレでは、
荒らしにかまうから、喜んで居着いてるだけ

荒らしは一切、無視すべし!
仕事をした事もない奴と、話をしても仕方がない

278 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 01:49:21.28 ID:nRE+Ifdg.net]
スレに、ワッチョイが無いから、荒らしが来る

ワッチョイを導入すれば良い。
そうすれば、自演できない

279 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 01:50:52.64 ID:fgyE63pk.net]
自演できる荒らしが喜びそうだから却下

280 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 01:55:18.69 ID:ZzgYAKrD.net]
>>268
おい、スレの進行を妨害するなよ
おまえ荒らしか?



281 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 01:57:14.83 ID:8z/4vDLR.net]
荒らされてると聞いてきたら型の話してる…
しばらく界隈から離れてたら静的型付け実装か

282 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 01:58:55.58 ID:fgyE63pk.net]
=_ ←これ何?
ruby-listで受けんのこれ?
どう見ても無理っぽい

283 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 02:12:19.13 ID:ZzgYAKrD.net]
いや、自分の希望の書き方なんだから人気のある書き方でなくても良いでしょ
それにもしかしたらruby-listで大人気になるかもしれないし

後、さっき思いついたけど
definedtype?( Type )
みたいなのどう?

284 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 02:28:55.59 ID:9Zlb3ltO.net]
なんで型の希望の話になってんの?

すまんが今来て、この1スレからさらっと読んだけど理解できんかった。

とりあず、このスレからruby-listに要望だずにしても
下記まとめなんかあるといいかも(オレがほしいw
・経緯
・メリット
・デメリット
・他の言語の場合、例

OOP言語で簡単なのがrubyの良いところだと思う。

285 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 02:32:48.91 ID:8I95hEEE.net]
簡単ではないだろ
Rubyはとんでもなく複雑な言語で、メジャーな言語の中だとC++の次くらいには複雑なんじゃないの
ちなみにRubyが複雑なのはMatzも認めてるよ

286 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 02:39:29.90 ID:ZzgYAKrD.net]
スレ進行を妨害するなよ荒らし
失せろ

287 名前:デフォルトの名無しさん [2017/12/10(日) 02:57:07.13 ID:UtvIbdgM.net]
荒らしがそろそろ暴るだろうから今のうちにテンプレを張っておく

>粘着する荒らしがスレを何ヶ月も荒らしたため、
>ネガキャン、逸脱した連投、荒らし行為を行う人がいた場合は対策としてruby-listやruby-devへ誘導するようにお願いします
>自演でIDを変えて荒らしを繰り返すため、加勢するIDも含めて誘導するようお願いします
>
>荒らしはruby-listやruby-devを追い出されたため現在、出入り禁止になっています
>そのため過去、誘導されると逃げ回った経過があるので、コミュニティで発言を確認するまで誘導してください

288 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 03:21:46.15 ID:1HHF8E2/.net]
ruby-listだと恥ずかしくて聞きにくいのでこちらで質問します

a = [[1,2,3],nil, 4..10]
a.include?(5) => false
これで、trueにならないのはどうしてですか?

289 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 03:27:29.16 ID:FZ4Yj2IT.net]
>>274
そうだな
RubyはOOPで一番簡単な言語だと思う

>>275
むしろメジャーな言語の中で
一番シンプルだと思う
たとえばJavaScriptの方が複雑

290 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 03:44:33.44 ID:UMP8yhyZ.net]
>>278
a.include?(5) を小さく噛み砕くと以下になる
([1,2,3] == 5) || (nil == 5) || ((4..10) == 10)
これがtrueにならない理由


>>279
お前、まだ居るんか?
とっとろ消えろ



291 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 04:36:57.56 ID:rydPLt/1.net]
荒らしの連投が収まったからか、昨日、一昨日の書き込みに比べてえらく穏やかになったな
マジruby-list様々

292 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 04:56:13.97 ID:fgyE63pk.net]
>>278
Ruby2.4 リファレンスより
include?(val) -> bool
配列が val と == で等しい要素を持つ時に真を返します。

荒らしよけruby-list

293 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 05:52:58.55 ID:nRE+Ifdg.net]
荒らしは、色んなスレに、いちゃもんを付けてる。
JavaScript, Ruby のスレだけではなく、全部のスレを荒らしてる

荒らしは、仕事をした事がないから、反応するものには、何にでも噛みつくだけ

徹底的に、無視した方が良い

294 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 06:18:10.98 ID:rydPLt/1.net]
失せろ
スレの進行の妨害を繰り返す荒らしが

295 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 08:42:40.84 ID:KNXh5gp+.net]
rubyで型を書けるようになったとしても、コメントにアノテーションとして書けるようにするくらいが無難だろうて

296 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 16:46:51.98 ID:IY8S1+HK.net]
荒らしはあぼーんはずして見に来てるくせに、
毎回の見えてないアピールが糞うざい

297 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:04:47.93 ID:4uyVh43l.net]
メソッドの引数、戻り値の型保証を目的としたgems
* contracts
* rubype
他にも色々あるけど触ったことがあるのはこのくらいだな

298 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:37:14.48 ID:0VP/mrFZ.net]
https://github.com/plum-umd/rdl
https://github.com/soutaro/steep

299 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 20:23:20.11 ID:fgyE63pk.net]
古典はクラス=型だけど、
rubyではどうなるんだろ

300 名前:デフォルトの名無しさん [2017/12/10(日) 22:15:37.82 ID:TsNv+js2.net]
型システムに関する最新の教科書であるTAPL本だとクラス=型だけど、
TAPL本を古典と言い切ってしまえる>>289は異次元世界の住人なのかな?



301 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 22:24:25.24 ID:ML6lMJWk.net]
TAPL本を古典なんてどこにも書いてないんだが?

なに一人連想ゲームしてんの?

302 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 23:46:36.31 ID:EJLWoC7C.net]
型チェックってどうして望まれてるの?
Kernel#instans_of? とか Module#=== を使って
TypeErrorを投げればいいんじゃないのと初心者としては思うんだけど、誰か教えて><

303 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 00:11:37.08 ID:toSfFiY3.net]
>ruby-devはrubyの開発者のためだから場所が正しくない
>Ruby初心者の質問と回答はここしかないな

みたいなカン違いししてるのでなければruby-devで聞きなよ

304 名前:デフォルトの名無しさん [2017/12/11(月) 00:22:43.20 ID:zjLRjNAe.net]
結局、荒らしはrubyコミュで発言せず逃げたままか
ruby-listやruby-devでいったい何をしでかしたんだアイツ?

305 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 00:32:30.84 ID:Iio3nuGz.net]
>>1のテンプレ見て思ったんだけど、
各Rubyコミュへの案内も入れた方が良いんじゃないか?
ruby-listとruby-devとruby-core辺りでいいからさ

306 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 00:45:28.12 ID:3l4LlxuK.net]
>>292
大規模プログラミング症候群に患わった人たちがおもに困ってる

それとinstans_of?とかModule#===とかが目立つのはRubyらしくない
引数として与えられたオブジェクトは必要なメソッドがあるものとして記述する方がいい (ダックタイピング

307 名前:)
ifやcaseでやたらとクラス名が出てくるべきじゃない
こういう振り分け処理はrefinmentできれいに分離できるし何より見通しが良くなる

case obj
when nil
  ...
when Integer
  ...
when ...
  ...
else
  raise TypeError
end

これはrefinmentと組み合わせれば

obj.do_it

だけで済むし分岐のための Module#=== が呼ばれなくなるから処理速度も悪くならないはず

特に似たような処理が散乱して困るようならば検討するべき
[]
[ここ壊れてます]

308 名前:デフォルトの名無しさん [2017/12/11(月) 00:54:42.06 ID:zjLRjNAe.net]
ruby-coreは英語だけどいいのか?

309 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 01:33:14.94 ID:4q7JrCp0.net]
switch 文で、型によって分岐していたら、オブジェクト指向ではない。
多くは、設計の間違い

型が増えるたびに、switch 文を修正しないといけなくなる

修正の度に、設定ファイルを書いているデザイナーが、
プログラマーに頼まなければならなくなるから、

プロジェクトの人材配分ができなくなる

310 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 02:02:26.81 ID:b197wXfn.net]
自演うざいな



311 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 03:05:20.05 ID:cnSlApZQ.net]
型はなくていいけど、宣言していない変数は使えないようなオプション欲しい

312 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 03:18:06.40 ID:329kYh7O.net]
ruby-listやruby-devへの案内テンプレどうしますか?

313 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 12:55:19.76 ID:Y2G40Toz.net]
>>301
基地外を誘導するのは迷惑だからやめなさい

314 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 17:28:47.01 ID:Iio3nuGz.net]
自演を繰り返してる奴はruby-listやruby-devを避けてるから問題ない
そもそも入る事が出来ないらしい
それで、どういうテンプレにする?

315 名前:デフォルトの名無しさん [2017/12/12(火) 00:09:35.42 ID:MTvcfECB.net]
ruby-devやruby-core入れるだけで荒らし避けになるとかスゲー
とりあずテンプレ案を出すのは次スレ立てる直前でどうよ?

316 名前:デフォルトの名無しさん mailto:sagge [2017/12/13(水) 02:24:54.64 ID:bN1wPs8n.net]
Methodのsource_locationみたいなソースの定義や構造の解析に役立つメソッドを探しているけど、
Classやモジュール、オブジェクトにはこういったメソッドないよね?

あれば便利だと思うのに

317 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 05:18:23.32 ID:wC6gbn87.net]
>>305
Pryの show-doc と show-source 便利だよ
pry-docも合わせて使えばCで書かれた組み込みクラスやメソッドのソースも表示可能

318 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:05:44.67 ID:RXlgLxSu.net]
Methodのsource_locationは処理に直接挿入できるから便利なのであって、
そこを理解していないだろ

319 名前:デフォルトの名無しさん [2017/12/15(金) 01:34:17.23 ID:XFw1hYkv.net]
Rubyコードのリファクタリングに関したgemってある?
結構前にリファクタリングのrubyエディションを読んでから興味持ったんだけど

320 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 07:40:23.15 ID:qyzTygXP.net]
原理的に困難って上で言われてるでしょ
こればっかりは個人の信条や宗教の問題じゃなく本当に原理的な問題だから諦めろ
Rubyのリファクタリングや型検査に関しては、無理に静的解析するんじゃなくて、
実際にモジュールをロードしてみて実行時のクラス構造を見て処理するような新しい発想が必要だと思うわ



321 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 13:34:32.77 ID:AXI+pgWQ.net]
>>309
>リファクタリング:Rubyエディション、2010
を読むまでは俺もお前と同じ勘違いをしてた
どのような言語でもテクニックとしてリファクタリングが出来るという事が書いてあるから一度読め
特にrubyは、その記述性からリファクタリングテクニックがぴったり合う

322 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 16:34:51.13 ID:YAkY+eE5.net]
>>310
できるかどうかでいえばできるでしょ
正しさを保証できないだけ

323 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 22:04:52.20 ID:AXI+pgWQ.net]
リファクタリングテクニックを適用するだけの事に、

324 名前:ウしさの保障とか難癖つけても無駄
俺も以前は、カン違いしていた口だから偉そうな事は言えないけど
[]
[ここ壊れてます]

325 名前:デフォルトの名無しさん [2017/12/15(金) 23:07:30.00 ID:XFw1hYkv.net]
>>309
Rubyにリファクタリングが合わないならリファクタリングrubyエディションなんて書籍は出版されないのでは?
内容も、何も考えなくても機械的に適用すればリファクタリングが出来てしまうテクニック集の例示だし

それと故意に話しを摩り替えられたけど聞きたかったのはリファクタリング関連のgemの事

326 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 00:12:00.58 ID:8dq3CMaj.net]
Rubyってどこまでできたら初心者卒業って言っていいの?

327 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 01:17:58.42 ID:txM0o0nR.net]
配列とループが理解できたら

328 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 01:25:30.77 ID:plaGBrRo.net]
なんかできるできないの話に持っていって(持って行かれて?)
負けてるやつがいるなw

Rubyでもなんでもリファクタリングはできるよ。
ただ同じリファクタリングをしても時間がかかる言語と
そうでない言語があるって話

329 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 01:59:08.24 ID:SSRXngMG.net]
>>313
こんなにRuby信者が寄ってきてるのに何一つ出てこないことが何よりの答えだろうね
そもそもRubyってツールでコードを弄るのをダサいと考える文化があるのよ
コードを生成するくらいならメタプログラミングで実行時に何とかするべきだし、
ツールで機械的に適用できるような局所的なリファクタリングなら手でやったほうが早い、っていうのがRuby的な思考
静的言語のIDEに付いてるようなインターフェイスの抽出とかメンバのリネームといった広域的なリファクタリングは便利なものだけど、
ああいうのは実際「原理的に困難」なので

330 名前:デフォルトの名無しさん [2017/12/16(土) 05:32:22.64 ID:2bqvN76b.net]
>>316
>>317
ネガキャン失敗して顔真っ赤にしながらレスを書いていると思うと最高



331 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 14:05:47.39 ID:VgVQwchc.net]
有能なRubyistである>>318がパッと作ってgithubのURL貼ればそれで済む話だぞ
Matzもコードで語れっていつも言ってるでしょ

332 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 22:18:04.71 ID:SV1ui7/W.net]
>>319
逃げ回っていないでruby-devかruby-listで発言して来いよ

333 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 23:26:30.07 ID:RIeUS8wT.net]
リファクタリングと言えばrubyでRipper使えばコードを構文木化して扱えるよ
だから処理系自身にrubyコードを書き換えさせる事も出来る
それからgemもparseなんちゃらみたいなのが結構出てくるから割とありきたりなネタ

知ったかで騙ってる荒らしだけが無知を披露中

334 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 23:40:22.84 ID:Ek1/YNvL.net]
文脈がわかるわけじゃないからちょっと無理があるけど

335 名前:デフォルトの名無しさん [2017/12/16(土) 23:47:36.74 ID:2bqvN76b.net]
またまたネガキャン大失敗の巻きか?
プゲラッチョ

336 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 23:58:10.67 ID:VgVQwchc.net]
構文木ってソースコードのDOMでしかないからなあ
>>322も言ってるけどそれでコードの意味がわかるわけじゃない
しかもRubyのASTの場合、静的解析やコード生成ではなく実行することしか考慮されてなくて、
CALLとシンボルだらけで大幅に情報が失われてる
自分でやってみりゃわかるけどかなり扱いづらい代物だよ

337 名前:デフォルトの名無しさん [2017/12/16(土) 23:59:37.87 ID:2deUmEBo.net]
--dump=parsetreeオプションか、--dump=insnsオプションで使わないの?

338 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:12:46.78 ID:cjnEvY5x.net]
>>325
dump=parsetreeの結果から元のソースを復元してみ
無理だから

339 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:23:33.21 ID:ZaumiUQl.net]
使いづらいって言われてもそれは主観でしかないよな?
しかも実質、リファクタリング関連のgemを製作する側がどうのこうのであって、
gem利用者には関係なくない?

そもそも他言語での自己書き換えの扱いはもっと

340 名前:やっかいだぞ? []
[ここ壊れてます]



341 名前:326 mailto:sage [2017/12/17(日) 00:23:43.41 ID:cjnEvY5x.net]
一応補足しとくけど、ruby処理系にそういう機能があるかどうかじゃなくて
dump=parsetreeで出力されたASTから元のソースを復元するツールを作ってみてくれ、という意味だぞ
ちなみにripperでも同じだ
もちろん細かいスペースの差異とかは無視するとしても、不可能なのがわかるよ
リファクタリングや静的解析に使うなら処理系付属のは使い物にならないので専用のASTが絶対に必要だ

342 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:29:01.32 ID:ZaumiUQl.net]
構文木と並行して字句解析つかえば何も問題ないぞ
というか、そういうgemがごろごろあるぞ?

また知ったかしちゃったのかな?

343 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:34:09.11 ID:cjnEvY5x.net]
>>329
意味不明だなあ
字句解析の結果をどうやってASTに紐付けるの?
結局独自に構文解析するんなら、それはつまり「専用のASTが必要」ということになるわけだけど、
自分で言ってること理解してる?

344 名前:デフォルトの名無しさん [2017/12/17(日) 00:40:42.77 ID:X5PuZ6e5.net]
荒らしはrubyでリファクタリング出来る事が物凄く不満らしいけど、親でも殺されたのか?
これでも読んで落ち着け
つリファクタリング:Rubyエディション、2010

345 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:51:54.13 ID:ZaumiUQl.net]
>>330
だからgemがごろごろあるだろ
現実に存在するgemを否定しても現実は変わらんぞ?

そもそも妄想を騙るならruby-devかruby-listで発言しろ
ここはおまえの妄想ノートじゃねよボケ

346 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:52:55.58 ID:Hi83U6qj.net]
リファクタリングはどの言語でもできる
ただやりにくい言語とそうでない言語が有る
Rubyはやりにくい。時間がかかる

347 名前:デフォルトの名無しさん [2017/12/17(日) 00:55:41.57 ID:X5PuZ6e5.net]
>>333
自演ばれてんぞ

348 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:56:47.47 ID:Hi83U6qj.net]
誰と間違ってんだよw

349 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 01:01:05.21 ID:ZaumiUQl.net]
いや、まちがっていない
こいつはいつもの粘着荒らしだ

350 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 01:05:40.92 ID:vwVDXOLh.net]
俺には>>336もプロレスの自演に見えるけどね
批判的意見に毎回バカっぽく突っかかって論破されてる噛ませ役



351 名前:デフォルトの名無しさん [2017/12/17(日) 01:06:56.15 ID:X5PuZ6e5.net]
>>337
も自演か

352 名前:sage [2017/12/17(日) 01:22:18.66 ID:bfi3jyev.net]
リファクタリングって頭空っぽにして代数的に適用すれば安全にコードを変えられるテクニックの事だろ?
なんで時間がかかるとか難しいとか話しが出てるんだ?

353 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 01:48:45.01 ID:ZaumiUQl.net]
リファクタリングが何か知らない奴が混じってて必死でrubyのネガキャンしてるだけ
ruby-devやruby-listだとすぐ嘘がばれるから

もうこの荒らしは排除いいよ

354 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 02:32:17.52 ID:Hi83U6qj.net]
>>339
> 代数的に適用すれば安全にコードを変えられるテクニックの事だろ?
> リファクタリングって頭空っぽにして代数的に適用すれば安全にコードを変えられるテクニックの事だろ?
> なんで時間がかかるとか難しいとか話しが出てるんだ?

代数的に適用するためには、十分な情報が必要だからだよ。

例えば2つの数値の掛け算の答があったとする
その答から、なんとなんの数値の掛け算かを求めるのは大変
答が複数あることもあるからだ
だけどそのうちひとつの数値がわかっていれば、答はすぐに分かる


型にも同じ話が言える。静的型付け言語の場合は、変数に型が定義されているから
そこから代数的に安全にコードを変えられるテクニックが使える

だけど型がわからなければ、そこから代数的に安全にコードを変えられるテクニックが使えない。
だから時間がかかる。一部の人はそのことを”できない"と表現しているがj。
それは違う。いくつもの可能性を検討して、これだ!と安心できるまで時間がかかるのだ。

355 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 02:47:32.03 ID:BeMxy3i4.net]
また自演の長文か

そんなに主張したい事があるなら初心者スレじゃなくruby-devかruby-listで言え
わざわざ初心者スレで嘘をばらまく必要は無いだろう

356 名前:デフォルトの名無しさん [2017/12/17(日) 03:00:08.85 ID:X5PuZ6e5.net]
リファクタリングにちなんで、
みんなはコードに自己書き換えの処理させる時って何を使ってる?

357 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 03:28:07.16 ID:BeMxy3i4.net]
初心者スレでイキってる荒らしはこういう質問が来ると急に大人しくなるんだよな

俺は普通にdefine_methodを使うぐらいしかしていない

358 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 03:36:34.62 ID:Hi83U6qj.net]
急におとなしくなるって、いま夜中の3時半やで?

359 名前:デフォルトの名無しさん [2017/12/17(日) 03:47:09.35 ID:X5PuZ6e5.net]
質問に答えられないのはわかった

360 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 03:48:56.09 ID:Hi83U6qj.net]
自演かな?

>>344が答えてるのに、質問に応えられる人がいないなんて



361 名前:デフォルトの名無しさん [2017/12/17(日) 03:54:31.53 ID:X5PuZ6e5.net]
>>347
お前に言ってるんだが

362 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 03:58:35.63 ID:Hi83U6qj.net]
え? その前に俺の>>342のレスに答えてよ
おとなしくなるって、俺のレスに答えられなくなるって
話だと思ったよ

363 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 04:02:09.36 ID:vi6El7FV.net]
ソースを直で修正し再ロードして実行までをrubyコード内で記述できるわけだから、
言ってしまえばなんだって出来る

gemでparse2rubyとか色々あるし

364 名前:デフォルトの名無しさん [2017/12/17(日) 04:18:39.08 ID:X5PuZ6e5.net]
>>349
ID:Hi83U6qj「俺はID:BeMxy3i4だ」と言われても、
スレを妨害してるのはお前しかいないんだが

365 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 04:48:50.54 ID:PRNmBS9S.net]
>>349
いつまで逃げ回る気だ荒らし
本人確認するかruby-devかruby-listで早く発言しろ

>>351
Ripper.sexp_rawで良い具合にメソッドを書き換えて使ってる

366 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 08:13:32.84 ID:6NwF6CYy.net]
「ruby-devかruby-listで発言しろ」って言いまくってる奴は単発IDでの自演常習犯だから絡まないでスルーしましょう
>>252でも説明したけど自治の振りをした粘着荒らしです

367 名前:デフォルトの名無しさん [2017/12/17(日) 09:16:34.42 ID:X5PuZ6e5.net]
自演を繰り返す荒らしがスレ住民全員を荒らし認定か
ruby-devかruby-listで発言するのがそれほど怖いのかな?

368 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:53:12.66 ID:Hi83U6qj.net]
妨害って何? Rubyの話ししてるでしょ
>>341へのレスしてくれるのを待ってるんだが?

369 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:54:17.21 ID:Hi83U6qj.net]
>>351
それ間違えたw 本当は>>341と書くつもりだった

透明あぼ〜んされてて見えなかったから
ずれてしまったのかな?

370 名前:デフォルトの名無しさん [2017/12/17(日) 12:02:37.42 ID:X5PuZ6e5.net]
スレッドの進行を妨害して荒らすな



371 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:07:26.56 ID:7FFT55NR.net]
ちょいと質問です。
Cだと"__"から始まったり、"_"+大文字となったりする識別子は予約扱いだと明文化されてるけど、Rubyはどうなのかちょっと気になってます。
組み込みで__FILE__ __LINE__ __method__とかが定義されているのは知ってます。

gemライブラリの中で2つのアンダースコート"__"から始まり、同じく"__"で終わるメソッド名を定義しようかと考えてるけど、問題ないかなと思って。

372 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:28:17.09 ID:Hi83U6qj.net]
@で始まる変数はインスタンス変数
@@で始まればクラス変数
$で始まれば組み込み変数
大文字で始まれば定数
selfもnilもtrueもfalseも変数

373 名前:デフォルトの名無しさん [2017/12/17(日) 13:31:03.53 ID:X5PuZ6e5.net]
リファレンスで擬似変数の所を見てかぶりそうなのをさければ問題ない
かぶっても見分けられるなら問題ない

374 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:36:18.37 ID:CQTxJs7f.net]
Ripper.sexpつかえばソースの自己書き換えできるだろ

誰だよ出来合ないって言ったのは

375 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:41:01.76 ID:Hi83U6qj.net]
誰も言ってないよ?w

376 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 14:16:42.77 ID:CQTxJs7f.net]
require "ripper"
require "pp"
pp Ripper.sexp("class Foo p self end")
#[:program,
# [[:class,
# [:const_ref, [:@const, "Foo", [1, 6]]],
# nil,
# [:bodystmt,
# [[:command,
# [:@ident, "p", [1, 10]],
# [:args_add_block, [[:var_ref, [:@kw, "self", [1, 12]]]], false]]],
# nil,
# nil,
# nil]]]]
これでリファクタリングが難しいとか時間がかかるとか言ってた奴もいたな

377 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 14:21:37.40 ID:Hi83U6qj.net]
>>363
読む時間も含めれば、時間かかるんじゃないの?

378 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 14:32:48.20 ID:CQTxJs7f.net]
どんだけ遅いCPU積んでるの?

379 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 14:42:49.46 ID:Hi83U6qj.net]
>>365
何を言ってるの?

リファクタリングっていうのは人が
どうすべきかを考えるんだよ

今何が問題で、どうすべきかを考えるためには
ソースコードを読んで理解しなければならない。

その理解するまでの時間の話なんだけど

で、そのコードをどうしたいのか俺には分からん
まずそこからだよね。君が説明するべきことは

380 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 15:09:58.55 ID:CQTxJs7f.net]
メソッド抽出、インライン化、メソッドシグニチャの変更と、
IDEにある主なリファクタリング機能なんだが
これをrubyには出来ないと言ってた奴が居るらしい



381 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 15:28:24.67 ID:7FFT55NR.net]
>>360
ありがとう。
かぶったらその時ってことで突き進みます。

382 名前:デフォルトの名無しさん [2017/12/17(日) 15:45:11.24 ID:X5PuZ6e5.net]
Kernelモジュールに__で始まるメソッドがあるからそれにも気をつけろ
わからないことがあったら一度自分でリファレンスを検索して細部までしっかり見ろ

383 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 15:51:07.46 ID:F+iLZcQ1.net]
>>367
メソッド抽出はできるけどインライン化やシグニチャの変更は安全には行えないよ
実際にどのメソッドが呼ばれるかは実行してみるまで分かんないし、メタプログラミングでメソッドが存在しない場合すら珍しくない

384 名前:デフォルトの名無しさん [2017/12/17(日) 16:13:40.93 ID:X5PuZ6e5.net]
シグニチャの変更は、Ripper.sexpからの配列をまわして旧シグニチャを指定のに書き換えてソースに戻せば良いように見える
そもそもrubymineで出来る
インライン化なんて普通に:assign部分を使われてるところで展開すればいいだけだからシグニチャの変更より楽そう
逆に変数の切り出しも出来るだろこれ

ちょっとコードを書いてみるか

385 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 16:34:07.16 ID:DhuU3UWX.net]
ElectronみたいにWebベースでGUIを作ってRubyで動的処理を行うフレームワークとかないんかな
ActiveScriptRubyは近いけどWin/IE限定の上にRScriptをインストールする必要があるのがイマイチ
インストール不要で軽量・軽快なのが欲しい

386 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 17:06:02.35 ID:F+iLZcQ1.net]
>>371
名前が一致すれば同じメソッドと見做すの?
とんでもないコードクラッシャーになるな

387 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 19:08:51.91 ID:Hi83U6qj.net]
結局Rubyでは候補を出すところまでしかできないんだよね
代数的に適用することができない

その変更が正しいかどうかをコード全体を読んで
考えないといけないから、時間がかかってしまう

388 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 19:09:35.99 ID:Hi83U6qj.net]
>>367
> メソッド抽出、インライン化、メソッドシグニチャの変更と、
> IDEにある主なリファクタリング機能なんだが

少ないね

389 名前:デフォルトの名無しさん [2017/12/17(日) 22:52:07.76 ID:X5PuZ6e5.net]
荒らすな

390 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 02:29:22.24 ID:YRbzAMDV.net]
ID:Hi83U6qjのレスは矛盾だらけだな
最近の荒らしはこんなに程度が低いの?



391 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 06:38:14.70 ID:SUjpjhtq.net]
じゃあその矛盾がどれかを指摘しましょう

392 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 06:48:05.27 ID:D7KhQLFT.net]
アンチが出たならアンチスレへ誘導をしろ
そのためのアンチスレなんだから

>>378
Rubyについて(アンチ専用) Part004
https://mevius.5ch.net/test/read.cgi/tech/1249737531/
ほら、アンチスレがあるんだからもう来るなよ
そこなら好きなだけネガキャンしても嘘ついても誰も文句を言わないから

393 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 07:53:27.68 ID:SUjpjhtq.net]
矛盾の指摘まだ?

394 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 07:53:50.72 ID:SUjpjhtq.net]
喧嘩ふっかけといてアンチスレに逃げるわけないよね?w

395 名前:デフォルトの名無しさん [2017/12/18(月) 08:25:44.94 ID:9Kb0ajxH.net]
2ch学習法(今なら5chか)って言われてたやつが通じると思ってるんだろうけどな。

396 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 12:55:26.65 ID:L2o9nXM3.net]
初心者スレはスレ消費激しいけどアンチスレはぜんぜん流行ってないな
アンチ死んでる?

397 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 14:28:08.01 ID:jKkrC/n/.net]
pythonが流行ってるからなあ。本もpythonばっかり

398 名前:デフォルトの名無しさん [2017/12/18(月) 15:10:45.19 ID:aXpCltYZ.net]
アンチは寂しくて初心者スレに来ちゃうわけか

399 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 15:26:16.95 ID:XEro/kye.net]
>>371を参考にしたらリファクタリング機能を組めた
ソース読み込んでS式書き換えてソースに書き戻すって処理だけど俺でも簡単に出来るんだな

400 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 15:56:52.19 ID:e/V/7Ip9.net]
selfがどこのどいつなのかが問題なんだがな



401 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 16:10:14.00 ID:zBhLgaSa.net]
こっちでは問題にすらなってない
俺ですら出来るレベルだけど、それでも無理ならVMにバイトコード見せてもらったら?

402 名前:デフォルトの名無しさん [2017/12/18(月) 16:25:37.10 ID:4mfkLjZ7.net]
>>387
そんな事も分からないお前が無能なだけ
もう来なくていいぞ

403 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 16:30:56.90 ID:zBhLgaSa.net]
[:var_ref, [:@kw, "self", [2, 0]]]みたいなノードがありそれを上にたどって行くとselfが何か判る
S式は慣れれば読めるし、処理も楽

404 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 17:48:23.09 ID:e/V/7Ip9.net]
入れ替えることができちゃうから実際には単純にはいかないってことを言いたかっただけ

405 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:23:52.48 ID:SUjpjhtq.net]
>>390
問題は、それが分かってもリファクタリングできないってことなんだよね

406 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:26:15.43 ID:SUjpjhtq.net]
いや、
リファクタリング前のソースコード からS式を作って

そのS式から「リファクタリングされたソースコードを生成して見せる」って
言うのならどうぞwどうぞw って話だけど

可能不可能の話なら可能。だけど大変すぎなのでやらない
それを「リファクタリングできない」っていう表現で>>392は書いた

407 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:30:35.88 ID:ksjf7Uk6.net]
>>393
いや正確に再現するのは不可能だよ
1+1とかダンプしてみ

408 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:33:39.72 ID:SUjpjhtq.net]
>>394
俺もS式から(可読性が高い)リファクタリングされた
ソースコードを作り出すのは不可能だと思ってるよw
だからダンプするまでもない

何が言いたいのかって言うと、リファクタリングの話題で
S式、S式、って何が言いたいんだこいつ?ってこと
S式はリファクタリングと何の関係もありません

409 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:35:19.46 ID:SUjpjhtq.net]
S式から可読性が悪い変なソースコードに変換することはできるだろうが
そりゃリファクタリングと真逆な行為だしな

410 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:53:35.09 ID:ZBmMrMTz.net]
そうそう
ripperのASTはコード生成には不向きであると言ってるだけで、別にRubyを否定しているわけじゃないのに何を必死に喚いてるんだろうね
コード生成に関しては、単に「文法上の同値の解釈」を一切入れない、より低レベルなパーサを作って正確なASTを得らればいいだけのことだ
動的型だって静的型にはない良さが沢山あるのに、アンチ連呼君はそこを無視して「静的型にできることは全てRubyにもできる」という無茶な主張を続けている
そうやって本質を理解しないまま無理筋で反論するから馬鹿にされるんだといいかげん気付け



411 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 23:16:47.78 ID:LVUvAKSO.net]
初心者だからRubyとPythonの違いがわからんのだけど、どう違うんだ?
Rubyがもっと流行ってもいいと思うんだけど

412 名前:デフォルトの名無しさん [2017/12/18(月) 23:28:55.91 ID:tRPcthrg.net]
おいアンチ、
初心者騙してないでいい加減アンチスレに帰れよ
おまえがリファクタリングできないのは判ったから

413 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:03:52.94 ID:iE/A7V+0.net]
自分でうまくソースコードに書き戻す処理が書けないのをRubyの所為にしてはダメだろう

どうしてもやりたい場合はRipper2rubyってgemを使え

414 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:16:12.52 ID:si5W7uAD.net]
可能不可能の話に持っていくから(わざとやってる?)
話がややこしくなるんだよ

構文解析は、静的でも動的でもできる。
その時、どれだけの情報を得られるかっていうのは
型情報を書いてある静的のほうが多いのは明白
(動的のメリットは書かなくて良いことなんだから、動的の方が多くなることはない)

静的のほうがより多くの情報を得られる。
それがリファクタリングをする上での情報の多さにつながり、
リファクタリングを自動化する上での情報にもつながる。

静的のほうが予め書いておく情報が多い分、静的解析でわかることが多い。
動的だとわからない情報は、人がコードを見て推測するしかない
人の作業は遅い、リファクタリングの速度につながってくる

リファクタリングが可能か不可能かの話じゃない
作業する時の速度の話

415 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:19:53.94 ID:iE/A7V+0.net]
素直にgemのripper2rubyを使え
おまえには無理だから

416 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:21:21.03 ID:si5W7uAD.net]
もちろんripper2rubyはリファクタリングをするためのgemではない

417 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:24:43.81 ID:cabpZd/N.net]
rubymineを使ってないの?
リファクタリングは簡単だよ

418 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:32:24.61 ID:si5W7uAD.net]
俺が言っても信用しないのだろうから、

washiiku.hatenablog.com/entry/2014/12/19/054914

> 上に書いたように変数の型をエディタが察してくれるので、
> 対応するメソッドなどにジャンプしたり、逆に使用されている
> 箇所も一覧で表示できます(ただし静的言語ほど正確ではない)

> JetBrains系ではお馴染みですがリファクタリングが便利です。
> スコープ内の変数名の変更が定番ですが、クラス名などグローバルな
> 名前は型情報からプロジェクト全体のリファクタリングをしてくれます。
> (上述したとおり静的言語ほど正確ではないので、大規模な変更は実用的ではない)


この正確でないというのが問題で、結局人が判断する部分が多くなる。
大規模な変更は実用的ではないのは何故かと言うと
大規模=変更箇所が多い=人が判断する場所が多いので
正しいこと判断するのが大変

419 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:33:30.38 ID:si5W7uAD.net]
https://twitter.com/nagise/status/890031111828414464

RubyMineもかなり頑張ってくれるんですが、それでも原理的に限界があるので、
使った場合、漏れがあったり、あるいは過剰に変換してないか確認が必要だったりしますね(自分の経験上)。

420 名前:デフォルトの名無しさん [2017/12/19(火) 00:35:31.16 ID:OxL2RNB7.net]
>>406
Rubyについて(アンチ専用) Part004
https://mevius.5ch.net/test/read.cgi/tech/1249737531/
おまえのスレに帰れ
二度と初心者を騙そうとするな



421 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:41:45.22 ID:cabpZd/N.net]
出来る出来ないの話じゃないって自分で言い出してからまだ30分も経ってないのに、
出来る出来ないの話に戻したな
これでは誰もアンチを信じてくれないわ

422 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:46:31.62 ID:si5W7uAD.net]
動的言語がなぜリファクタリングに弱いかというと
いつクラスの定義が定まるかを考えてみればわかる

まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される

この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない

ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない

つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる

423 名前:デフォルトの名無しさん [2017/12/19(火) 00:47:31.81 ID:OxL2RNB7.net]
>>409
長文はいいから自分のスレへ帰れ
ここはおまえの日記帳じゃない

424 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:48:21.71 ID:si5W7uAD.net]
>>408
> 出来る出来ないの話に戻したな
いつ俺が出来る出来ないの話に戻した?

実際にRubyMineを使っている人が、
出来ないって言ってるって話?

425 名前:デフォルトの名無しさん [2017/12/19(火) 00:49:30.71 ID:OxL2RNB7.net]
>>411
アンチが初心者スレで暴れるなら

426 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:49:36.49 ID:si5W7uAD.net]
>>410
> ここはおまえの日記帳じゃない

そりゃ俺の日記帳じゃないよw
みんなの日記帳だよ

便所の落書きなんていい方もされているが
俺はその言い方は好きではない

427 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:51:32.45 ID:cabpZd/N.net]
https://mevius.5ch.net/test/read.cgi/tech/1249737531/
アンチはアンチ専用スレでやれ

428 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:57:25.70 ID:UYOJvaLF.net]
単発IDで自演しまくる自治厨騙りの荒らしには構うな
スルーしろ

429 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:58:50.33 ID:cabpZd/N.net]
自演がばれてんぞ

430 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:59:26.95 ID:si5W7uAD.net]
単発IDお前やんw



431 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:01:02.38 ID:cabpZd/N.net]
アンチスレで好きなだけやれ
ここはお前のようなアンチのためのスレではない

432 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:02:55.81 ID:7WjlvYND.net]
そろそろうざいからアンチはアンチスレへ帰れ

433 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:03:46.23 ID:si5W7uAD.net]
単発ID、自演ばれてるで?w

434 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:05:19.68 ID:cabpZd/N.net]
見えない敵と闘っていないでアンチスレへ帰れ
そこなら好きなだけ自演しても誰も文句を言わないから

435 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:06:10.31 ID:si5W7uAD.net]
はっきり言わないと理解できないのかな?
俺はアンチスレには行きません
何度言われてもね

436 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:09:10.98 ID:cabpZd/N.net]
アンチやりたいならアンチスレへ行け
ここは初心者のためのスレだ

初心者を騙すためのスレではない

437 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:10:01.09 ID:si5W7uAD.net]
神様「お前の願いは叶えられることはなかった」

438 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:11:14.38 ID:7WjlvYND.net]
そもそもなんでアンチは発狂してんの?
顔真っ赤にしてないで落ち着けよ

439 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:12:07.22 ID:si5W7uAD.net]
発狂はしてないよw
面白いから書き込んでる

440 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:12:28.45 ID:cabpZd/N.net]
そんなに初心者スレで荒らし行為やアンチをやりたいのか?



441 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:14:15.45 ID:si5W7uAD.net]
荒らしてないよ?
Rubyでリファクタリングは静的言語よりも
大変だって話をしてる

442 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:15:12.45 ID:cabpZd/N.net]
初心者スレじゃないと話せないことなのか?
アンチスレでは話せないのか?

443 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:17:14.70 ID:si5W7uAD.net]
初心者スレ以外でも話せるよ
ただしアンチじゃないからね。Rubyの特徴を言っているだけ
アンチスレ以外のRubyスレどこででも話をする

444 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:19:57.23 ID:cabpZd/N.net]
お前のやってきたことはアンチ以外の何者でもないんだが

これからも、同じ事を続けていく気か?

445 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:22:18.20 ID:si5W7uAD.net]
はい

446 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:23:17.40 ID:cabpZd/N.net]
つまり、他の人にアンチ行為と受止められていると判ってて、
故意に続けるわけだな?
やめる気は無いのか?

447 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:23:40.17 ID:si5W7uAD.net]
ない

448 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:25:41.82 ID:cabpZd/N.net]
他の人に故意に不快を与える行為を続けるという事だね
板やレスの利用等を理解しているか?

449 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:27:13.66 ID:si5W7uAD.net]
うん

450 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:29:43.14 ID:cabpZd/N.net]
つまり、わかった上でやっているという事だね

それと、いまさらだがruby初心者?



451 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:30:38.45 ID:si5W7uAD.net]
ウイ

452 名前:デフォルトの名無しさん [2017/12/19(火) 01:32:59.85 ID:cabpZd/N.net]
つまりRuby初心者だから間違ったことを言っていたという事だね

それはつまり、これからも間違った事を言い続けるって事かな?

453 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:33:45.75 ID:si5W7uAD.net]
ノー

454 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:36:06.55 ID:cabpZd/N.net]
その返答は、今後は反省して間違ったことを言わない、って事を意味しているのかな?

455 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:39:05.84 ID:si5W7uAD.net]
           __
        , ‐' ´   ``‐、             / ̄:三}
.     /,. -─‐- 、.   ヽ        /   ,.=j
 _,.:_'______ヽ、 .!       ./   _,ノ
  `‐、{ へ  '゙⌒ `!~ヽ. !     /{.  /
    `! し゚  ( ゚j `v‐冫   , '::::::::ヽ、/     そんなことより野球しようぜ!
.    {.l   '⌒      ゙ 6',!   / :::::::::::::::/ __
.     〈  < ´ ̄,フ  .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
.      ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠.   ヽ_}  ゙ヽ
        ,.r` "´  /:::::::::::::::::::ィ´  `ゝ  !、  /
     /       / :::::::::::::::: ; '´   /´\ /   r'\
.     i      ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
     {      {:::::::::::;:イ /   ‖i:::::::/:::::::::::::/  \
.      ヽ       ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /

456 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:41:22.11 ID:cabpZd/N.net]
君は、いままでアンチを繰り返し多くの人を故意に不快にさせてきたわけだが、
今後も続けるのかい?

457 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:42:11.51 ID:si5W7uAD.net]
飽きた、>>409まで内容巻き戻すわ

動的言語がなぜリファクタリングに弱いかというと
いつクラスの定義が定まるかを考えてみればわかる

まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される

この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない

ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない

つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる

458 名前:デフォルトの名無しさん [2017/12/19(火) 01:43:46.18 ID:cabpZd/N.net]
ではもう一度聞こう
今後は反省して間違ったことを言わない、という意思はあるのかな?

459 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:45:58.37 ID:si5W7uAD.net]
じゃまなので透明あぼーんした

460 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:50:12.56 ID:7ZIeceXv.net]
そんなことよりJOI2017/2018の話しようぜ



461 名前:デフォルトの名無しさん [2017/12/19(火) 01:54:22.14 ID:RoMU0mit.net]
アンチスレに帰れよアンチ

462 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 02:06:16.03 ID:cabpZd/N.net]
Rubyについて知らない事を知ったふりして話してたわけか
道理で

463 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 03:08:47.58 ID:GcPOv6XA.net]
Ripper.sexp_rawからRipper.sexpに戻すと:stmts_add等が削られて微妙にやりにくい
全部rawの方でいい気がするがRipper.sexpってどういう時に使うんだ?

464 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 04:03:20.54 ID:UdKVtF6e.net]
あれてんなw
型の次は、リファクタリングかよ

初心者の内容か?

俺の場合GoFなんかで書き直したい病が持病です。
んでrspec漏れてしょうもないバグおこす。
ほどほどに持病と付き合おうw

465 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 04:45:08.67 ID:cabpZd/N.net]
>>450
pで見る用に使ってる
Ripper.sexp_rawはppで見ても長いから

466 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 05:28:28.56 ID:GcPOv6XA.net]
やっぱり表示用なんだ

それから出力された配列の操作なんだけど、
配列の中ごろ特定の要素を基に「上の配列に○○が在りかつ後ろの要素に△△があったら××」、
みたいな同定の仕方をしてるんだけど問題ある?

467 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 06:21:37.16 ID:a07C5OyP.net]
配列の操作ってそんなもんだろ

468 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 07:00:22.12 ID:ykexPK2V.net]
リファクタリングで香ばしい展開になっててわろた

オレがおっさんになったのが、たまたま住人がアホなのか、2ch民全体のレベルが下がったのか

469 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 07:28:41.13 ID:ZuB1zFT8.net]
>>455
自治厨の振りした基地外が一人で自演しまくって荒らしてるだけだから無視な
荒らしの狼藉は>>252参照

470 名前:デフォルトの名無しさん [2017/12/19(火) 07:38:28.19 ID:yvsoeKM9.net]
>>455
Rubyはとっつきやすい分、ニワカとか、簡単だと思って挫折した勘違い君も多いからな。



471 名前:> リファクタリングにしても、用語の定義とか目的知らずに書いてるなあ、ってのばかり。
きちんと理解しようと思ったら、ガウディ本(CTMCP)で計算モデルを理解するのがお勧め。
あと「リファクタリング:Rubyエディション」とかで、以下を把握できる。
・リファクタリングはプログラム改善に使われることが多い。
・数多ある改善基準のうち、リファクタリングは何を対象にしているのか?
・改善手法は、計算モデルと、改善の目的により様々。
[]
[ここ壊れてます]

472 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 10:23:42.83 ID:si5W7uAD.net]
>>457
なんかリファクタリングを理解してないようにみえる。

リファクタリングと計算モデルがどうつながるのか説明してみ
その後、あんたの意見と同等の話をしているサイトを言ってみ

リファクタリングと計算モデルは
ほとんどつながりがないことがわかるからさ

473 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 12:22:26.77 ID:B3Kk66cH.net]
結局、荒らしはアンチスレに帰らんかったのか
そりゃアンチスレも落ちぶれるわ

474 名前:デフォルトの名無しさん [2017/12/19(火) 22:13:01.86 ID:5rvtlxA7.net]
>>428
>Rubyでリファクタリングは静的言語よりも
>大変だって話をしてる

いいや、している話は:
  「動的型付け言語は静的型付け言語よりも大変だ」
だよ
その主張は(個人的には)認めるけど、それだけでRubyスレに
粘着するのは荒らし行為そのものではないかな?
  hissi.org/read.php/tech/20171219/c2k1Vzd1QUQ.html

それだけ「動的型付け言語におけるリファクタリング」に関心があるなら、
>>107 で紹介した専用スレへ移動すべきだよ

475 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 00:18:03.50 ID:n7Ixbq8J.net]
>>460
俺はそんなことは言ってないので他人の意見だね
Rubyが大変なのはソースコードを読むときだよ。書くときは比較的楽。
楽の意味がわからないなら、タイプ数が少ないと言い換えても良い

Rubyは書くときは楽で、読むときは大変
静的型付け言語はその逆

理由はまんまだが型という情報が書いてあるから。
情報を多く書かなければいけない静的型付け言語は大変で
でも情報が多く有るから静的型付け言語はわかりやすい

ただし前提として複数のモジュール(クラス等)から成り立ってる場合と
言ったほうが良いかもな。ローカル変数なんかは型が書いて無くても
すぐ近くにコードがあって該当の関数しか見なくていいから型がなくても大丈夫

一番の問題は複数モジュールから成り立っていて、特に別ファイルに分かれている場合
こういうのはドキュメントとして型情報を書いておかないと、わけわからなくなる
だけどドキュメントとして型情報書くなら、タイプ数は静的型付け言語より多くなってしまうので本末転倒


Rubyは書くときは楽(ドキュメントを書かないという前提)で、読むときは大変
ドキュメントを書くなら、それはソースコードに一元化した方がいいよって話になる

476 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 00:50:26.05 ID:gjXzJsOL.net]
中身スカスカの長文なんてよく書き込めるな
頭の中もスカスカしてそう

477 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 00:55:47.63 ID:4hmeAMNm.net]
>>462
そのレスは何が言いたいのだ?
そのレスの中身を教えてくれw

478 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 02:10:20.76 ID:wlycKVFQ.net]
rubyの可読性のよさには感動する

DSLとかすごい

たまーにendだらけになるのは難点w

479 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 02:23:39.76 ID:Jv20jxkb.net]
動的にリファクタリングさせるコード書いてるけど、
書けないやつはrubymine使えば良くね?

480 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 02:51:18.20 ID:s+zCj7ov.net]
配列の操作そのものが難しいと勘違いしてるんじゃないか?
配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ
class Array
def acces(ary = [])
return self if ary.empty?
colect_int = ary.dup
result = self[colect_int.shift]
return colect_int.empty? ? result : result.acces(colect_int)
end
end



481 名前:デフォルトの名無しさん [2017/12/20(水) 05:23:54.83 ID:Jv20jxkb.net]
配列が苦手とか言われても
パーサから順にイベントを渡されて処理するより明らかに難易度低いだろ

482 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 06:54:28.40 ID:6Esz8d8C.net]
今のところ、リファクタリングについて誰ひとり説明できてないぞ?
もっとシンプルに表現できるだろw

483 名前:デフォルトの名無しさん [2017/12/20(水) 08:05:26.87 ID:DZ3d9p1Y.net]
>>468
というお前さんも説明出来ない訳だが。

484 名前:デフォルトの名無しさん [2017/12/20(水) 08:07:18.11 ID:DZ3d9p1Y.net]
>>458
数十レスも書いといて「リファクタリングとはこういうものだ」とすら書けない奴が何か言ってる。

485 名前:デフォルトの名無しさん [2017/12/20(水) 08:45:35.24 ID:Za3FAu+s.net]
おい無職
自演はやめとけ

486 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 14:31:38.22 ID:Za3FAu+s.net]
毎朝7時8時から書き込める荒らしは何の仕事してるんや?

487 名前:デフォルトの名無しさん [2017/12/20(水) 18:57:50.54 ID:2lbW5JOk.net]
RubyVM::InstructionSequence.compile("class Hoge end").eval
のコードを実行したら直後に
p Hoge.new
って問題無く書けるのか
コンテクストが別々だと勘違いしてた

488 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:34:07.59 ID:4hmeAMNm.net]
>>470
リファクタリングを理解してませんと認めたってことでOKだね

489 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:35:24.96 ID:4hmeAMNm.net]
>>472
俺は出勤が9時だからだよw
会社まで30分

490 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:48:45.50 ID:4hmeAMNm.net]
>>466
> 配列の操作そのものが難しいと勘違いしてるんじゃないか?
> 配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ

書けてないだろ?
それ何の処理するコードだよ

[1,2,3].acces([])
=> [1, 2, 3]

[1,2,3].acces([1])
=> 2

[1,2,3].acces([1,2])
NoMethodError: undefined method `acces' for 2:Integer
from (irb):6:in `acces'
from (irb):29
from C:/Ruby24-x64/bin/irb.cmd:19:in `<main>'

お前がそれじゃ、配列は難しいという結論にしかならんぞ



491 名前:デフォルトの名無しさん mailto:sage [2017/12/ ]
[ここ壊れてます]

492 名前:20(水) 22:56:44.83 ID:4hmeAMNm.net mailto: >>468
> 今のところ、リファクタリングについて誰ひとり説明できてないぞ?
> もっとシンプルに表現できるだろw

ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が簡単になるように、内部構造を改善すること


補足を追加するならば、
振る舞いを保てていればいいので、アルゴリズムを変えてもOK
というか、無駄があったりしてわかりにくいアルゴリズムを
理解や修正が簡単になるように書き換えることもリファクタリングの一つ

何が言いたいかというと、リファクタリングはパースした結果が
一致するように書き換えることではないということ
パースできたからといって、リファクタリングができたことにはならない
[]
[ここ壊れてます]

493 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:30:14.73 ID:nhQOfr/3.net]
2.5まで後5日

494 名前:デフォルトの名無しさん [2017/12/21(木) 01:18:36.01 ID:l5/5gdQz.net]
>>477
アンチスレへ帰れ
おまえが働いていないのはわかったから

495 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 01:42:59.97 ID:prpojwIY.net]
>>479
いい加減学習しよう

422 自分:デフォルトの名無しさん[sage] 投稿日:2017/12/19(火) 01:06:10.31 ID:si5W7uAD [10/23]
はっきり言わないと理解できないのかな?
俺はアンチスレには行きません
何度言われてもね

496 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 02:12:25.62 ID:IcTBGDe8.net]
自演ばれてんぞ

497 名前:デフォルトの名無しさん [2017/12/21(木) 02:49:55.63 ID:l5/5gdQz.net]
>>480
初心者を騙していないではやくアンチスレへ帰れ
デマばかり垂れ流しやがって

498 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 03:03:06.96 ID:h5j2wgPh.net]
例えば、構造やサイズが変わる多次元配列の要素を辿って行く必要がある場合、
添え字だけ集めて一括指定で辿れる様にするのって普通?

499 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 11:43:09.31 ID:XGDp/jet.net]
>>477
はい。正解

500 名前:デフォルトの名無しさん [2017/12/21(木) 12:10:12.13 ID:ow9tew52.net]
>>477
>ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が簡単になるように、内部構造を改善すること

オブジェクト指向知らないやつがググってコピペか・・・つまらん。



501 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 13:37:15.11 ID:K/addjJ3.net]
>>483
def pickup(a,b,c,d)
a[b][c][d]
end
みたいな?
あ、これじゃ次元数が固定だからダメなのか

502 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 14:41:34.48 ID:nqxJQXq0.net]
Array#dig

503 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:29:48.77 ID:ztrEyuDD.net]
文字列に対して
・0〜9の一桁の数であれば頭に0を付け足す(例:00,01
・10以降はそのまま
という処理を行いたいんですが、正規表現でスパッとかけたりするんでしょうか
イメージとしては
text = "9"なら09
text = "10"なら10
として出力(print)がしたいです
gsubで置換できないか試しているのですがうまいこといかず・・・
アドバイス頂けますと幸いです

504 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:34:23.75 ID:2OtOKx8R.net]
正規表現よりも sprintfフォーマットを使おう
puts "%02d, %02d,%02d,%02d" % [1,5,10, 100]
#=> 01, 05,10,100

505 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:34:49.31 ID:ZdPTZj/x.net]
sprintf "%02d" % 9
sprintf "%02d" % 10

506 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:51:00.27 ID:2OtOKx8R.net]
ちなみにあえてgsubでやるなら
'1'.gsub(/^(?=\d$)/, '0') #=> "01"
'42'.gsub(/^(?=\d$)/, '0') #=> "42"

507 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:51:08.76 ID:8yE94KQ4.net]
%w(0 1 5 9 11 99 108 1024 16384).each do |x|
  p x.sub(/^([0-9])$/) { "0#$1" } # キャプチャを使った例
  # p x.sub(/^(?=[0-9]$)/) { "0" } # 先読みを使った例
  # p "%02d" % x.to_i # 整数値に変換して書式文字列を使った例
end

"00"
"01"
"05"
"09"
"11"
"99"
"108"
"1024"
"16384"

508 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:24:42.40 ID:gRGJJy1x.net]
ありがとうございます!sprintf、こういう風に使えるのですか。便利ですね・・・
正規表現での場合も教えていただきありがとうございました
勉強になりましたm(_ _)m

509 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:26:00.72 ID:gRGJJy1x.net]
>>493
すみません、ID変わってますが>>488です

510 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:32:53.88 ID:aIK1VRoC.net]
正規表現は後で泣くからなるべく使わないほうがいい。
もし使うのなら
複雑のは避けて
シンプル+シンプルと組み合わせて使うといい。



511 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:20:34.35 ID:prpojwIY.net]
おい >>466
配列操作簡単なんだろう?
バグ修正はまだか?

512 名前:デフォルトの名無しさん [2017/12/21(木) 22:24:14.24 ID:OUKJWky+.net]
>>461
>俺はそんなことは言ってないので他人の意見だね

いいや、もろに言ってるよ
君のレスに含まれるRubyという単語を改変してみた:

  >動的型付け言語が大変なのはソースコードを読むときだよ。書くときは比較的楽。
  >楽の意味がわからないなら、タイプ数が少ないと言い換えても良い
   :
  >理由はまんまだが型という情報が書いてあるから。
  >情報を多く書かなければいけない静的型付け言語は大変で
  >でも情報が多く有るから静的型付け言語はわかりやすい

なんら違和感もないだろう?あいも変わらずごく当たり前な一般論を語っているだけ

さあ、Rubyに限定されない「動的型付け言語におけるリファクタリング」を
語りたいのなら、このスレに粘着せず、>>107で紹介した専用スレへ移動しなさい

513 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 22:29:08.65 ID:prpojwIY.net]
>>497
改変しておいて、俺が言ってるとか意味不明
改変しなければ、言ってないってことじゃないか

514 名前:デフォルトの名無しさん [2017/12/22(金) 10:53:32.70 ID:zY/Ujd0Y.net]
496から498までの自演を見てると小学生の演劇見せられてる気分になる

って事で晒しage

515 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 15:56:43.92 ID:o0zFMz04.net]
>>497
>>461 はたぶんちょっと勘違いしてる。

単純に静的言語はコンパイルである程度構文エラーを検出できるから楽を、
リファクタリングが楽だと思ってるんじゃないかな

リファクタリングの考え方は言語は関係ないよ

516 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 15:57:53.00 ID:o0zFMz04.net]
つか、Ruby関係ないかw

517 名前:デフォルトの名無しさん [2017/12/22(金) 16:08:37.20 ID:OF22/s+V.net]
ruby2.5は何が来るかな

518 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 17:59:37.34 ID:2CqGXpCv.net]
これでTypeScriptやPython方式の型ヒンティングが来たらコミュニティが大荒れするだろうな

519 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 18:04:00.26 ID:hLTr5w9I.net]
Ruby 2.5.0-rc1 リリース (12月14日)
https://www.ruby-lang.org/ja/news/2017/12/14/ruby-2-5-0-rc1-released/

★ 新機能 ★
* バックトレースおよびエラーメッセージが逆順に出力されるようになった (Railsゴリ押し?)
* トップレベルにおける定数検索の削除
* rescue/else/ensure が do/end ブロック内にも直接書けるようになった
* yield_self の追加

★ パフォーマンスの改善 ★
(略...

★ その他の注目すべき 2.4 からの変更点 ★
* Onigmo 6.1.3 の取り組み (実際は Ruby 2.4.1 にて取り込み済み)
* bundler の取り込み
その他略...

詳細は https://github.com/ruby/ruby/blob/v2_5_0_rc1/NEWS に書かれてる

☆彡 ☆彡 ☆彡 ☆彡 ☆彡

第三者の記事:
* サンプルコードでわかる!Ruby 2.5の主な新機能と変更点 https://qiita.com/jnchito/items/f182b6f0093a6a3701a1

520 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 18:20:37.57 ID:bOdX3AhV.net]







521 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 21:24:19.52 ID:6yk8gXaG.net]
>>500
> 単純に静的言語はコンパイルである程度構文エラーを検出できるから楽を、
> リファクタリングが楽だと思ってるんじゃないかな

違うよ。静的型付け言語の場合が簡単なのは、
ソースコード上に型が書いてあるからだよ
コンパイルエラーは関係ない

例えば

class Klass {

522 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 21:28:48.59 ID:6yk8gXaG.net]
(間違って途中で送信した)

例えば

class Klass {
  function foo() { }
}

みたいなクラスがあって、
fooをbarに書き換える時

↓ このように型が書いてあれば、ここのfooもbarに
書き換えなきゃいけないとわかる

function f(Klass k) {
 k.foo();
}


↓ でもこの場合は、書き換えれば良いのかわからない

function f(k) {
 k.foo();
}

ソースコード全体から、fを呼び出している所をすべて探して
引数にKlassクラス(もしくはそれを継承したクラス)を
渡していることを確認しなければいけない

523 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 21:38:46.01 ID:6yk8gXaG.net]
今回は一番簡単な例としてメソッド名の変更を例にしたが
例えば、メソッドの引数の数が変わったときも
型がわかれば、メソッドが特定できるので、変えなければいけない場所がわかる
メソッドが消えたこともわかる
クラス名で検索すれば、そのクラスを使ってるモジュールもわかるしね

シグネチャの変更に関わる部分は、静的型付け言語の場合は
すごく簡単に変更すべき場所を特定できる

524 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 21:40:18.92 ID:6yk8gXaG.net]
ここにリファクタリングの種類が書いてあるが、大部分は
シグネチャ(クラスやメソッドの名前や引数の変更)を伴うものだよ
https://so-zou.jp/software/tech/programming/tech/refactoring/

525 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 21:42:20.33 ID:2CqGXpCv.net]
Rubyの静的解析の難しさに関して言えば、単にソースに型が書いてないというだけではないんだよなあ
Rubyって、静的なクラス定義というのがそもそも存在しないんだよ
動かしてみて、RubyのVMのメモリ上に結果としてクラスオブジェクトができて、そこではじめてクラスが定義されたことになるの
この式のクラスは何か?とか考える以前に、クラスなんてものは動かしてみるまで無いの

526 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 21:48:13.59 ID:6yk8gXaG.net]
そう。それもあるね。

動くか、動いてないかの二択じゃないか?って
思うかもしれないがぜんぜん違う。

動いてない状態というのは一つしかないが、
動いている状態というのは無限に近い数ある
「0」と「0以上」の違いと同じ

動いてないという一つの状態なら、全部を調べることも可能だが、
動いているという無限にある状態は、調べ上げることは不可能

527 名前:デフォルトの名無しさん [2017/12/22(金) 22:04:35.06 ID:5nY8hqH+.net]
>>498
Rubyの箇所をJavaScriptやPythonといった他の動的型付け言語へ
改変しても当てはまる事柄しか語っていないと指摘しているんだよ
以下 >>506-509 まで、Rubyには限定されないありふれた一般論が続く


>>501
つまり、そうゆうこと


>>511
>Rubyって、静的なクラス定義というのがそもそも存在しないんだよ

これも「動的型付け言語って、静的なクラス定義というのがそもそも存在しない」という話だね
Rubyに限らずJavaScriptやPythonといった他の動的型付け言語であれば、
「クラスなんてものは動かしてみるまで無い」のが動的型付けの原理だよ

528 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 22:17:37.91 ID:6yk8gXaG.net]
「クラスなんてものは動かしてみるまで無い」かもしれないが、
「仕様(やりたいこと)は動かしてみなくてもある」

ソースコードは動かさなくても「そのクラスは○○であること」
(○○にはメソッドが有ることとかはいります)を前提に
書いてあるというのに「動かしてみるまで無い」ことに意味があるのだろうか

529 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 22:21:48.38 ID:2CqGXpCv.net]
>>513がRailsを触ったことがないのはわかった

530 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 22:25:46.71 ID:6yk8gXaG.net]
>>514
反論して良いんだよ?
Railsがなんだって?

普通はデータベースにそのフィールドが
有るという前提でコード書くよね?



531 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 22:27:24.55 ID:2CqGXpCv.net]
>>515
それをどうやって実行前に認識するの?
DBのスキーマをクエリして調べるのか?w

532 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 22:32:17.34 ID:6yk8gXaG.net]
>>516
DBのスキーマを実行時に変えたりすることなんてまず無いだろ
実行前にスキーマは決まってる。
ならクラスも実行前に生成することは可能なわけだが?

Railsが実行後に決めているからと言って、実行時に決まることにはならない
スキーマは実行前に決まっているし、今話してるソースコードだって
そのフィールドが存在するという前提のソースコードを書いてるだろ
動的に生成してるその情報は、本当は実行前に決まってるんやで?

533 名前:516 mailto:sage [2017/12/22(金) 22:43:01.67 ID:2CqGXpCv.net]
可能かどうかとやるかどうかは別問題だろう
それRuby3の型検査の仕様として提案してみろ、このスレどころではなく罵倒と嘲笑の的だぞ

534 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 22:44:49.43 ID:6yk8gXaG.net]
>>518
これのどこが型検査の仕様なんだ?
そりゃ馬鹿にされるだろうな
型検査の仕様だと言ったお前が

535 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 22:49:53.16 ID:6yk8gXaG.net]
動的言語といっても本当に動的に決まることはほとんどなく
静的に決まってる情報を元に動的に作ってるだけなんだよな。

だから実行するたびに毎回同じものが作られる。
毎回同じものを作るなら、キャッシュするかのように
最初から作っておけば良いわけさ

536 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 22:50:08.15 ID:2CqGXpCv.net]
>>519
DBスキーマまで考慮したメタプログラミング対応の静的解析ツールを作るってこと?
実用的なものができると本気で思うなら作ればいいんじゃね?
みんな喜ぶし、そんな実績があればそれこそMRIの主要メンバーとしてRuby3の仕様決定を主導できるぞ
頑張れよ

537 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 23:01:34.92 ID:6yk8gXaG.net]
>>521
だから動的言語の仕様じゃ無理だって話してるじゃんw

ソースコードにクラスという型を書いてあるから多くのリファクタリングが簡単に出来るようになる
静的に決まってるならソースコードに静的に書けるわけで、
静的に書いておけば、リファクタリングが簡単に早くできるって話をしてる

538 名前:デフォルトの名無しさん [2017/12/22(金) 23:36:34.81 ID:5nY8hqH+.net]
>>522
だからそれはRubyだけでなくJavaScriptやPythonを含む
大半の「動的型付け言語じゃ無理だ」っていう当たり前の話だろ?

539 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 00:24:15.46 ID:eRzaIxhX.net]
動的メソッドは?(初心者並感)

540 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 07:12:36.09 ID:SJqo2RLv.net]
>>522のその論理はもういいよw
食いたくないのに食わされてお腹いっぱいっすわ



541 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 07:28:35.18 ID:SJqo2RLv.net]
リファクタリングはシンプルにしていくのが目的なのに、話を小難しく複雑にしたいのはなぜだ
>>512 とか。

動的言語うんぬんゆってるやつから不吉な匂いがする

542 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 10:11:10.96 ID:f0qvO5Sa.net]
>>526
リファクタリングは、シンプルにしていくのが目的
だから、話を小難しく複雑したくない?

シンプルにしたいのはリファクタリングであって
「話」の話は関係ないよ

543 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 10:11:40.67 ID:f0qvO5Sa.net]
>>525
食いたくないなら見るな

544 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 10:13:50.17 ID:AknL/7GP.net]
このスレはいっつも議論してんなぁ
みんな日中は何してる人なの?

545 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 10:18:01.60 ID:f0qvO5Sa.net]
普通に仕事してるよ。
だから平日の日中は書き込めない

546 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 10:58:49.51 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 11:05:45.83 ID:QLWK33W3.net]
>>531
テストの一般論で言えばダメ
それ結局同じことを実装とテスト両方に書いてるだけで、テストとして意味をなしてない
テストは入出力ともどんな低脳か見ても間違えようのない具体的な値を書くのが鉄則

548 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 11:10:32.49 ID:YmDQ4aAw.net]
>>532
じゃあもし0から255まで全部パスするか書きたいときは
it { expect( f(0) ).to eq (0) }
it { expect( f(1) ).to eq (2) }
...
ってズラっと列挙しろってこと?

549 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 11:14:45.72 ID:QLWK33W3.net]
あと、「nの2倍を返す」という観点と「入力は0から255まで」という観点がごっちゃになってるのも良くない
この場合、前者を代表値(5とか)でテストして、それに加えて後者の観点で境界値(0と255)を試すくらいでいいと思うよ
代表値は冗長かもしれないけど前者の観点をわかりやすく表現するという意味では価値はある

550 名前:デフォルトの名無しさん [2017/12/23(土) 11:18:46.43 ID:LnjVX11P.net]
プロパティテストにしろよ。



551 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 11:58:54.91 ID:YmDQ4aAw.net]
>>534
なるほど、どうもありがとう
代表値、境界値(+不正な値)を試すくらいでいいんだね

552 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 15:22:55.73 ID:f0qvO5Sa.net]
テステス

553 名前:デフォルトの名無しさん [2017/12/23(土) 15:29:55.01 ID:UWK7YGb5.net]
荒らしがハッスるしとる
やっぱアンチも人のいないアンチスレより人の多い本スレに来てしゃべりたいのか

かわいそう

554 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 15:32:00.40 ID:f0qvO5Sa.net]
あ、いや、いままでとちょっと違うことを書き込もうと思ったけど
ID変わってたかなーって思っただけ
変わってなかったので違う話はしないよw
あと他のスレには行かないと何度もいってる
あきらメロン

555 名前:デフォルトの名無しさん [2017/12/24(日) 09:48:03.56 ID:24EH1p52.net]
https://rubyinstaller.org/downloads/

Windows10 に、Ruby を入れようと、
上のページの、7-Zip Archives から、Ruby 2.4(x64)をダウンロードすると、
rubyinstaller-2.4.3-1-x64.7z というファイル名だった。
これを、7-Zip で解凍すると、56MB になった

C:\Ruby24-x64\
とフォルダ名を変えたけど、ここからどうやってインストールするの?

それとも、これはインストーラーではないのかな?

556 名前:デフォルトの名無しさん [2017/12/24(日) 10:02:29.66 ID:naA/wMe4.net]
環境を書いてから
何したいかを言え

557 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 10:08:38.24 ID:imZP4RC3.net]
なんで素直にexe落とさないの?

558 名前:540 mailto:sage [2017/12/24(日) 10:48:40.19 ID: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 mailto:sage [2017/12/24(日) 11:01:29.86 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 11:02:00.42 ID:A3ERayLu.net]
Rubyにパイプラインオペレータってないの?

JavaScriptだと

exclaim(capitalize(doubleSay("hello")));
というカッコの入れ子が

"hello" |> doubleSay |> capitalize |> exclaim;

とシェルスクリプトのパイプのように
流れるような形で記述できるようになるらしいんだけど



561 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 11:05:46.33 ID:mMj7aGtc.net]
>>545
そんなのがあると誰もオブジェクト指向しなくなるからRubyの思想には合わないだろ
素直にメソッドチェインでやるか、さっさと関数型言語に乗り換えるべき

562 名前:540 mailto:sage [2017/12/24(日) 11:08:13.75 ID:24EH1p52.net]
7-Zip Archives からダウンロードした、Ruby 2.4(x64)は、
ひょっとして、CUI 版のインストーラーなのかな?
(rubyinstaller-2.4.3-1-x64.7z というファイル名だった)

7-Zip Archives 中の、\bin\ridk.ps1 に引数を付けて、
インストールするのかも知れない

よくわからないけど。
インストーラーじゃないかも知れないし

563 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 11:08:41.37 ID:2eVeUlKQ.net]
>>544
>>542

>>545
こんな gem がある
yuroyoro.github.io/lambda_driver/

564 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 11:14:59.06 ID:24EH1p52.net]
>>545-546
まさに、Elixir

Matz も、Streem という新言語を考案して、日経Linux に連載していた。
GitHub にあるらしい

565 名前:540 mailto:sage [2017/12/24(日) 11:29:56.75 ID: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 mailto:sage [2017/12/24(日) 11:37:26.57 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 12:51:21.82 ID:W/aeQ+z1.net]
実行できて当たり前なのに何を言っているのか
インストーラーはパスを通したりするだけだぞ

568 名前:540 mailto:sage [2017/12/24(日) 13:37:01.71 ID:24EH1p52.net]
7-Zip Archives からダウンロードした、Ruby 2.4(x64)は、
環境変数PATH が通っていないだけで、実行できるの?

ここに、実行環境が一式が揃っているの?
つまり、どこにでも移動できるポータブル版?

569 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 13:55:33.60 ID:A3ERayLu.net]
>>548
期待したけど、やっぱりRubyの文法からは抜け出せないか
DSLが得意と言っても所詮Rubyの言語であることに変わりはないしな

570 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 13:58:58.91 ID:A3ERayLu.net]
>>546
まあ頭が固いw

a + b はオブジェクト指向じゃないっていうんですか?
a.add(b) ってしなきゃいけないですね



571 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 14:12:36.12 ID:BNj/0IJ2.net]
>>555
Rubyに文句を言う前にまずはRubyの仕様くらいちゃんと理解しよう
+は全く特別なところのないごく普通のインスタンスメソッド呼び出しだぞ
関数型でaddにパイプライン使うとしたら
b |> add(a) # add(a, b)に相当
こうなるわけだが、理解してるか?

572 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 14:15:02.58 ID:A3ERayLu.net]
>>556
まあ君はJavaScriptの仕様を知らなくて当然だろうけどね

|> オペレータっていうのは、引数を一つの関数呼び出しの
シンタックスシュガーに過ぎない
だから関数呼び出しを行ってるのと一緒

関数呼び出しをするとオブジェクト指向にならないのか?
そんなわけあるかw

573 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 14:29:26.20 ID:BNj/0IJ2.net]
>>557
ある機能が言語に追加されることでコーディングのスタイルが大きく変わってしまうことはよくある。
まあそういう経験則的な話は君には通じなそうだから、もっと具体的にRubyとの相性の悪さを説明してあげよう。
まず、関数型言語やJavaScriptでは裸の関数名は第一級関数(関数オブジェクト)だが、Rubyではメソッド呼び出しになってしまう。
だから>>548のようにシンボルを使った汚いハックをするか、|>の後にくる識別子は第一級関数として扱うという特別ルールを設けることになる。
特別ルールを設けたとしても、>>556のaddの例みたいな使い方には対応できない。
君は関数型言語を知らないみたいだから説明しとくと、add(a)はadd関数の第一引数にaを部分適用(カリー化)した引数一個の関数を返す。
|>の直後には必ず関数名が来るというルールだと、これは実現できないのはわかるよね。

574 名前:558 mailto:sage [2017/12/24(日) 14:33:34.04 ID:BNj/0IJ2.net]
それと、Rubyの関数は殆どがインスタンスメソッドであるというのも忘れてはいけない。
x |> y.hoge
これは y.hoge(x) と解釈すべきだろうか?
それともy.hoge()(x)かな?
今のRubyの仕様からすると後者が自然だと思わない?

575 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 14:46:41.85 ID:bBhW4Y9m.net]
ようお前ら。
Ruby 2.5が来るのは明日だぞ。
gem作ってる奴はちゃんと準備出来てるか?
Ruby2.5にした途端に泣きを見ることのないようにしとけよ。

576 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 15:29:04.65 ID:A3ERayLu.net]
>>558
あ、なるほどw シンタックスシュガーって言ってるのに、
あんたは関数型の仕様に変更すると思い込んでるわけかw

俺、Rubyを関数型にしろなんて一言も言ってないよ?
JavaScriptが関数型になったなんて一言も言ってないよ?

ただ、関数呼び出しのネストは見づらいから、一つの引数を取る関数の呼び出しを
|> でつなげた "書き方" ができると良いねって話しかしてないんだよ

> 今のRubyの仕様からすると後者が自然だと思わない?
理由が書いてないから判断不可能だね

>>556
> 関数型でaddにパイプライン使うとしたら
> b |> add(a) # add(a, b)に相当
> こうなるわけだが、理解してるか?

ぷぷw |> という記号を使っだけで、関数型になるべきだなんて
思い込んでるからそういう結論になる。馬鹿だねぇ

JavaScriptの関数型でない単なるパイプラインオペレータは引数が1つの
関数を受け取ることしかできない。 カリー化?そんなものはしない。
関数型のパイプラインオペレータを導入なんて話はしてないんだから当然の結論

引数が複数の関数を使いたければ、アロー関数でそうなるように書くだけの話

https://github.com/tc39/proposal-pipeline-operator
let newScore = person.score |> double |> (_ => add(7, _)) # アンダースコアは只の変数、iでもaでも良い

papp proposalのpappメソッドを使うとこう書くこともできるようだけど
let newScore = person.score |> double |> add.papp(7)

577 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 15:52:11.56 ID:2eVeUlKQ.net]
>>554
Ruby使うんだから当たり前の話でそ?
Rubyじゃないスタイルでどうしても書きたいならすでにRubyを使う必要はないと思うんだけど

578 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 15:54:48.61 ID:/VeWYwOF.net]
Juliaおぬぬめ

579 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 16:00:56.08 ID:2eVeUlKQ.net]
Juliaいいね。これから大注目の言語だよ
ただ、現状は起動が激重なのでJuliacとかが公式採用されないとつらいかも
そういう意味ではJavaに似てるのかも(言語仕様という意味ではなく)

580 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 16:12:39.10 ID:BNj/0IJ2.net]
Juliaはクソ重い計算やデータの処理を長時間ぶっ通しで動かすための言語だよ
Rubyと比べるようなもんではないし、起動時間が問題になるようなものに使うのも間違い



581 名前:デフォルトの名無しさん [2017/12/24(日) 20:04:37.70 ID:4g6ysjQ5.net]
>>545
>流れるような形で記述できるようになるらしいんだけど

できるようになるといふのは、以下の提案かな?
・ESNext Proposal: The Pipeline Operator
 https://github.com/tc39/proposal-pipeline-operator

調べてみると、これはあくまで提案(proposal)であって、
5段階あるECMAScript(= JavaScript)仕様策定過程の2番目に過ぎない
 0. Strawman
 1. Proposal <― パイプライン演算子の状態
 2. Draft
 3. Candidate
 4. Finished
当然、現時点でその実装は存在しておらず「絵に描いた餅」に過ぎない
言い換えると、「こんなのできたらいいなあ」といふ話だよね?

582 名前:デフォルトの名無しさん [2017/12/24(日) 20:35:54.14 ID: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 mailto:sage [2017/12/24(日) 22:02:54.10 ID:24EH1p52.net]
JS は、Ruby, Elixir の影響が強い。
Kotlin も、Groovy, Ruby の影響が強い

誰か、
>>540
の、7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64)をどうすれば

585 名前:よいのか、教えてほしい []
[ここ壊れてます]

586 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 22:25:11.95 ID:ZqTzsWSR.net]
>>568
パスを通せ

587 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 23:05:16.75 ID:A3ERayLu.net]
>>567
> え、こう書けないっていうの?

少しは頭を働かせようよw

そこにある、add(7) が引数を一つ取る関数を返すなら書けるよ
それを汎用化したのがpapp。それにJavaScriptでカリー化する方法だってある

JavaScriptは関数型言語じゃないんだから、関数型言語の方からみて
ダサいとか言うなよw お前、関数型に洗脳されてるだろw

関数型を取り入れたなんて話はしてない。お前が言い出しただけ。
単にパイプラインオペレータという関数のネストを見やすくする機能を
追加するってだけの話

588 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 23:07:29.50 ID:2eVeUlKQ.net]
>>570
Rubyについてはこんな書き方しかできないのかと毒づいておいて、JavaScripitについては全力擁護
これをRubyスレでやらかしてたら荒らし認定を食らってもしょうがないレベルだぞ

589 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 23:12:18.94 ID:A3ERayLu.net]
>>566
> 当然、現時点でその実装は存在しておらず「絵に描いた餅」に過ぎない
知らないなら、知ったかぶりして語らないでよw

JavaScriptは5段階あるECMAScript(= JavaScript)仕様策定過程を
必ず0から一つづつ上げて行かないといけない
だからどんな仕様だって最初は0から始まる

こういう提案から仕様化されるまでのプロセスが明確になってるのは素晴らしいことだよ

で、Stage 1だが

https://azu.github.io/slide-what-is-ecmascript/slide/12.html
・プロポーザルの目的や解決方法を示す
・Polyfillやデモ等を用いて解説する

どういうことかというとPolyfillやデモ等があるってことだ。
わかりやすく言うと、すでに使う方法があるってことだ。それがこれ
https://www.npmjs.com/package/babel-plugin-transform-pipeline

なので絵に描いた餅ではない。絵に描いた餅はStage 0
その0を脱却して、すでに使う方法が出来たということ

590 名前:540 mailto:sage [2017/12/24(日) 23:16:34.36 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 23:17:27.23 ID:2eVeUlKQ.net]
>>572
でさ、結局何が言いたいの?
JavaScriptサイコーってのが言いたいのなら完全にスレ違いだよ

592 名前:540 mailto:sage [2017/12/24(日) 23:23:27.95 ID:24EH1p52.net]
ちなみに、rubyinstaller の 7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64)は9MB で、解凍すると56MB になった

1/6 に圧縮されている

593 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 23:37:20.25 ID:A3ERayLu.net]
>>574
> でさ、結局何が言いたいの?
Rubyもサイコーになろうぜ

594 名前:デフォルトの名無しさん [2017/12/25(月) 00:01:06.18 ID:h6gXOlbY.net]
>>570
>関数型を取り入れたなんて話はしてない。お前が言い出しただけ。

>>556 とは別人だけど、IDを確認できないほど冷静さを失っているのかな?

また、そもそも>>545の exclaim, capitalize, doubleSay という関数単位で部品化して
パイプライン演算子で組み立てるという発想そのものが関数型プログラミングであり、
それを自分(ID:A3ERayLu )から言いだしたという認識ができていないのかね?


>単にパイプラインオペレータという関数のネストを見やすくする機能を追加するってだけの話

だよね、関数型のパイプライン演算子と同じ名前だけど中身は微妙に異なるJavaScript固有の方言が
一つ提案されたという、ただそれだけの話
しかも最終的に採用されるか否かも確定すらしていない Proposal 段階でしかないといふ

595 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 00:21:34.94 ID:mSK8fdnz.net]
> また、そもそも>>545の exclaim, capitalize, doubleSay という関数単位で部品化して
> パイプライン演算子で組み立てるという発想そのものが関数型プログラミングであり、

関数呼び出しの形を変えただけ、
関数型プログラミングとは全く関係ない

596 名前:デフォルトの名無しさん [2017/12/25(月) 00:25:59.73 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 00:38:42.38 ID:W15ZQhn0.net]
いずれにせよ>>559のようにメソッド呼出の括弧省略の問題があるからJavaScriptやCaml系のようなクリーンなシンタックスにはならないけどね
&:symbolとか->みたいなハック感溢れる醜い構文になる

599 名前:デフォルトの名無しさん [2017/12/25(月) 01:02:31.40 ID:h6gXOlbY.net]
>>580
いや、オブジェクト指向言語のRubyなら、現時点でも
簡潔にメソッドチェーンで流れるようなコードが書ける

以下は>>545の例:
 https://ideone.com/aExbWe

refinements に関しては以下の記事が分かりやすかったのでご参考
・Ruby の refinements の使い途 - Qiita
 https://qiita.com/scivola/items/dc49d56c90fd0cb6d4d3

で、何かご不満はございますか?

600 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 01:03:23.68 ID:mSK8fdnz.net]
>>579
JavaScriptは元から関数型じゃないし
関数型になんかなろうとしてないよw



601 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 01:05:56.92 ID:mSK8fdnz.net]
>>581
> で、何かご不満はございますか?

はい。

def foo(i); end
def bar(i); end
def baz(i); end

となっているものの baz(bar(foo(1)) という呼び出しを
メソッドチェーンで繋げないということです。

パイプラインオペレータならこの通り
1 |> foo |> bar |> baz

602 名前:デフォルトの名無しさん [2017/12/25(月) 01:53:39.67 ID:h6gXOlbY.net]
>>582
>JavaScriptは元から関数型じゃないし

うーみゅ、やっぱりJavaScriptって誤解されてるのね
・クロージャって何がいいの?
mevius.2ch.net/test/read.cgi/tech/1415419907/224

リンク切れ邦訳版「JavaScriptの勉強:世界で最も誤解されたプログラミング言語」
web.archive.org/web/20130120204931/http://d.hatena.ne.jp/brazil/20050829/1125321936
>  Cの皮を被ったLisp
>
>  JavaScriptには、Cのような中括弧や不格好なforステートメントがあるため、
>  一般的な手続き型言語のように見えますが、それは誤りです。JavaScriptはCやJavaよりも、
>  LispやSchemeのような関数型言語と多くの共通点を持っているのです。JavaScriptには、
>  リストの代わりに配列があり、プロパティリストの代わりにオブジェクトがあります。
>  関数はファーストクラスであり、クロージャも備えています。つまり括弧の対応をとる手間なしに、
>  ラムダを利用できるのです。


>>583
それに関しては納得
前スレで書いたように、Rubyにおいてメソッドは一級市民(ファーストクラス)ではありませんからね
・Ruby 初心者スレッド Part 61
 mevius.2ch.net/test/read.cgi/tech/1503644351/210

603 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 01:57:26.36 ID:6htjEWah.net]
ここはJavaScriptスレじゃないよ

604 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 02:12:49.73 ID:mSK8fdnz.net]
>>585
JavaScriptは関数型だってことにしたいんでしょw

605 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 02:14:31.41 ID:6htjEWah.net]
>>586
JavaScriptの話はそっちのスレでやれってこと

606 名前:デフォルトの名無しさん [2017/12/25(月) 02:19:08.95 ID:h6gXOlbY.net]
>>585
まったくそのとおりですね
といふことで、JavaSciptのパイプライン演算子を提案され

607 名前:トいる方は、
JSスレヘお帰りになられるか、もしくわ

  日常的にカッコだらけになってしまうPython(>>579)

スレへ移動されるよう希望します

特にRubyと違ってPythonは関数が一級市民ですから、
JavaScriptの手法を適用するのは(Rubyよりも)容易でしょう
[]
[ここ壊れてます]

608 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 10:22:56.25 ID:yHCsyXBb.net]
Windows10 の、VS Code で、irb (PowerShell ターミナル)を起動して、

put "abc"
なら、実行できるけど、

put "あいう"
のように日本語があると、実行できないね

609 名前:589 mailto:sage [2017/12/25(月) 10:27:56.95 ID:yHCsyXBb.net]
put "abc" # あ

のように、コメントに日本語がある時は、実行できる

610 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 10:29:17.76 ID:FXcNW9u1.net]
>>589
それはrubyじゃなくてlibeditの不具合だよ



611 名前:589 mailto:sage [2017/12/25(月) 12:11:57.01 ID:yHCsyXBb.net]
知らないけど、UI 部分を、C言語とかで作っているから、
いつまで経っても修正できないのだろう

UI 部分は、VS Code みたいに、
ブラウザ技術を使っている、Electron で作れば良かった

612 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 20:14:59.36 ID:YHWK2l8N.net]
ねんがんのRuby 2.5.0をてにいれたぞ‼
https://www.ruby-lang.org/ja/news/2017/12/25/ruby-2-5-0-released/

613 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 21:16:04.65 ID:FXcNW9u1.net]
yield_selfは使いどころが結構ありそうだね

614 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 21:25:14.33 ID:s8SRCdHD.net]
使い方わかんないな

615 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 21:52:41.67 ID:YHWK2l8N.net]
yield_selfはこれまでメソッドチェーンをしたくてもできなかった場合で活躍するね
途中の一時変数は用無しになった

616 名前:デフォルトの名無しさん [2017/12/25(月) 22:38:48.18 ID:h6gXOlbY.net]
昨日のパイプライン演算子に関する話の中に出てきた >>583 のようなケースが
以下のように書けるようになる

https://ideone.com/hZI7wT

・Ruby 2.5 の yield_self - Qiita
 https://qiita.com/stomk/items/58dce3e5e294639ab1c9

F# や Elixir の登場ですっかり世間の認知度がアップしたパイプライン演算子、
すっかりハマって
「プログラミングスタイルをパイプライン形式(いわゆるメソッドチェーン)で統一して書きたい!」
という欲求を抑えられない人たちにとっては嬉しいメソッドの新設ではないかと思われ

個人的には、メソッド名は apply もしくはそれを短くした app が
感覚的に合っていた(エイリアスを定義するだけなんだけどね)

617 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 22:46:27.01 ID:mSK8fdnz.net]
ふっふっふ、ようやく気づいたかね?
昨日のパイプライン演算子の話は
ここにつながるのだよ

618 名前:デフォルトの名無しさん [2017/12/25(月) 23:07:16.77 ID:h6gXOlbY.net]
つまり:
・JavaScriptでは現時点だと最終的に採用されるか否かも定かでない Proposal 段階で、
 実験的な実装をいじってあーだこーだ議論している真っ最中
・一方、Rubyではとっくに議論を終えて公式にリリースを終えてしまった
といふ話ですね

619 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 23:20:17.82 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 14:56:29.62 ID:75dqQ4yg.net]
private methodを定義する時ってどう書くのが普通?

private def foo
__bar
end

def foo
__ bar
end
private :foo

# クラスの後ろにまとめて定義
private
def foo
__bar
end



621 名前:デフォルトの名無しさん [2017/12/26(火) 16:40:03.50 ID:pHnCZ49/.net]
自分の好きなタイミングで

622 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 17:17:14.64 ID:MQU8AiWM.net]
他人が読んで読みやすいとと思う書き方。

623 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 17:36:54.63 ID:Zhknjblq.net]
俺は後ろにまとめて書くようにしてる。
ついでに言うとprivateが連続した場合2個目以降のprivateは不要だが、パッと見て分かるように常に付けている。

最近は触って欲しくないメソッドはリファインメントを使うっていう手法を覚えたけど、これは異端なのか分からない。

624 名前:デフォルトの名無しさん [2017/12/26(火) 22:52:56.50 ID:pHnCZ49/.net]
アンチ息してる?
アンチスレ死亡してるみたいだけど

625 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 23:11:59.17 ID:Xx1508gc.net]
アンチスレ死亡させていいよ
存在価値無いし、ここで十分

626 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 23:45:46.61 ID:p5HaZQjy.net]
そもそもRubyのprivateって実質的な強制力はほぼゼロでコメントとしての意味くらいしかないからな
そういう意味ではよほど小さなクラスを除けば全部に付けないとあまり意味ないんじゃないか

627 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 01:21:36.89 ID:kb3Qecdj.net]
アンチがアンチスレの存在をすっごい嫌がってるのは、本スレで暴れたいからだろうな

だが、断る
アンチはあの過疎ったアンチスレへ帰るべきだ

628 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 01:24:11.45 ID:Kn/lt9VX.net]
結局ここにアンチが来てなくても
アンチの話題をしたいわけなんだよな
もう病気だと思うよw

629 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 01:24:47.07 ID:Kn/lt9VX.net]
アンチスレも定期的に見てるようだし

630 名前:589 mailto:sage [2017/12/27(水) 01:58:58.62 ID:u0gTyM9V.net]
>>589-592
自己レス

irb -E CP932

irb の起動時に、オプションを付けると、日本語文字列も正常になった

puts "あ"

Ruby は、Windows でも無敵やな!



631 名前:デフォルトの名無しさん [2017/12/27(水) 04:54:44.27 ID:vGbq0nNV.net]
>>601
人それぞれでいいと思うけど、自分はクラスの後ろにまとめて定義する派だね
ドキュメンテーションとしての可読性を重視し、あるクラス定義において
デフォは公開したいメソッドだけどキーワード private で宣言した以降の
セクションは非公開にしたいという意図がある

 class Klass
   公開したいメソッドの定義セクション
 private
   不公開なメソッドの定義セクション
 end

個別に宣言する private :foo を使うケースは、公開するつもりでクラスを設計したけど、
リファクタリングの過程で「このメソッドは非公開でもいいんじゃね?」と疑問を感じたら
private :foo を付けテストを流して実験するといった一時的なもの


>>607
確かに、メンバ変数のアクセス制限という概念が無く、全ての変数がpublicとして扱われるのよね
 https://qiita.com/nkennek/items/8c54365cb873cca8730a
 woodyring.blog.so-net.ne.jp/2013-05-25-1
ああ中途半端でめんどくさ

632 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 14:38:59.95 ID:kb3Qecdj.net]
612は勘違いしてる
変数にpublicも糞も無い

633 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 14:47:08.38 ID:K4eQH++r.net]
メンバ変数なんてない
インスタンス変数の事を言ってるならそもそもオブジェクトの外からはアクセスできない

634 名前:デフォルトの名無しさん [2017/12/28(木) 23:13:58.27 ID:zlcR2/4C.net]
みんな、デバッグはpで済ましてる?
それとも何かツール使ってる?

635 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 23:14:30.42 ID:AeGE7eie.net]
は? ppだろ

636 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 23:18:20.87 ID:s+AqweGp.net]
自前でpryもどきを作ってbinding.hogeしてる

637 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 02:26:20.85 ID:orHgNMeq.net]
awesome-print/awesome_print: Pretty print your Ruby objects with style -- in full color and with proper indentation
https://github.com/awesome-print/awesome_print

638 名前:デフォルトの名無しさん [2017/12/30(土) 03:43:26.25 ID:Codmlyj+.net]
最近、debug.rb知って使うようになったけど


pで間に合うデバッギングしかまだやってないんだよな

639 名前:540 mailto:sage [2017/12/30(土) 08:54:20.80 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 13:51:43.29 ID:KgXg1sy3.net]
JSON::Stateの挙動がマニュアルと違うのですがこれはバグでしょうか
https://ideone.com/Nd2wBc
https://docs.ruby-lang.org/en/2.4.0/JSON.html



641 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 14:02:41.65 ID:8kEk1hAU.net]
あぁ、バグだろうな。
お前のバグだ

642 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 15:07:11.63 ID:KgXg1sy3.net]
英語が読めなかったんですね。すみませんでした
マニュアルには「コロンとコンマの区切りの後にspace:で指定した文字列がおかれる」と書いてあります

643 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 15:21:25.29 ID:9j+d+4sf.net]
space_before: だろ

644 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 15:22:43.33 ID:KgXg1sy3.net]
space_beforeはコロンの直前なので関係ありません

645 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 15:25:29.81 ID:9j+d+4sf.net]
リストだからじゃね

646 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 17:05:16.47 ID:20iing1R.net]
何しても`,'の後ろには入らないね
バグっていうよりマニュアルの不備なのかな

647 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 17:25:46.52 ID:IKvN98q1.net]
,の後ろにスペース入れるのは一般的なフォーマットだから、常識的にはドキュメントの方が正しいでしょ
直してプルリク出せ

648 名前:デフォルトの名無しさん [2018/01/02(火) 13:03:30.40 ID:nZWiMujw.net]
明けおめ
今年初のRubyスレ書き込み

649 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:10:18.61 ID: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 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:12:28.67 ID: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 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:13:36.50 ID:NRmrCA2E.net]
今時WinでやるならWSLを使おう
どうせ運用はLinuxなんだからそれに慣れる意味でもな
あと、オワコンCoffeeなんか今更使っちゃダメ

652 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:30:29.29 ID:Q+9WD3Xu.net]
タイトルでそう思ったけど、ここ初心者スレじゃなかったのか
仕方ない、自分でもうしばらく足掻くか

653 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:32:05.53 ID:ZaEks4dH.net]
WSL使おうってアドバイスがあるのにさらっと無視するようじゃ、初心者スレ云々の問題じゃないかと思われる

654 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:37:12.02 ID:IA96dLm2.net]
すべてのwindowsでWSL使えるわけじゃないのに何言ってるの

655 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:42:47.77 ID:ZaEks4dH.net]
だったらWSL使えないって言えよ
そしたらVMWare使えってアドバイスもらえるんだからさ

656 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:44:20.68 ID:IA96dLm2.net]
答えのわからない質問に、的はずれな回答しなくていいから
わからないなら黙ってなさい

657 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 00:44:42.35 ID:0mS9Giqv.net]
原因わかったよ、鋸使わなかったから
鋸使ったらうまくいった

あとで調べたらWSLは互換性がどうたらとか書いてたし、VM使うほど容量に余裕ないんで
でもまあwindowsよりLinux使えってのが大きなヒントになったのは確か

658 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 00:53:49.79 ID:BK81yZAH.net]
互換性はWSLの方が遥かにマシだぞ
WinのRubyなんか動いたらラッキーレベルのおまけ

659 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 06:24:30.41 ID: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 mailto:sage [2018/01/03(水) 08:15:54.66 ID:LyakWDNT.net]
基本的に、gem の作者が、Windows10 用のバイナリを配布していない、
gem は、作者によって動作が保証されていない

それを、The MSYS2 DevKit などで、ユーザーが勝手に、
Windows のネイティブコードにコンパイルして、動かしているようなものは、
基本的には安全ではない。
コンパイルできても、正常に動くとは限らないから

gem の作者でもないユーザーが、勝手にコンパイルして動かしても、安全性を証明できない

gem の作者が配布している、バイナリのバージョンまで、
Ruby, Rails のバージョンを下げる必要がある

Windows10 の場合は、RubyInstallers に、最初から入っている、
erb, irb, minitest, sinatra などで遊ぶ。

gem も、ユーザーがコンパイルする必要のない、gem の範囲で、遊ぶのが良い



661 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 12:59:19.24 ID:vVUVg3Hi.net]
gemの範囲で遊ぶのが良い までは読んだ

まあ遊びというか入門勉強用にしとけばいいわけだな。遊びでも触っておけば、本番で構築が必要になった時
いくらでも応用利くから。MVCも他のフレームワークとあまり変わらなさそうだし

662 名前:デフォルトの名無しさん [2018/01/03(水) 13:59:57.88 ID:7RCD6iyC.net]
何故、荒らしはアンチスレに帰らないで本スレで自演してるの?
さみしいの?

663 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 14:12:30.27 ID:xfm5wXWm.net]
>>643
アンチもクソも、現実を直視しよう
Rubyのコアのコミュニティに行くとWin使いには人権ないぞ
このスレはまだマシな方だよ

664 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 14:57:18.33 ID:vVUVg3Hi.net]
人権とかいう排他的な言い方しなくても、win環境には適応しきれていないのはわかったよ
rails new hogehogeコマンドで新たなアプリケーション作ってもまともに動かないことも分かったし
社内PCにはVMぐらいは作ってあるから、そっちでいくらでも試せる

今度はサーバ設定ツールにvagrant、chef、Docker、WSLとか書かれてるけど
どれが一番オススメかは聞いておきたい

665 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 15:31:56.84 ID:SZxPYOzJ.net]
なんかもう言ってることがすごいな
>The MSYS2 DevKit などで、ユーザーが勝手に、
>Windows のネイティブコードにコンパイルして、動かしているようなものは、
>基本的には安全ではない。

666 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 16:02:22.19 ID:Z3K4Tirs.net]
サーバー設定はchef-soloが簡単かなー

鯖は最終借りて使うことになるし
AWS,VPSなんかに使いまわしできる。

dockerなんかも便利

web系はLinuxは必須。

667 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 16:02:34.32 ID:vVUVg3Hi.net]
結局Vagrant使ってVB入れて続きを動かしてみることにした

668 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 19:09:04.58 ID:7RCD6iyC.net]
自演で伸ばしてくれるのはありがたいけど、
はやくアンチスレへ帰りなよ

669 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 19:29:07.03 ID:tD4HLGIX.net]
>>647
ansibleの方がマシ
ただ俺に言わせりゃ冪等性が必要ない
使い捨てマシンの設定はシェルスクリプトでいい

670 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 20:20:36.21 ID:vVUVg3Hi.net]
>>649
アンチスレとかあるんか?そんな技術どうこうに、わざわざアンチとか騒いで
何か開発上のメリットでもあるのか?



671 名前:デフォルトの名無しさん [2018/01/03(水) 22:02:49.25 ID:ML6+3XhW.net]
嘘を吹聴してる荒らしはまだおるんか?
はよーアンチスレへ帰れ

初心者スレで嘘ばっかりつきやがって

672 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 23:03:06.29 ID:vVUVg3Hi.net]
そこまで言うなら
他のスレに貼り付けてやろうか?
Ruby開発者はこんな連中ばっかりだと

Pythonスレとかあたりに

673 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 23:07:20.10 ID:vVUVg3Hi.net]
俺はPHPとかJavaScriptはMVCフレームワーク含めて経験あるし、納品実績もあるけど

RubyやRailsは本当に初心者だよ、去年まではRailsなんて名前しか知らんかった
一応上司に勉強しといた方がいいって勧められて、せっかくの正月休みなんで
意気込んで勉強してたんだよ

こんなところで質問した自分が心底馬鹿だったわ

初心者を罵倒するスレに改名してくれ

674 名前:デフォルトの名無しさん [2018/01/03(水) 23:08:40.92 ID:ML6+3XhW.net]
おまえ、
他のスレを荒らすのもええ加減にやめろ
みんな迷惑しとるやろうが

675 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 23:21:54.41 ID:dC+KJDFP.net]
>648デフォルトの名無しさん2018/01/03(水) 16:02:34.32ID:vVUVg3Hi
>結局Vagrant使ってVB入れて続きを動かしてみることにした

例の荒らしがとうとう他スレに移住してくれるわけか
これはめでたい

676 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 00:11:00.11 ID: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 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 00:18:08.10 ID:Y2aN+Ibt.net]
まーた誤爆してる

ログ残すのがそんなに大好きなのかな

678 名前:640 mailto:sage [2018/01/04(木) 01:01:51.01 ID:Db2jLLtK.net]
CentOS は、64ビット版のみで、32ビット版はもうやっていない。
Linux も徐々に、32ビット版を作らなくなってきた

Ruby で、ユーザーが勝手に、ソースコードからコンパイルしているような、
32ビット版のgem は、使えなくなってくる

gem の作者がほったらかしで、64ビット版をサポートしていないから、
こういうgem に依存しているアプリは、Linux でも動かなくなっていく

679 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 01:49:10.10 ID:Y2aN+Ibt.net]
何他人を語ってるんだよお前

680 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 02:54:14.07 ID:IBQXDyQ6.net]
これ、朝になったらアンチが発狂して自演繰り返すパターンだわ
俺知ってる



681 名前:540 mailto:sage [2018/01/04(木) 07:31:26.40 ID: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 https://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 mailto:sage [2018/01/04(木) 10:00:23.11 ID: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 名前:デフォルトの名無しさん [2018/01/04(木) 10:31:04.56 ID:M7dikhfh.net]
>ID:Db2jLLtK
何度も言うが自演を繰り返して荒らすなら
アンチスレへ行け

684 名前:デフォルトの名無しさん [2018/01/04(木) 14:21:55.97 ID:0iUUJ0bW.net]
質問
Arrayで事足りるケースにしかまだ出会ってないけど
Enumerableってどういう時に使うの?

685 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 19:16:52.27 ID:q0THGQuz.net]
>>665
p ([].each).class.ancestors

686 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 22:09:15.03 ID:ByuqHChs.net]
初歩の初歩な質問ですけど…
配列に0から99までの数字を一括で格納したいです
a = [0,1,2...と記述していてはとても長くなるので…
どうすれば良いのでしょうか?

687 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 22:18:08.37 ID:gbqCK9B9.net]
>>667
(0..99).to_a

688 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 22:19:23.96 ID:E5yE4mKi.net]
[*0..99]という書き方も

689 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 22:21:04.48 ID:gbqCK9B9.net]
そういえば (0..99).to_a で気づいたけど、>>665 のいう Enumerable は Range クラスも持ってるな
ちょうどいい例じゃね?

690 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 22:29:13.42 ID:ByuqHChs.net]
できました
ありがとうございました



691 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 01:12:43.58 ID:DBj0On7v.net]
EnumerableならPrimeクラスの使い方見てみるのもいいかもね

692 名前:540 mailto:sage [2018/01/05(金) 10:23:43.97 ID: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 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 21:48:51.55 ID:cNE023Or.net]
#{hoge}などの形で入力をそのまま正規表現に入れた場合に、入力に正規表現が含まれていると意図しない挙動が起こると聞いたのですが、どのように回避するのが良いのでしょうか?

694 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 22:03:0 ]
[ここ壊れてます]

695 名前:5.29 ID:Z2M9SnI/.net mailto: systemメソッドでperlのワンライナーを呼び出す []
[ここ壊れてます]

696 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 22:28:18.08 ID:wqtMql/4.net]
>>674
#{hoge}などの形で入力をそのまま正規表現に入れない。
具体的には、Regexp.escape などでエスケープ処理した文字列を利用する。

697 名前:デフォルトの名無しさん [2018/01/05(金) 23:28:05.64 ID:MlGJfS7x.net]
空港のwifiからアクセスした際にログイン出来ないという報告がありましてログを見たところ
ActionController::InvalidAuthenticityTokenというエラーが出ていました
CSRF対策の仕組みが関係することは分かったのですが
なぜこれが発生するのか分かる方いらっしゃいませんでしょうか

698 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 02:50:42.13 ID:nSHs9ovb.net]
空港やホテルは、設定が厳しい。
LAN 内ですら、お互いに通信できないだろ

隣の人のスマホと、アクセスできないだろ

699 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 02:53:50.34 ID:qWm4dftC.net]
>>678
つまり何が原因なのですか?

700 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 04:48:47.53 ID:nSHs9ovb.net]
空港やホテルの、wifiは危険だから、設定が厳しい

「空港 wifi セキュリティ」で検索!



701 名前:540 mailto:sage [2018/01/06(土) 07:03:24.91 ID: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 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 10:01:00.08 ID:UsOHfVJQ.net]
>>681
大変申し訳ないが一回だけ言うね
日記の続きは貴方の個人的なブログでお願いしたい
ここはみんなのスレなのでご理解ください

703 名前:デフォルトの名無しさん [2018/01/06(土) 12:53:30.03 ID:HbY4/bGY.net]
続きはCMのあとで

704 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 12:58:28.05 ID:jet593Ss.net]
備忘録とか日記のネタとか書くのは問題ないだろ
普段はそこまで賑わっているスレじゃないんだから
雑談OKなわけだし、初心者にはありがたい情報じゃないのかな

705 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 13:52:44.37 ID:FAOceAzc.net]
レス読んでないけど、情報共有するならここに書くよりかQiitaにあげた方が有益だと思うけどね

まぁどっちでもいいわ

706 名前:540 mailto:sage [2018/01/06(土) 14:44:04.22 ID:nSHs9ovb.net]
irb のソースコードを見て、誰か、

外部エンコーディング・Encoding.default_external が、
UTF-8 でも動くように、修正してくれないかな?

それと、Windows で、Ruby を使っている人も、書き込んでほしい。
Windows の、Ruby 使いが少ない

707 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 14:49:07.31 ID:ul9KuZX2.net]
自分で直してPull Reques出せ
基本的にWin使いに人権はないので、Winのためにソースを汚すことは嫌われるから注意

708 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 16:19:36.81 ID:wARzH3D0.net]
I’m like pp, just like pp

709 名前:540 mailto:sage [2018/01/06(土) 16:33:25.64 ID:nSHs9ovb.net]
irb がクソみたいな描画ライブラリを使わずに、
GUI だけを、PowerShell を使ってくれたら良いのに。
PS なら、UTF-8 だし

ロジック・GUI が分離できていて、
簡単に、PS に切り替えられたら良いのに

710 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 10:13:45.01 ID:X58Odkk6.net]
お前は何を言ってるんだ
RubyはUNIXにべったり密結合している
それを良く思っていないのはRuby村においては被差別民であるWin使いだけ



711 名前:デフォルトの名無しさん [2018/01/07(日) 16:15:03.18 ID:Jk6U4+ev ]
[ここ壊れてます]

712 名前:.net mailto: 自演ばれてんぞアンチ []
[ここ壊れてます]

713 名前:デフォルトの名無しさん [2018/01/09(火) 00:08:55.57 ID:TW5vurZJ.net]
Windows で、Headless Chrome でテストしている香具師いる?

Windows 10, Ruby, Chrome, Selenium WebDriver は、64ビット版だけど、

Windows 用の、ChromeDriver は、32ビット版しかないけど、これで正常に動くの?

714 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 05:18:26.25 ID:l1AA5LW3.net]
rubyからOpenGLを扱うgemがいくつかあるけど、
どれが一番使われてるの?

715 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 07:11:34.91 ID:mcq0XcNK.net]
RubyはRailsにしか使われてないよ

716 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 14:13:43.58 ID:mJzCa8Tc.net]
Unicodeコードポイントにスケープされた4バイト文字をJSON..#parseすると怒られるんだけど、何かいい方法ないかな?
愚直にgsubするしかないのかな
https://ideone.com/V6sNRh

717 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 14:17:01.33 ID:hZWQBtrg.net]
断交が良い

718 名前:デフォルトの名無しさん [2018/01/09(火) 23:30:05.47 .net]
>>695
RubyのJSON.parseがUnicodeコードポイントエスケープに未対応なのかな?
「¥u{XXXXX}」を「¥uXXXX¥uXXXX」に変換してやればよさそうだけどね

719 名前:692 mailto:sage [2018/01/10(水) 07:38:19.49 ID: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 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 12:32:40.29 ID:8FRtzSYP.net]
ReactDOM.render(
<div>
<h1>Hello, world!</h1>
<h2>texttext</h2>
</div>,
document.getElementById('app')
);

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

出来れば、erb のような書き方は、避けたい



721 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 16:07:42.64 ID:STPlaxcQ.net]
ヒアドキュメントは?

722 名前:デフォルトの名無しさん [2018/01/12(金) 18:18:49.39 ID:nl8PJm0M.net]
iCloud 9のコマンドプロンプト打っても俺のパソコンに反映されないんですが助けて

723 名前:デフォルトの名無しさん [2018/01/12(金) 22:23:27.82 .net]
>>698
規格上は使えるけどRubyのJSONライブラリがまだ対応していないっぽい

724 名前:デフォルトの名無しさん [2018/01/21(日) 21:58:25.57 ID:Ycn/1JW2.net]
改訂2版 パーフェクトRuby、Rubyサポーターズ、2017

この本は、ツールの説明なども多いから、読むのに時間がかかる

725 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 21:44:30.05 ID: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 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 22:06:22.86 ID:LFdS7sNk.net]
def hoge(key, value)
x = {a: A, b: B}[key].new(value)
x.huga
x.hage
end

727 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 22:32:29.51 ID:O82cRrzF.net]
def hoge(key, value)
x = Kernel.const_get(key.capitalize).new(value)
x.huga
x.hage
end

728 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 22:52:38.55 ID:pYe1Cwj7.net]
それは、典型的なオブジェクト指向の利点

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

各派生クラスで、クラス内でオーバーライドされた、同名のメソッドを呼ぶだけ

729 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 23:04:44.47 ID:cFg1Yiat.net]
レンタルサーバーにRubyをインストールする手順に関する質問はここで良いでしょうか?
Railsの方が良いでしょうか?

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の日本語を考慮していないからじゃないの?



831 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 16:40:11.45 ID:ypGJ9h8+.net]
というかrubyコミュニティがwindowsを考慮してない。
むしろ怨み、蔑み、嫌っている。昔から。

832 名前:デフォルトの名無しさん [2018/03/02(金) 17:18:20.26 ID:0lL3/u0V.net]
>>809
そだねー

833 名前:803 mailto:sage [2018/03/02(金) 17:55:40.44 ID:mIGjbFX+.net]
console.log("あ");

Windows で、node (REPL)を実行したけど、
日本語を入力しても、PowerShell・コマンドプロンプトの両方で、正常に動く

834 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 23:07:42.42 ID:wSJnGqkk.net]
RubyはLinuxで動かすようにすればいいよ
WindowsでちょこっとしたやりたいことがあるならC#使え、と
どうせ仕事でやってるRubyはLinuxで動くんだからさ

Windowsマシンでの開発ならVMかDocker使えばすべて解決

835 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 01:14:23.68 ID:vdurK0jv.net]
ありがとうございました
ググってみたら結構前から報告されていたバグみたいなので諦めることにします

836 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 01:19:41.29 ID:GGmAMA7z.net]
>>800
$LOAD_PATHをforce_encoding()で環境に適応したエンコーディングを設定したら?
あるいは、バイナリに設定して、むりやりそれっぽいバイトデータをつっこむとか?

837 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 01:21:46.51 ID:GGmAMA7z.net]
>>808
chcp 65001とかしてもダメかね?

838 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 15:41:40.19 ID:VQ/a88pK.net]
cmd で chcp 65001 するくらいなら
git for windows インスコして git bash (mintty) 使うと幸せになれるぞ

839 名前:デフォルトの名無しさん [2018/03/03(土) 15:43:54.56 ID:x/6oRrTp.net]
65001 は右端とか折り返し表示がバグるね

840 名前:803 [2018/03/03(土) 15:49:49.91 ID:HcfLoqAp.net]
Ruby の起動オプションに、外部・内部エンコーディングか、RUBYOPT で指定できる。
ファイル内でも指定できる

それと、PowerShell・コマンドプロンプト、WSL・Ubuntu・bash で指定できる

これらの組み合わせの中で、文字化けしない組み合わせを探す

または、$LOAD_PATH の辺りで、指定するとか



841 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 17:58:14.02 ID:URsJSGy/.net]
Rubyの2.5.0p2をRubyインストーラーでインストールしたらRubyの2.5.0p0だった・・・

842 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 18:17:52.81 ID:A+Ivs8ru.net]
patchlevelはもう無いよ

843 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 18:26:46.78 ID:VQ/a88pK.net]
>>818
そんな試行錯誤は一番あかんやつや

844 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 21:39:09.27 ID:rw2aiDdk.net]
そうそう。結局 Rubyやirb に問題が有るんじゃなくて
単に >>803 が理解してないだけ

845 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 21:55:10.06 ID:GRjh9/QH.net]
そういうことだから理解できない初心者は間違ってもrubyなんか使おうと思わないようにね。
初心者や子供にruby勧めてくるのは例外なくマウント取りたいだけのクズだぞ。

846 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 21:56:04.27 ID:ETPjeMg1.net]
書籍のサンプルコードの一部です
この@memoという変数はいわゆる辞書形式のデータ構造で
[remain, pre]は辞書のキー(複合キー?)という理解でいいんでしょうか
ちなみに@を付けないとどうなりますか
変数名に記号が付くのが凄く気になります

@memo = {}
# 計算結果をメモする
@memo[[remain, pre]] = cnt

847 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 22:30:11.11 ID:gHPIEkfR.net]
>>824
[remain, pre]は辞書のキーって理解であってる
irb等のREPLで試すとすぐ分かる
@はインスタンス変数に付けるプレフィクス

848 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 00:30:02.17 ID:99M3BGnn.net]
>>825
ありがとうございました

849 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 02:42:13.82 ID:Oz1ASWrr.net]
キーに配列が使えるのか・・・

850 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 04:12:18.75 ID:aAfADGFK.net]
オブジェクトはなんでもイケるんじゃなかったっけ?
ハッシュ値さえちゃんと返せば。



851 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 11:33:10.30 ID:7gUy2hud.net]
キーにした配列を変化させた時はrehashしないとキーが一致しなくなる
文字列のキーは変化させても、キーはセットしたときのまま

852 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 11:34:10.89 ID:Oz1ASWrr.net]
なるほどね。先入観として[a,b]ってかいたら毎回newされて、
キーとしては未定義値のnil固定か、別オブジェクト扱いで不定になるか、と思えた

853 名前:デフォルトの名無しさん [2018/03/05(月) 16:37:38.89 ID:62GuhFZ7.net]
str = <<'EOT'
str = << 'EOT'

here doc で、下のように、<< の後ろに半角空白があると、文法エラーになる

それと、WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理すると、

改行コードが異なるから、不正な形式のファイルと言われる。
改行コードを、LF だけに変えると、正しく処理できる

854 名前:デフォルトの名無しさん [2018/03/05(月) 22:15:57.90 ID: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 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 17:53:15.03 ID:aK37pZ+C.net]
mode: 'rt'
で読み込めばいいじゃん

856 名前:831 mailto:sage [2018/03/05(月) 19:10:41.11 ID:62GuhFZ7.net]
options に行区切りを指定したら、

WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理できた

row_sep: "\r\n" では出来たが、
row_sep: :auto では、エラーになる

857 名前:デフォルトの名無しさん [2018/03/05(月) 21:53:10.11 ID: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 名前:デフォルトの名無しさん [2018/03/05(月) 22:05:54.92 ID:K/Y9LwEe.net]
自己解決しました。
[1] pry(main)> self.private_methods(false)
とすれば見えました。

859 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 14:39:13.23 ID:veKfJdlp.net]
1

860 名前:デフォルトの名無しさん [2018/03/15(木) 18:29:02.24 ID:5enxwtKu.net]
RubyからDB扱うときって皆は何のライブラリ使ってるの?



861 名前:デフォルトの名無しさん mailto:sage [2018/03/15(木) 19:28:59.60 ID:tIXtXy4E.net]
RubyでDBを扱う場合、プロダクションで使われているのは世界で唯一ActiveRecordのみ

862 名前:デフォルトの名無しさん mailto:sage [2018/03/15(木) 21:18:59.56 ID:OYGfq7D7.net]
インターフェースじゃん。
バックでmysqlとか動いてるぞ。
いいからちゃんと勉強しろよ。

863 名前:デフォルトの名無しさん mailto:sage [2018/03/15(木) 21:31:02.48 ID:rmXeLovx.net]
>>840
ライブラリで答えてください

864 名前:デフォルトの名無しさん mailto:sage [2018/03/15(木) 23:24:57.24 ID:xG9lbsTH.net]
>>838
ActiveRecordが大半なのは間違いない

ORMを求めてるならsequel、rom、hanami等
素のDBライブラリならmysql2, sqlite3-ruby, ruby-pg
ArelでSQLを構築してDBライブラリ使ってSQL実行してもいい

865 名前:デフォルトの名無しさん [2018/03/16(金) 15:24:05.43 ID:3ma6aQHv.net]
sqlite3

866 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 18:23:28.28 ID:2Gd98HT2.net]
>>840
Rails屋がSQLすら書けなさそうに見えて腹立つのは分からんでもないけど、今はDBインターフェースの話しかしてないぞ

867 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 23:22:04.16 ID:yiSYhWxU.net]
「Node.js超入門、掌田津耶乃、2017」を読んでいるけど、JavaScript の基本は、Ruby

Ruby のSinatra, JS のNode.js を、full scratch で書くと、ほぼ同じ

Rails, JSのExpress + Bookshelf が、ほぼ同じ

868 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 23:24:51.12 ID:3NuYtiCt.net]
掌田津耶乃ってダメな本じゃなかったか?

869 名前:844 mailto:sage [2018/03/17(土) 00:05:48.37 ID:nxO/ldT7.net]
プログラミング本では、掌田が第一人者。
Unity, UE4 などのゲームエンジンから、最近は、Python, Node.js にも進出

売れる・成長する分野には、必ず掌田が参入してくる。
業界の風見鶏

「Node.js超入門、掌田津耶乃、2017」
この本で、Sinatra, Rails を学ぶ方が簡単。
20時間ほどで読める

後は、YouTube の動画で、OK

870 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 00:10:02.58 ID:6ii9LbbD.net]
やっぱ掌田津耶乃ってだめな人だった
調べたらわかったよ



871 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 00:34:45.99 ID:4Xu/HAYS.net]
今の時代、開発速度が速すぎて誰も良い本なんか書けないよ
それを書き終わる頃には時代遅れになってるんだから

872 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 00:38:04.22 ID:6ii9LbbD.net]
いや掌田がとりわけレベル低いだけ

873 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 01:55:30.84 ID:+wQGtQt+.net]
掌田津耶乃はだめな本
山田 祥寛は良い本

という評価が一般的
掌田津耶乃は何冊か読んでいるけど、
見比べてみるとたしかにダメダメなんだなぁ。

874 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 02:08:55.36 ID:6ii9LbbD.net]
山田 祥寛もダメだろ

875 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 05:35:09.75 ID:77P/HBnW.net]
掌田津耶乃はHyoerTalkなまりのコード

876 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 09:18:19.49 ID:nxO/ldT7.net]
最近は、Python にも、なでしこの作者・クジラ飛行机、
大津真、掌田も、乗り込んできた

この辺は、売れ筋には参入してくる著者

中でも掌田は、ゲームエンジン・言語・Javaのフレームワーク・Node.js など万能

877 名前:デフォルトの名無しさん [2018/03/17(土) 12:59:20.73 ID:OC0Ef+g3.net]
またあらぶっとるんか糞荒らし
はやくRubyコミュで発言しろよ屑

878 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 14:32:15.41 ID:+wQGtQt+.net]
要はね
掌田の出版本を見てみるとわかるが、
初心者を食い物にしている
初心者専用の作者なわけよ、

だからレビューとかで
表面だけかじって書いたかのような本とか
書かれちゃうわけよ。

深く知りもしないであれだけの数の本を書けるわけないよね。
だから掌田はおすすめできないんだわ。

初心者にはいいかもしれないよ?
初心者向けの本ばかり何冊も何年も書き続けているから。

879 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 15:47:30.97 ID:uAf5LbgY.net]
商売としては全然アリだね
とっかかりが欲しい初心者いるだろうし

880 名前:デフォルトの名無しさん [2018/03/17(土) 16:43:12.02 ID:cWw1OMJa.net]
>>856
ほんそれ



881 名前:844 mailto:sage [2018/03/17(土) 19:43:45.96 ID:nxO ]
[ここ壊れてます]

882 名前:/ldT7.net mailto: デザインもカラフルで、図解してあるから、すごくわかりやすい。
売れるから、こういう外注予算が大きい

オライリーでは、図解・デザインは無いから、読むのに時間が掛かる。
図解は視覚だから、瞬時に理解できるけど、
言葉の説明だと、それを図に置き換えて、考えないといけないから大変

掌田の本は、ものすごく短時間で理解できるから、効率的。
すごく消化・吸収に良いし、
時間も節約できるから、時給換算すれば大得

漏れには、時間が掛かる・細かい・理解できない、100の知識はいらない。
短時間で、よくわかる、50の基礎知識がさえ有ればよい。
あとは動画を見て、応用するから

「Node.js超入門、掌田津耶乃、2017」
この本で、Sinatra, Rails が分かる

「10日でおぼえる jQuery 入門教室 第2版、山田祥寛(よしひろ)、2013」
この本で、Nokogiri が分かるのと同じ

本が出ていない場合とか、難しい本しかない場合に、非常に役に立つし、速い
[]
[ここ壊れてます]

883 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 09:45:02.22 ID:JzaiKxSG.net]
>>856
食い物とか、被害妄想凄いな。
お前さんがもっとマシな解説ブログでも開いたら?w

884 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 12:36:10.41 ID:Gg1K6bSi.net]
>>860
頭使ってる?
掌田津耶乃が何冊初心者用の本を出しているか知っている?
ちょっと考えれば、
英語、ドイツ語、フランス語の言語学習の本を書いたとしたら
その言語のことをどこまで知っていて本を書いているんだろうとか気にならないの?
もし気にならないんだったら、表面的な知識だけで満足しているお前とは合わないのでバイバイ ノシ

Amazon.co.jp: 掌田 津耶乃:作品一覧、著者略歴
https://www.amazon.co.jp/%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/e/B004L5AED8/ref=sr_tc_2_0?qid=1521344021&sr=8-2-ent
掌田津耶乃(しょうだつやの)。ほぼ男性。テクニカルライター兼3流プログラマ。

自分でも3流プログラマと認めているのに、まったく信者って奴は・・・

885 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 12:52:44.19 ID:QAeUSVF3.net]
こんなスレがあったで

掌田津耶乃って何者? (Late 2012)
https://anago.5ch.net/test/read.cgi/mac/1349360916

886 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 12:55:57.40 ID:QAeUSVF3.net]
基本的に流行ってるものを、ざっと調べてまとめただけなんだろうな
だから初心者レベルのところまでしか書けない
概要を知るところまでで、あれを参考にしてコードを書いてはいけない

887 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 16:36:38.11 ID:Aq9RvNC1.net]
HypaerCardの本も出してたから もう30年以上初心者向けの本出してるベテラン 

888 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 19:04:35.10 ID:Pu83I0V3.net]
Amazonのレビューでよく思うけど、海外の人は褒めるのが上手。いい面を見てる
日本人は100点じゃなきゃ糞みたいな心の狭い人が多い
初心者向けの本なんかにケチつけなくてもいいだろうに
今は公式サイトのドキュメントが充実してる時代なんだから、ほぼ公式くらいのことしか書かんだろうよ

889 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 19:43:48.34 ID:Gg1K6bSi.net]
そうだな、ネイティブと喋れない、英検準2級、TOEIC500点ぐらいの人が教えているって感じ。
そんなイメージが掌田津耶乃さん。

890 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 20:16:15.41 ID:i3culXas.net]
ご尊顔
interview-bookscan.s3-ap-northeast-1.amazonaws.com/newimg/interview_178_index.png



891 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 21:55:23.04 ID:JzaiKxSG.net]
>>861
いや長文必死にならなくても、お前さんが自分で解説するだけの知力すら無いってのは分かったから。

892 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 21:59:08.72 ID:QAeUSVF3.net]
なんで作者本人が自分で三流ですって言ってるのに、
他人が三流であると解説する必要があるんだ?

893 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 23:16:11.58 ID:Gg1K6bSi.net]
>>868
自己紹介乙

894 名前:デフォルトの名無しさん [2018/03/18(日) 23:24:43.53 ID:JFJ3EKTR.net]
Java, Ruby のフレームワークを書ける人は、少ない。
山田祥寛(よしひろ)、掌田津耶乃、宮本信二、黒田努など

山田は会社向けの、1日4万円の講座などを開いている

一方、掌田は初心者向け。
Unity, UE4 などのゲームエンジン、
Python などの売れ筋言語、
Spring などのJavaのフレームワーク、
Node.js + Express などのJavaScript のフレームワークなど、万能

山田は会社員、掌田は初心者と、ターゲットが異なる。
もし、同じターゲットなら、両雄並び立たずで、共倒れするから

895 名前:デフォルトの名無しさん [2018/03/18(日) 23:54:42.62 ID:3ZuC3w8U.net]
自演注意
自演注意
自演注意

896 名前:デフォルトの名無しさん mailto:sage [2018/03/19(月) 04:32:11.24 ID:csFbH6Mx.net]
File.open('test.txt', 'r+') do |io|
text = io.read
io.rewind

io.write 'あ'
p io.pos #=> 3

io.truncate io.pos
end

読み書き両用ファイルの、ファイルサイズを減らして、上書きできた

io.rewind で、ファイルポインタを先頭に巻き戻す。
io.truncate io.pos で、現在のファイルポインタの位置で、ファイルを切り詰める

897 名前:デフォルトの名無しさん mailto:sage [2018/03/20(火) 23:14:51.84 ID:QfE06Qcj.net]
>>870
反論すら出来ない奴は、つまらんね。

898 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 00:56:42.17 ID:p8DsWgGG.net]
変なこと聞くけどさ、rspecでさ、まあ適当にサンプル書くけど

describe "hoge do
 before do
  ・・・
 end

 context do
  let(:a) { 1 }
  ・・・
  it 'hage' do
   expect(a).to be 1
  end
 end
end

コレに限った話じゃなくて、rspecの使い方で内側のブロック(例えばitの中)から
外側のブロック(例えばcontextの中)の状態(例えば変数)を
書き換えるのを禁止にしても何の問題もないよね?もちろん参照するのはOK。
テストはどう有るべきかを考えたら、むしろそうした方が良いぐらいじゃないかって思うんだけどどうかな?

899 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 01:22:34.72 ID:qUqb4QSc.net]
ネストしたcontextで
内側のcontextが外側のcontextで設定した状態を
書き換えるような形でテストを書いても別にいいと思うけどな

900 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 01:57:04.18 ID:p8DsWgGG.net]
>>876
でもそうするとテストケース一つとか実行した時におかしくならない?



901 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 04:11:05.87 ID:rJLoGwxo.net]
>>874
自己紹介乙

902 名前:デフォルトの名無しさん [2018/03/21(水) 07:02:14.53 ID:wxFTzoek.net]
外部への依存が少なければ、個々のテストの独立性が高いから、
バグが減るし、テストを並行実行できる

それが理想だけど、実現するのは難しそう

903 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 16:09:18.41 ID:qUqb4QSc.net]
>>877
おかしくならないよ
let(:a) { 2 }とかで上書きしてみればわかるでしょ

904 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 16:22:28.39 ID:p8DsWgGG.net]
>>880
上書き?
letは新たにローカル関数を作るようなもので
親ブロックのaを上書きなんかしてないよ

905 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 16:24:44.94 ID:qUqb4QSc.net]
>>881
それ分かってるんなら
何がおかしくなると思ってるの?

906 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 16:47:19.64 ID:p8DsWgGG.net]
>>882
内側のブロックで外側のブロックの変数に値を入れた場合だよ

907 名前:デフォルトの名無しさん [2018/03/30(金) 15:22:33.47 ID:87KFZNYL.net]
Chrome 65 になったら、selenium webdriver が動かなくなったので、
chrome driver 2.37 を、ダウンロードしてみた

これで動くかどうかは、まだ試してないけど

908 名前:883 mailto:sage [2018/03/30(金) 20:31:06.53 ID:87KFZNYL.net]
新しいバージョンの、chrome driver にしたら動いた

909 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 16:44:40.27 ID:0KaYXtgi.net]
すみません、質問があります。
他人様の書いたコードを読んで写経しながら勉強していた所、
begin
#何らかの処理A(特に例外を出しそうな処理ではない)
end until hoge

という記述があったのですが、この書式の意味というか意図がいまいちつかめなくて困っています。
自分でコードを書いて試してみた所、この記述はhogeがtrueでもfalseでも処理Aを実行しており、
特に「until hoge」の部分で何を制御したいのかがわかりません。

(begin
#処理
end) until hoge

例えば、↑の書き方だと単純なuntil文の後置修飾になるので意味がわかるのですが、
上述のような書式で書く理由や、こう書くとどういうメリットがあるかを教えていただけますと嬉しいです。
よろしくお願いいたします。

910 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 16:51:30.58 ID:1KgD14Zs.net]
(と)の二文字省略できる



911 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 17:15:27.40 ID:9myXjpPz.net]
>>886
下のAとBは同じことをするんだけど、Aだと1行目と4行目が同じでもやっとするのでBのように書いているのでは
個人的にはbegin〜endをメソッドにしてこうは書かないけど
begin〜end untilのほかにもbegin〜end whileも同様

# A
i = Time.now.sec
until i % 3 == 0
p i
i = Time.now.sec
end

# B
begin
i = Time.now.sec
p i
end until i % 3 == 0

912 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 17:18:46.83 ID:9myXjpPz.net]
訂正

# A
i = Time.now.sec
p i
until i % 3 == 0
i = Time.now.sec
p i
end

# B
begin
i = Time.now.sec
p i
end until i % 3 == 0

913 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 17:32:20.95 ID:0KaYXtgi.net]
>>888-889
ご回答頂きどうもありがとうございます。
なるほど、この書式だとbegin~end内の処理が1回は必ず実行されて、
その後に条件文で判定されるようになるので、同じ処理(例だと代入処理)を2度書かなくて済むようになるんですね。

とても勉強になりました。

個人的にはコード行数が増えたり同じ処理が連続するよりも、
ひと目で意図する処理が他人に伝わらないのはちょっと嫌なのでこの書き方は真似しないようにします……。

914 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 17:40:44.12 ID:KXX7rc47.net]
いや、それはおかしい。
リトライやリドゥーみたいな処理で、必要であれば、ためらわずそう書くべき。多少わかりにくくても。
いずれ慣れるから。

なんなら、先頭にコメントをつけとけば。

915 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 17:57:12.31 ID://EuH1G7.net]
絶対的なルールではないけどこんなものもあるんで参考までに

ruby-style-guide
>後判定ループの場合、begin/end/untilやbegin/end/whileより、
>break付きのKernel#loopを使いましょう。
https://github.com/fortissimo1997/ruby-style-guide/blob/japanese/README.ja.md#user-content-loop-with-break

916 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:00:28.18 ID:ZcGM330i.net]
(なにかしら).method

do
なにかしら
end メソッド


みたいなもんだからRuby規則に沿っているだろ

917 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:17:17.82 ID:A31P7FUz.net]
>>892
後判定ループを行うのにbegin-end-while/untilが好ましくない理由を俺に教えて欲しい

918 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:21:45.55 ID:hwmab9Mq.net]
>>894
英語的にキモいからだろ
end until ってさすがに非ネイティブの俺でも不自然に感じるぞ

919 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:27:29.70 ID:Aa3HndXz.net]
英語的な自然さを求めるなら、loopをendのエイリアスということにして loop while/until かな
VBがそんな感じだったはず
まあジャップ製言語だから仕方ないね

920 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:31:46.49 ID://EuH1G7.net]
>>894
beginの中が長いと上から読んでてループするんだかrescueするんだかわかりにくいからじゃない?




921 名前:ruby-style-guideはコメントを極力書かないで済むようにするのが目的の一つだから
まあ個人的には首肯しかねるルールもいくつかあるけどね
[]
[ここ壊れてます]

922 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:43:23.68 ID:hwmab9Mq.net]
>>897
それもあるね
日本人からすると「〜〜(長い長い手続き)〜〜をループさせろ」は自然な流れだけど、
向こうの人からすると「結論から話せやファッキンジャップ」だろうな

923 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 21:03:13.03 ID:A31P7FUz.net]
>>897
ああ、なるほど
そういう観点だったのね
ありがとう

924 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 12:57:38.84 ID:g/2XFKpH.net]
ブロッキング条件なら後に来るの自然に感じる
長過ぎるとってのはどんなブロックでも同じ

925 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 13:03:59.66 ID:KugB3K+A.net]
SV
これは第一文型なんだから
文章.method
SをVするで普通の英語じゃん?

926 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 13:11:22.76 ID:6hj+x7xd.net]
おいおい…
「を」は対格を作る格助詞だぞ。
記号で書くとV(=verb=動詞)O(=object=目的語)だ。
SVは
S(=subject=主語)V(=verb=動詞)で、
S「が」Vする、だ。

927 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 13:22:58.60 ID:g/2XFKpH.net]
自然言語なんて例外だらけなんだからどうでもいい

928 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 13:41:31.43 ID:eDlvSPE1.net]
sendを使う度にモヤモヤした気持ちになる

929 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 14:10:59.70 ID:HZoT/r0A.net]
それより>>895だろうな
begin〜end系言語で結びにend whileなんて書くのrubyくらいじゃないか?
たいてい>>896みたいにendを別の単語に変えてる

930 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 18:13:06.38 ID:TBzY9DYT.net]
そりゃそもそもend書かせる主流言語が少ないし



931 名前:デフォルトの名無しさん [2018/04/03(火) 03:47:06.97 ID:hZewAlsv.net]
>>890
同じ処理を、別の場所に2回書くと、

修正時に、2か所とも修正しないといけないから、
どちらかを修正し忘れる事があるので、危険

932 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 04:10:23.05 ID:8HWTUUN8.net]
Donot
Repeat
Yourself

933 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 23:32:43.51 ID:q2DveEBR.net]
Do
Repaet
Yourself

934 名前:デフォルトの名無しさん [2018/04/04(水) 02:02:25.22 ID:h2UR4/YM.net]
Reuse
Reduce
Recycle
Ruby

935 名前:デフォルトの名無しさん [2018/04/05(木) 14:25:03.13 ID:eFdDptlj.net]
selenium-webdriver で、Chrome のHeadless mode で、
5ch の投稿者名・書き込み内容を、抜き出してみた

driver.navigate.to "https://mao.5ch.net/test/read.cgi/linux/1479499953/8-9"

elements = driver.find_elements(:css, 'div[data-id]')

elements.each do |elem|
str = elem.attribute('data-id') + ' 投稿者 :'

# CSS では、コンテキストの直下を表現できないので、xpath を使う
# str += elem.find_element(:css, '> div.meta > span.name').text
str += elem.find_element(:xpath => "div[@class='meta']/span[@class='name']").text
puts str

str = '内容 :'
str += elem.find_element(:xpath => "div[@class='message']/span").text
puts str
end

936 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 05:31:34.17 ID:Cc4pa2fK.net]
三ヶ月在れば一つのプログラム言語を習得しアプリケーションを作ることが出来るw
https://mevius.5ch.net/test/read.cgi/win/1504394535/9

おいらは習作はしない、他愛ないことはやらないのだ
https://mevius.5ch.net/test/read.cgi/win/1503735829/881-883

C#なんてのはVZの開発環境にないwww
https://mevius.5ch.net/test/read.cgi/win/1520923324/913

ワロタ、ワロタ
https://echo.5ch.net/test/read.cgi/win/1467974448/129-132

937 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 14:20:42.12 ID:JYaIVkeP.net]
10年以上前に学校でスクリプト言語を勉強してたときはPH

938 名前:Pが流行ってて
Perlもあったけど少し古いかなって感じ。ただとにかくJAVAが騒がれててJSP+tomcatなんかもやったな。
Rubyはあったけどそんなに話題にならず。
で最近、またスクライピングがやりたくて色々調べたら
もうPHPも下火?でRubyとpythonとかいう言語が主流みたいですね。
[]
[ここ壊れてます]

939 名前:デフォルトの名無しさん [2018/04/08(日) 15:16:13.15 ID:nkM5b3tX.net]
Rubyは主流じゃない

940 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 16:26:08.93 ID:ikNNlzZg.net]
PHPが下火でRubyが主流がねーわ。
人気を捏造しないと好きな言語も恥ずかしくて使えないのか軟弱者め。
たとえ世界の全てが使わなくても自分だけはRubyを使い続けるという気概を持てよ情けない奴



941 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 17:41:41.41 ID:mE+8rAwy.net]
2ch/5chでは、日本人が作ったというだけで、だめ扱いする書き込みがあるから
注意すべし。どこかぞの国から書き込まれている事がある。

942 名前:デフォルトの名無しさん [2018/04/09(月) 11:49:58.15 ID:M/BmQ9Z1.net]
以下の半角空白区切りの行から、稼働時間を求めるには、どうやるの?
夜、24:00 以上の数字もあります

2018/09/09 09:45-24:00
2018/10/10 23:00-27:15

943 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 12:21:03.03 ID:2h6IFanV.net]
>>917

date = "2018/09/09 09:45-24:00"
m = date.match(/(\d\d):(\d\d)-(\d\d):(\d\d)/)[1, 4].map(&:to_i)
min = (m[2] - m[0])*60 + m[3] - m[1]
p "%d:%d" % min.divmod(60) # => "14:15"

944 名前:916 mailto:sage [2018/04/09(月) 13:15:44.73 ID:M/BmQ9Z1.net]
ありがとう

Date, DateTime, Time などの形で、引算で求められませんか?

945 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 13:42:09.51 ID:2h6IFanV.net]
date = "2018/09/09 09:45-24:00"
m = date.match(%r!\A(?<year>\d{4})/(?<month>\d\d)/(?<day>\d\d) (?<begh>\d\d):(?<begm>\d\d)-(?<finh>\d\d):(?<finm>\d\d)\z!)
beg = Time.new(m[:year], m[:month], m[:day], m[:begh], m[:begm])
fin = Time.new(m[:year], m[:month], m[:day], m[:finh], m[:finm])
min = (fin - beg)/60
p "%d:%d" % min.divmod(60) # => "14:15"

946 名前:916 mailto:sage [2018/04/09(月) 14:17:26.06 ID:M/BmQ9Z1.net]
ありがとう

24:00 では、Time インスタンスを作れるけど、
27:15 では、エラーで作れなかった

回避策を考えてみます

947 名前:デフォルトの名無しさん [2018/04/09(月) 14:23:48.18 ID:GdkyYm9A.net]
pythonスレにマルチするのやめれ

948 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 14:39:12.15 ID:2h6IFanV.net]
>>921

date = [
"2018/09/09 09:45-24:00",
"2018/10/10 23:00-27:15"
]
begfin = lambda do |m|
d = Time.new(m[:year], m[:month], m[:day])
[[m[:begh], m[:begm]], [m[:finh], m[:finm]]].map { |hour, min|
3600 * hour.to_i + 60 * min.to_i
}
end
date.each do |d|
m = d.match(%r!\A(?<year>\d{4})/(?<month>\d\d)/(?<day>\d\d) (?<begh>\d\d):(?<begm>\d\d)-(?<finh>\d\d):(?<finm>\d\d)\z!)
beg, fin = begfin[m]
min = (fin - beg)/60
puts "%d:%d" % min.divmod(60) # => "14:15"
end
# =>
14:15
4:15

ってマルチかい

949 名前:916 mailto:sage [2018/04/09(月) 15:24:13.18 ID:M/BmQ9Z1.net]
python スレの書き込みとは別人。
ID も異なるはず

その書き込みを見て、Ruby ではどうプログラミングするべきか、考えてみたが難しかった

950 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 15:46:38.36 ID:aj6Oy7j8.net]
「ruby 24」検索

Ruby で 24 時超えの時間を楽ちんにパースする方法 - Qiita
https://qiita.com/ruzia/items/5e2cae142479b8a5c364



951 名前:916 mailto:sage [2018/04/09(月) 16:17:52.99 ID:M/BmQ9Z1.net]
d = Time.new(m[:year], m[:month], m[:day])
d_next = d + 60 * 60 * 24

24時以上の場合は、hour から24を引いて、1日足すけど、これはややこしい

952 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 21:36:13.46 ID:0VIzl/J9.net]
クソコードばっかりだなw

953 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 22:04:45.24 ID:cXk52I1j.net]
25以上の数字の入力を許している次点でクソコード。

954 名前:916 [2018/04/10(火) 00:28:34.01 ID:oEQHPFsL.net]
表計算ソフトなどで、時間管理していると、こういう表記もある。
2018/10/10 23:00-27:15

上を一旦、変換して
2018/10/10 23:00-24:00
2018/10/11 00:00-03:15

これも、1日足すのも結構、難しい。
Date, DateTime に変換してから、1日足さないと、月末・うるう年などで、バグる

>>926
>d_next = d + 60 * 60 * 24
これで1日足すのも、うるう秒の時が、どうなるか不安

955 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 00:34:12.01 ID:PJbB3F/q.net]
時刻じゃなくて時間を表すクラスが欲しくなるな

956 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 01:03:05.44 ID:TtMX4ea2.net]
24,60,60進法による演算ということね

957 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 03:53:20.97 ID:gEpzqPRo.net]
時間は最重要項目なんだから
完璧なライブラリとか無いのかな?

958 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 08:52:25.96 ID:OCO/nUgk.net]
RubyのDateTimeは充分以上だよ。
日付を増減するときは、それ時分秒の値はさわらずに、めんどくさくても日の値を変更すればいい。

959 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 08:58:36.32 ID:wPoJQnkn.net]
じゃあエポックタイムで十分だな。めんどくさくても計算すればいい。

960 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 09:31:38.98 ID:Pta2sQP4.net]
DateTimeは完璧なライブラリだから24時以降はRangeErrorになる
完璧な仕様だ



961 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 09:55:10.36 ID:wPoJQnkn.net]
rubyの不便はいい不便

962 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 17:47:37.08 ID:yDOt+2aU.net]
rubyに不便なんてないぞ
何を言ってんだ

963 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 18:25:57.56 ID:6CkCb20Q.net]
えーっ、そんなこといちいち書かなきゃいけないのw?rubyなら組込メソッドで一発だよwww
「時間は?」
       ____
    /      \
   /  ─    ─\
 /    (●) (●) \ 必要ない。計算すればいい
 |       (__人__)    |
 \     ` ⌒´   /
,,.....イ.ヽヽ、___ ーーノ゙-、.
:   |  '; \_____ ノ.| ヽ i
    |  \/゙(__)\,|  i |
    >   ヽ. ハ  |   ||

964 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 18:40:12.63 ID:+90qRIYS.net]
RubyはUNIX文化だから、時刻はUNIXタイムスタンプを生で扱うのが基本
MRIのコアの連中自身が使ってないから改善されないんだろう

965 名前:デフォルトの名無しさん [2018/04/11(水) 00:12:29.76 ID:5V3NvSPI.net]
rubyなら日本の休日祝日にも対応してるはず

966 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 07:23:56.00 ID:jfPKheqL.net]
【短命に終わった】国民の祝日.csvをパースして変換するRubyプログラムとコード解説
https://youtu.be/h0WlWPfQ0Sw

伊藤淳一の動画ある

967 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 22:47:53.01 ID:Hxh7hpmx.net]
Windowsの文字エンコードはどうなってんだよ呪われてるな。

968 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 22:56:58.03 ID:AzlDcdDn.net]
Windowsの文字エンコードはLinux/Unixよりも対応の幅が広い。

まずNT系は古くからUnicode(UTF-16)に対応
Unicode対応アプリであれば全世界で共通に使える

それでいて9x系との互換性のために、Unicodeに対応してないアプリは
それぞれの国のエンコード設定が使用される

その設定はコントロールパネルから変更できるのだが
その変更できる文字コードがLinux/Unixよりも遥かに多い
しかもANSIと互換性がない文字コードでも使用可能

969 名前:デフォルトの名無しさん [2018/04/14(土) 03:27:42.04 ID:lnTeyTPJ.net]
chcp 65001 バグ治してから言え

970 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 03:48:53.88 ID:6pCy057f.net]
>>944
それはどちらかと言えばコマンドプロンプトの問題なんだが、
WSL対応関係で強化されて、めだった



971 名前:s具合なくなってるよ []
[ここ壊れてます]

972 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:31:41.02 ID:r1bqrkta.net]
OneDriveでコード管理していたのだけど、
久しぶりにコーディング(エディタはVSCode)してOneDrive上のRubyファイルを実行しようとしたら
[BUG] Segmentation fault
というエラーがでて、
puts 'A'
というコードさえ実行出来なくなっていた。

ローカルハードディスクに落としたら実行出来たんだけどどうしたものだろう。

973 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:49:45.43 ID:0NMpmKAm.net]
UTF-16とかじゃねーの?

974 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 22:51:17.13 ID:MhEmdnyU.net]
そっか。
ありがとうございます。

別にOneDriveをストレージにしても問題ないということだね。
試行錯誤してみます。

975 名前:デフォルトの名無しさん [2018/04/15(日) 23:30:04.01 ID:xpwShDOv.net]
WebDAVか

976 名前:945 mailto:sage [2018/04/16(月) 07:27:54.33 ID:1U+gAd+J.net]
GoogleDrive上のRubyファイルは動いた。

何か仕様変更があったのかしら。
ともかく、現状、GoogleDriveでコード管理することにします。

977 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 08:55:29.96 ID:PnJWHI/9.net]
なぜGitを使わないのか
BitBucketなら無料でプライベートリポジトリ持てるぞ

978 名前:デフォルトの名無しさん [2018/04/16(月) 09:47:03.26 ID:75OnkAat.net]
Azureで自前のgitとSSH鯖で桶

979 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 09:53:08.11 ID:PnJWHI/9.net]
AzureならGitはVSTS使うのが普通だろ
AWSならCodeCommit使えば完全無料だ
今時たかがGitのホスティングごときにサーバー運用の手間かけるとか頭悪すぎ

980 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:08:13.69 ID:pZQ1SPWZ.net]
じゃあ、これも
Google Cloud Platform でホストされている複数のプライベート Git レポジトリ
https://cloud.google.com/source-repositories/?hl=ja

5ユーザー、50GBストレージ、50GB通信量(下り)まで無料だから
個人用途なら無料で使えそうだね



981 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:10:23.68 ID:pZQ1SPWZ.net]
> AWSならCodeCommit使えば完全無料だ

AWSの方は完全無料なのか?って思ったら
やっぱり無料制限あるじゃんw
だいたい一緒みたいね

https://aws.amazon.com/jp/codecommit/pricing/
最初の 5 人のアクティブユーザー
50 GB のストレージ/月
10,000 回の Git リクエスト/月

982 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:31:35.04 ID:X9HGFo0K.net]
>>955
実働20日として一人あたり一日平均100コミット?
これ超過できる超人いるのかよ

983 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:33:36.56 ID:X9HGFo0K.net]
いやコミットじゃなくてプッシュやフェッチか
人間の手動操作なら事実上無制限だな

984 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:40:27.16 ID:pZQ1SPWZ.net]
>>957
1 push 1リクエストとは限らんぞ、どういう計算しているか知らんけど、
例えば1 pushに含まれる1ファイルが1リクエストになってるかもしれない
そう考えるとGoogleの方がわかりやすいかもね。

985 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:45:48.83 ID:pVewTO76.net]
>>958
ファイル単位なら1万くらいcloneや最初のpushで一発で超過するじゃん
一般的な使い方で超過することはめったにないって書いてるからさすがにそれはないだろ

986 名前:デフォルトの名無しさん [2018/04/16(月) 15:08:56.12 ID:lu0LQeBN.net]
>>960
踏んだらすれたてよろしく

987 名前:デフォルトの名無しさん [2018/04/16(月) 15:17:41.22 ID:r1/f7Sud.net]
うんこ

988 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 15:20:39.48 ID:pZQ1SPWZ.net]
↑うんこ踏んだ奴

989 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 16:18:05.44 ID:ZFIHRn8x.net]
うんこってrubyのこと?

990 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 17:10:36.81 ID:tsXOlUfW.net]
>>953
gitだけしか使わないわけないだろ



991 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 17:25:19.50 ID:pZQ1SPWZ.net]
>>964
今はgitの話では

992 名前:H
他のことしたいなら、他のもの使えばいいだけだし
gitは○○を使うって話をしてるんだよ
[]
[ここ壊れてます]

993 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 18:47:04.65 ID:PnJWHI/9.net]
>>965
たぶん963は、サーバーをGitだけでなく他の用途にも使うと言ってるんだと思うよ
すごく筋の悪い思考だと思うけどね

994 名前:デフォルトの名無しさん [2018/04/17(火) 03:27:09.27 ID:QMWYQNUe.net]
スジはなめるためにある

995 名前:デフォルトの名無しさん [2018/04/17(火) 17:49:09.11 ID:GYuBFjQi.net]
次スレ
Ruby 初心者スレッド Part 63
https://mevius.5ch.net/test/read.cgi/tech/1523954817/

996 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 23:55:53.10 ID:AHLVIZ+p.net]
>>966
なんで筋が悪いと思うんだ?

997 名前:デフォルトの名無しさん [2018/04/18(水) 00:43:52.27 ID:lRwbg5zI.net]
>>968
おつ

998 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 01:12:53.91 ID:6DBcsPYG.net]
>>969
逆に聞くが、あえてGit自前運用かつサーバー相乗りという選択肢を選ぶ積極的な理由が何か一つでもあるの?
コストが高い、信頼性が低い、運用が面倒臭い、便利なWebインターフェイスもない、CIなど外部との連携もしづらい
また、サーバーに複数のサービスを同居させるのは、運用が面倒になるので一般的には避ける方向で検討するのが基本だ
オンプレならハードのコストやハード運用も勘定に入れた結果そうせざるを得ない場合も多いが、
クラウドなら安く小さいサーバーを沢山持ててハード運用の手間もないから問題にならない

999 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 01:21:24.00 ID:UfQjex1N.net]
関数の取扱いが非常に筋の悪い言語があるらしい。
何かしらのメソッドとして表したいという、初期設計時のオナニーがこの事態を招いた。
block、proc、lambdaと笑っちゃうくらいぐっちゃぐちゃ。
どういうときにどの形式使えばいいのか、変換するルールは…
はい、お約束。全部覚えましょうw
一事が万事この調子だよなw
そのうち「3+5を計算する機能」レベルで組み込まれてしかも数通りバリエーションが仕込まれそうw
宣伝文句は「えーっ、3+5計算するのにそんなこと書かなきゃいけないの?wそれrubyなら組み込みの呼び出すだけで一発だよ?ww」

1000 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 02:03:46.12 ID:1MQV5vND.net]
>>971
git使うだけで面倒とかどれだけ初心者想定してんだよ
うちはredmineと連携させてるからwebからも見れるよ
バックアップも他と一緒にとってるから楽よ
別にホストがクラウドでないなんて言ってないし



1001 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 02:08:25.73 ID:1MQV5vND.net]
サーバーが、か

1002 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 16:47:32.90 ID:vghG7n/V.net]
ぼくがRubyを使う理由
www.eimei4coding.blog/entry/2017/07/17/164923

1003 名前:デフォルトの名無しさん [2018/05/03(木) 09:37:28.31 ID:vrPjbtA8.net]
なんかbundlerがエラー吐くようになってしまって困っています。
対応策は知りませんか?

Traceback (most recent call last):
2: from /usr/local/bin/bundler:23:in `<main>'
1: from /usr/local/lib/site_ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/usr/local/lib/site_ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)

1004 名前:デフォルトの名無しさん [2018/05/03(木) 12:26:03.69 ID:vrPjbtA8.net]
bundler -v
も動かないです。

1005 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 14:39:04.35 ID:M52LYEAa.net]
コンバトラーV

1006 名前:デフォルトの名無しさん [2018/05/03(木) 15:03:53.22 ID:bkPu29QU.net]
super electromagnetic yoyo

1007 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 19:04:14.74 ID:9RHeN1ko.net]
sudo gem install bundler

1008 名前:デフォルトの名無しさん [2018/05/04(金) 16:02:47.13 ID:FNtgJ1dj.net]
>>913
Ruby、Pythonが主流なのか?

俺、Ruby使いだけど、主流言語使ってる気分にはなれない。

1009 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 16:16:59.88 ID:YzOLlJfQ.net]
今主流言語と言えるのはJavaScriptのみだからね

1010 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 16:24:40.64 ID:plo/RuVs.net]
google、ms・・・流れ込んでる資金量・人員数が違う
あれだけ人・金かけられたらどんなクソ言語でも主流になる
そうさせたのはブラウザで唯一実行可能というアドバンテージだったがそういう意味では今後はrustやgoにも可能性はある
rubyはそれもない



1011 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 17:01:30.15 ID:HDydWALv.net]
>>983
Dartの悪口はそこまでだ

1012 名前:デフォルトの名無しさん [2018/05/08(火) 04:34:33.88 ID:ws+EcsEk.net]
@lru_cache(maxsize=None)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)

>>> [fib(n) for n in range(16)]
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]

Ruby には、上のPython のような、デコレーターは無いの?

上はフィボナッチだが、引数・答えを、メモ化するような関数はある?

1013 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 07:23:01.16 ID:6Z/Mi3tg.net]
>>985
古い記事だけど、例もフィボナッチでちょうどよさげ
mickey24.hatenablog.com/entry/20100906/1283769623

1014 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 07:44:23.18 ID:6Z/Mi3tg.net]
gem もあった
https://github.com/matthewrudy/memoist

1015 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 09:01:44.06 ID:ws+EcsEk.net]
class A
def initialize (a = 5)
@a = a
end
p (0..@a)
end

p a = A.new

>p (0..@a)
@a が初期化されていないのか、エラーになる

クラス内の地の文は、A.new・initializeよりも、先に実行されてしまうのか?

>>986-987
ありがとう

1016 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 09:09:56.84 ID:XzXTdruW.net]
>>988
その通り。具体的にはファイルを読み込んだ時に実行されるよ

1017 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 12:18:20.40 ID:XzXTdruW.net]
スレたてられなかったから誰か代わりに建ててくれないか

>>988
ついでだけどその書き方だと p (0..@a) の @a は A のインスタンスのインスタンス変数じゃなくて、 A という『Class クラスのインスタンス』のインスタンス変数だから注意ね

1018 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 14:05:39.62 ID:XzXTdruW.net]
と思ったら結構前に次スレ立ってたんだね……重複しなくてよかった
https://mevius.5ch.net/test/read.cgi/tech/1523954817/

1019 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 22:51:57.39 ID:FvmTtIIh.net]
>>988
クラス内の文は、記述順に実行される。
defは、メソッド定義の宣言部というよりは、実行文なので、同様。

1020 名前:987 mailto:sage [2018/05/08(火) 23:24:38.69 ID:ws+EcsEk.net]
class A
def initialize (a = 5)
@a = a
puts "init : #{@a.class}" # 1
end

puts @a.class # 2
end

p a = A.new
p b = A.new(2)

出力結果
NilClass

init : Integer
#<A:0x00000000050dc230 @a=5>

init : Integer
#<A:0x00000000050dc078 @a=2>

実行前のファイル読み込み時に、1回だけ、#2 puts が呼ばれて、
initialize内の#1 puts は、new 毎に呼ばれる



1021 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 23:28:50.06 ID:XzXTdruW.net]
当たり前だと思うのだが、何が言いたいのか不明

1022 名前:デフォルトの名無しさん mailto:sage [2018/05/09(水) 00:19:25.75 ID:p+TFQEkm.net]
ファイル内の空行数を数える

ruby -e "puts File.read(\'test22_data.txt\').scan(/^$/).length"
ruby -e 'puts File.read(\"test22_data.txt\").scan(/^$/).length'

Windows PowerShell で、1-liner を実行する際、
クォーテーション内に、クォーテーションがある時に、\ でエスケープしないと、
PowerShell が、内側のクォーテーションを除去してしまって、エラーになるけど、
皆こういう場合、どうしてる?

1023 名前:デフォルトの名無しさん mailto:sage [2018/05/09(水) 00:37:53.06 ID:aySw10Ot.net]
WindowsでRubyは苦行

1024 名前:デフォルトの名無しさん mailto:sage [2018/05/09(水) 02:06:31.30 ID:VltSHCvQ.net]
>>995
%qクォートを使う。

1025 名前:デフォルトの名無しさん [2018/05/09(水) 08:36:03.80 ID:DadRmw9B.net]
>>996
+1

1026 名前:デフォルトの名無しさん [2018/05/09(水) 08:36:55.27 ID:DadRmw9B.net]
>>997
ほんそれ

1027 名前:デフォルトの名無しさん [2018/05/09(水) 08:37:56.36 ID:DadRmw9B.net]
>>995
1-liner にこだわるのはなぜ

1028 名前:デフォルトの名無しさん [2018/05/09(水) 08:38:27.55 ID:DadRmw9B.net]
Ruby 初心者スレッド Part 63
https://mevius.5ch.net/test/read.cgi/tech/1523954817/

1029 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 166日 8時間 2分 58秒

1030 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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