Ruby 初心者スレッド Part 63

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/04/17(火) 17:46:57.87ID:GYuBFjQi
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

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

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

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

逆引きRuby
http://www.namaraii.com/rubytips/
2018/07/20(金) 03:16:38.47ID:1XJtiOGK
この人は本物のアレな人なんで、これからもずっと居続けるだろうし、
我々が我慢するしかないのですよ
2018/07/20(金) 03:37:35.66ID:ez2x5oas
やっぱりそうだったか
ID:/HPmTQSMはNGにつっこんで無視するとして自演はどうする?
いくらでもIDを変えられるだろこいつ
2018/07/20(金) 03:45:11.39ID:1XJtiOGK
さすがの自覚なし
2018/07/20(金) 04:10:11.54ID:VbQ1skD1
荒らしを擁護する奴とか明らかにネガキャン狙いの奴は自演だろうし、
片っ端からチェンジで良いんじゃね?
2018/07/20(金) 07:18:12.34ID:jshWd164
初心者質問ですいませんがwebサービスを実装した時の認証って一般的にはどのようにしているのでしょうか

単純なhtmlからajaxでwebサービス叩くのは簡単ですが、認証も伴うとなるとgetやpostでどう実現しているのか不思議に思いまして
2018/07/20(金) 08:22:04.91ID:p6o0GwEl
twitter api とかは、oauth認証を使っている

gem 'twitter'
gem 'oauth'
gem 'omniauth-twitter'
410デフォルトの名無しさん
垢版 |
2018/07/21(土) 22:42:46.60ID:R3kyCjkl
今、mrubyってのを組み込み用に作ってるんだよな確か
Cで書かれてる実装の移植じゃダメな理由でもあるの?
2018/07/21(土) 22:52:36.66ID:H6KFndt4
>>410
MRIはUNIXに依存してるから組み込みでは使い物にならない
2018/07/21(土) 23:14:05.95ID:BkDv2dG7
> 今、mrubyってのを組み込み用に作ってるんだよな確か

今・・・作っている・・・?

もう何年も前から聞く名前だが
終わらないプロジェクトじゃないかw
413デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:24:14.10ID:PhJqS+u6
誰も何も要求してないから要求仕様というものが無いwwwww
打出の小槌wwwww
2018/07/21(土) 23:38:11.33ID:HTyh/4m5
なんかもっと作って欲しいものあるんだけどな……
2018/07/21(土) 23:41:32.25ID:H6KFndt4
補助金貰ってるから作ってるポーズだけは続けなきゃいけないんだよ
MRIのコミッタ達が飯食えなくなったらそれこそ終わりだぞ
2018/07/21(土) 23:43:21.12ID:HTyh/4m5
Rubyと組み込みってあんま相性良さそうに思えない
Windows(GUI)とかAndroidとかもっと進出して欲しかった
2018/07/21(土) 23:44:35.25ID:HTyh/4m5
あと最近Pythonに押されてる理由の機械学習系のライブラリとか
リソース投入して欲しい分野他にいっぱいあるのに
2018/07/21(土) 23:45:26.60ID:H6KFndt4
そういう海外の特定企業のプラットフォームに依存したものだと補助金貰いにくいからね
機械学習は今のRubyにはできる人材がいないから無理
419デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:45:28.95ID:R3kyCjkl
>>411
ラズパイやなんかはほぼlinuxの組み込み用ディストリだろ?
別にunix依存でも組み込みで遊べれば良いんじゃないかと個人的には思う

というかなんか荒らしが湧いてるな
2018/07/21(土) 23:45:36.53ID:Q1eQHcZd
スマフォは端末20億ぐらいが今の所上限、人口から計算するとそうなる。
IOTになると300億ぐらいになると言われている。
だから市場としては組み込みのほうが遥かにデカイんだ。
421デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:48:41.96ID:R3kyCjkl
もしかして来てるのは運用情報板からか?
2018/07/21(土) 23:53:39.13ID:H6KFndt4
>>420
補助金の申請書に書くには良い説明だね
現実にはそれは詭弁で、何百億もばら撒かれるような大量生産するデバイスに、
ラピッドプロトタイピングを売りにしてるmrubyなんか使われる訳がないんだよね
一方プロトタイピングでコストを気にしないならラズパイ的なLinuxボードでフルのRuby動かせばいいわけで、完全に論理的に破綻してる
423デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:58:26.26ID:R3kyCjkl
ああ、商業的にmrubyを組み込み市場にって事か
ホビー的なものやプログラム教材的なものも含めればそれなりに大きいし
2018/07/22(日) 00:09:52.37ID:k8KbWpzZ
IoTで夢はひろがりんぐ
でも現実はJavaScriptとPythonに
シェアをゴリゴリ取られてる
2018/07/22(日) 00:14:01.72ID:csMVOBEm
Ruby本体のパーサってツール使って書かれてるの?
それとも手作業?

ずいぶん前に何かツールつかって書かれてる、みたいな記事を見た記憶があるんだけど
あやふやで思い出せない
2018/07/22(日) 00:38:46.00ID:KbQrJm7H
>>419
いや組み込み用っていうかそういう組み込みじゃない
linux動くなら普通のruby使えばいいし
427デフォルトの名無しさん
垢版 |
2018/07/22(日) 00:39:36.44ID:8Nb060qV
あんなに嘘を書き込んでたネガキャン厨が出てこなくなった
何故だ?
428デフォルトの名無しさん
垢版 |
2018/07/22(日) 00:41:39.08ID:8Nb060qV
あ、425の質問か
俺は知らない
2018/07/22(日) 00:55:20.77ID:ZYdHEl+H
bison と言うツール(と言うことが聞きたい?)
2018/07/22(日) 01:01:34.78ID:ZYdHEl+H
カーネル(?)オブジェクトと一緒にリンクしてローダからジャンプして起動される様な組み込み。それこそファイルシステムも無いようなものもターゲット。
2018/07/22(日) 08:45:50.30ID:sunXcUq/
>>425
この本に書かれていたような気がする。
https://www.ohmsha.co.jp/book/9784274050657/

確かツールでは上手くできなくて、独自のものを使っているだったような。
2018/07/22(日) 09:11:02.92ID:mb9TeYz9
>>431
残念、どう見てもbison(yacc)です
https://github.com/ruby/ruby/blob/e70cad609109d111f6474d4001455a6dae70d453/parse.y
相変わらずrubyistはいい加減なことばかり言うね
433デフォルトの名無しさん
垢版 |
2018/07/22(日) 13:32:44.36ID:LiIRy0eu
rubyは始まる前に終わってしまった
2018/07/22(日) 16:27:12.16ID:y3TgOVe7
はいはい
435デフォルトの名無しさん
垢版 |
2018/07/22(日) 16:27:40.65ID:8Nb060qV
質問を普通に読むと、
パーサジェネレータに食わせるソースを人手で書いてるのかツールで出力してるのか、
聞いているんだと思うんだが

例の荒らしは日本語が不自由なの?
436デフォルトの名無しさん
垢版 |
2018/07/22(日) 17:19:25.94ID:bmpyz9fo
>>435
元の質問ってこれだよね
>>>>425
>> Ruby本体のパーサってツール使って書かれてるの?
>> それとも手作業?

普通に読むと、パーサのコードがジェネレータで自動生成されているのか、
あるいは手書きでゴリゴリとパーサをC言語で書いているのか?という内容で、
>>429>>432が適切なレスを返している(>>431は知ったかぶりのお馬鹿さん)

で、それに対して日本語が不自由と噛み付く>>435の日本語読解力に対して小一時間

ちなみに、Rubyの構文解析(パーズ)に関しては、
以下の文書、いわゆる RHG - Ruby Hacking Guide で詳しく解説されてる
・Rubyソースコード完全解説
 http://i.loveruby.net/ja/rhg/book/
2018/07/22(日) 17:43:50.81ID:o4y3Fl/D
>>431の本は読んだことないけど、いくらRubyistが書いた本とはいえそんな低レベルな間違いをするとは思えないから実際の記述が気になるな
独自に作ったと書かれてるのってパーサじゃなくて字句解析器のことだろうか
字句解析器は手書きでも比較的簡単に作れるので、パーサは自動生成で字句解析は手書きというのはよくあるよね
2018/07/22(日) 18:27:03.98ID:NHUbC5Q3
標準ライブラリのRipper クラスで、字句・構文解析ができる。
文法規則から、Bisonでパーサを作る

文法規則(parse.y) → Bison → パーサ(parse.c)

「Rubyのしくみ」に書いてある
2018/07/22(日) 18:30:21.91ID:mu5XaGiF
Rubyの文法は、改行が文のセパレータだったりなかったりするので、yaccでは書きにくそうな気も。
440デフォルトの名無しさん
垢版 |
2018/07/22(日) 21:20:30.98ID:bmpyz9fo
>>437
>独自に作ったと書かれてるのってパーサじゃなくて字句解析器のことだろうか

Rubyの字句解析器は(次で詳しく書くけど)手書きだから、「独自に作った」には該当しないね

で、>>431の書籍は手元にあるから「独自に作った」部分を推測すると、p68 第3章の
囲み記事にある「YARV命令を間近に見てみる」の内容ではないかと思われる
この記事によると、Rubyの仮想マシン YARV の命令セットはC言語で実装されているが、
実際には insns.def という命令セット記述向け外部DSL(ドメイン特化言語)で書かれており、
Rubyで書かれた独自ツールを用いてC言語ソースが自動生成される、とある


>字句解析器は手書きでも比較的簡単に作れるので、
>パーサは自動生成で字句解析は手書きというのはよくあるよね

うん、よくある
ただし、Rubyに関しては字句(トークン)の意味が文脈によって異なるので、
字句解析器を汎用的なツール(Flex, Lex)で自動生成するのは原理的に無理
だからRubyでは字句解析器をC言語で(=手書きで)ゴリゴリ書いてる
2018/07/22(日) 21:35:50.53ID:8Bgo+1zG
   /__.))ノヽ
   .|ミ.l _  ._ i.)
  (^'ミ/.´・ .〈・ リ
  .しi   r、_) |  字句解析器はわしが独自に作った
    |  `ニニ' /
   ノ `ー―i´
442デフォルトの名無しさん
垢版 |
2018/07/23(月) 02:58:02.91ID:4FKdTwd5
parse.yって結構な量になるだろ
まじで手書きなの?
443デフォルトの名無しさん
垢版 |
2018/07/23(月) 03:30:44.45ID:+9p86R5q
flexはライセンスの問題があるのに対して、bisonは解決してるので、字句解析だけ手書きという場合もありそう。
444デフォルトの名無しさん
垢版 |
2018/07/24(火) 01:24:57.08ID:USIMmUbR
やっぱり理解してないな
2018/07/24(火) 11:09:18.60ID:5ghygOWP
def hoge(ary)
  if ary.length > 10

  略
end

def hoge(ary)
  return ary.pop if ary.length > 10
  略
end
2018/07/24(火) 11:14:14.74ID:5ghygOWP
途中で投稿しちゃったすまん

hoge1を書く時にhoge2みたく1行でぱぱっと書いてしまいたくなるんだけど、あまり良くない書き方かな?
return ary.popの値を別に使うわけじゃないから却って読みにくくなってるかな?
同様にbreak(ary.pop) if 〜 みたいなこともやりたくなる

def hoge1(ary)
  if ary.length > 10
    ary.pop
    return
  end
  略
end

def hoge2(ary)
  return ary.pop if ary.length > 10
  略
end
2018/07/24(火) 11:21:15.47ID:5ghygOWP
かといって (ary.pop; return) if 〜 とは書きたくないんだよね
2018/07/24(火) 12:11:36.42ID:pu7GMHRK
却ってもなにも普通に読みづらい
やる事がpopとreturnの2つあるんだから素直に別々に書け
2018/07/24(火) 14:03:55.04ID:gr6cAZAi
偉そうだな
2018/07/24(火) 15:44:55.28ID:5ghygOWP
>>448
サンキュー 横着しないで書くことにするわ
451デフォルトの名無しさん
垢版 |
2018/07/26(木) 23:53:19.41ID:a+YNJ8TA
ワンライナーで横着して書くのはすごい便利だぞ
2018/07/27(金) 10:42:21.60ID:/FxeI0LB
忘れた頃に見直すと凄く読み辛いけどな。
453デフォルトの名無しさん
垢版 |
2018/07/29(日) 03:07:55.01ID:F6Tmnrz5
普通、ワンライナー書いて通ったら、
早めにリファクタリングするだろ

そんな後々まで残しておかないよ
2018/07/29(日) 10:44:14.48ID:BDdNcrbI
しょせんワンライナーにそんな手間をかけるかよ。
2018/07/29(日) 10:54:49.57ID:lzRBxehA
どうでもいいだろ
どうせRubyなんか後でメンテできないんだから、後でばっさり捨てても惜しくないくらいの簡易な実装を心掛けたほうがいい
2018/07/30(月) 15:23:19.49ID:i4fPEMEN
一昔前の Web プログラミング言語のトレンドは動的型付け一辺倒でしたが、
その時代も終わり、静的な型宣言を再評価するフェーズが来ているように思います。
この背景には、おそらく Web プログラミングの規模が年々肥大化しており、
動的検査のコストが増してきたのが理由にあるでしょう。
457デフォルトの名無しさん
垢版 |
2018/07/30(月) 17:43:04.50ID:sQTL1Bwj
JSONに型情報含められたらな
2018/07/30(月) 18:13:38.72ID:hiT7ttnh
JSONに日付型入れられたらな
459デフォルトの名無しさん
垢版 |
2018/07/30(月) 22:30:45.90ID:vVxxmyMz
まーたネガキャンしとんのか
ほんと懲りないな荒らしは
2018/07/31(火) 00:20:31.75ID:2+1mdxB2
ステマ荒らし VS ネガキャン荒らし

ネガキャンじゃないやつは
ステマ荒らしだよw
461デフォルトの名無しさん
垢版 |
2018/07/31(火) 05:56:12.03ID:CsKbzYRR
ステマ荒らしとか、粘着はどういうアタマしとんねん
462デフォルトの名無しさん
垢版 |
2018/07/31(火) 05:58:46.14ID:A5W680W/
>>461
2018/07/31(火) 06:33:34.00ID:M5dn2TAr
だから大規模開発は、Haxe

ソースコードをそのまま送って、10言語に変換できる
2018/07/31(火) 06:37:15.77ID:2+1mdxB2
>>463
変換できたってライブラリを使った時点で破綻するんだから意味ない
jQueryを使ったコードをC++に変換したって動くわけない
465デフォルトの名無しさん
垢版 |
2018/07/31(火) 07:27:58.69ID:CsKbzYRR
ス テ マ 荒 ら し

↑の粘着のセンスって最悪やな
2018/07/31(火) 07:57:18.48ID:w8271+58
RubyスレでRubyのステマ荒らし?
こわいわー
いやマジでこわいわー
2018/07/31(火) 08:19:37.62ID:JoTrRiyA
荒らし「ステマ荒らしVSネガキャン荒らし(ドヤッ)」


凄い語録が誕生したな
468デフォルトの名無しさん
垢版 |
2018/07/31(火) 09:08:38.32ID:kmul1JEG
粘着さんは自演でネガキャンしないと発作が起きちゃうから、
みんな優しくしてあげて
けっして「ステマ荒らし(ドヤッ)さん」なんて呼んではだめですよ

話は変わるけど、
ブロック内のself省略したらself以外のオブジェクトが割り当てられるようなメソッドってどんくらいあるの?
2018/07/31(火) 10:24:26.97ID:c3b7dR5Y
>>468
1つもない
2018/07/31(火) 10:36:43.29ID:f5dopGkZ
Rubyの実用ライブラリはどこにある?
471デフォルトの名無しさん
垢版 |
2018/07/31(火) 11:15:46.71ID:kmul1JEG
self省略って便利なのは便利なんだよな
いちいちselfって書かなくて良いから
472デフォルトの名無しさん
垢版 |
2018/07/31(火) 11:53:47.74ID:xRXvz4C9
@と勘違いしてないか
2018/07/31(火) 12:07:44.84ID:3hAWRCkR
自分は静的型の恩恵を受けてRubyを開発しているのに
その言語のユーザーにはそれを与えない、まさに鬼畜の所業
それだけに留まらず、動的型の方が優れていると嘘を教え込み
人の人生観や世界観を台無しにして囲い込み
骨までシャブりつくす姿勢は流石の宗教家
「Rubyをキメると気持ちいい!」
474デフォルトの名無しさん
垢版 |
2018/07/31(火) 12:10:34.26ID:kmul1JEG
質問の間に色々レスがついたからもう一度書くわ

ブロック内のself省略したらself以外のオブジェクトが割り当てられるようなメソッドって何があるの?
スレの上の方になんか関係しそうなコードが書いてあったから疑問に思ったんだけど
2018/07/31(火) 12:22:51.02ID:H1jTAdrX
意味がわからない文章だが、コンテキストが入れ替わってることを言いたいのかな
そんなメソッドは作っただけ存在するけど
2018/07/31(火) 12:23:01.25ID:cZMkkV3A
ステマ荒らし(ドヤッ)さんはネガキャンがほんとうに大好きだな

>>474
mapのやつ?
2018/07/31(火) 12:54:43.34ID:c3b7dR5Y
>>474
1つもないっつってるだろ
2018/07/31(火) 13:07:28.97ID:cZMkkV3A
>>477
ステマ荒らし(ドヤッ)さんは帰って
どうぞ
479デフォルトの名無しさん
垢版 |
2018/07/31(火) 13:12:42.46ID:zoworXJJ
>>474
継承を使えば普通だけど、何か別の事柄を期待しているのかな?
  irb(main):001:0> class Foo; def foo; puts 'FOO'; end; end
  => :foo
  irb(main):002:0> class Bar < Foo; def bar; foo; end; end
  => :bar
  irb(main):003:0> Bar.new.bar
  FOO
  => nil

  2行目、メソッド Bar#bar の定義内で self を省略したメソッド foo が
  呼び出されているけど、この時、実際には Bar(= self) ではなく
  Foo が割り当てられる


>スレの上の方になんか関係しそうなコードが書いてあったから疑問に思ったんだけど

アンカって知ってる?
2018/07/31(火) 13:21:24.28ID:Zh449vmZ
意味がわからないから具体例出せ
2018/07/31(火) 13:22:06.05ID:i+0VO+yy
.map{}やらの中のselfの事だろ
なんかこの粘着、時々日本語の読解がおかしくなるよな
2018/07/31(火) 13:31:30.22ID:H1jTAdrX
書いてる本人しかわかってないから、自演が惨めすぎるんだが
2018/07/31(火) 13:32:54.45ID:0cuGom8L
やっぱり荒らしてるのは星持ちか
484デフォルトの名無しさん
垢版 |
2018/07/31(火) 13:34:24.76ID:zoworXJJ
>>481
>.map{}やらの中のselfの事だろ

具達的なコードで示すか、過去レスのアンカをカキコしる
485デフォルトの名無しさん
垢版 |
2018/07/31(火) 13:36:32.60ID:Sn2VrW8x
@と勘違いしてるっぽい
2018/07/31(火) 13:39:02.09ID:0cuGom8L
以降ずっと自演が続きます
2018/07/31(火) 18:34:59.85ID:KsiqHYAS
eval系メソッドのこと?

https://ideone.com/znQz3T
2018/07/31(火) 19:21:07.27ID:M5dn2TAr
JavaScript, TypeScript では、this が文脈で変わるので、ややこしい!

それを避けるため、jQuery, Haxe では変わらないようにしている
489デフォルトの名無しさん
垢版 |
2018/07/31(火) 19:49:00.54ID:0cuGom8L
以降もずっと自演が続きます
490デフォルトの名無しさん
垢版 |
2018/07/31(火) 23:54:26.33ID:wYvVLkW6
>483デフォルトの名無しさん2018/07/31(火) 13:32:54.45ID:0cuGom8L
>やっぱり荒らしてるのは星持ちか


このレスがついてから急にレスが付きづらくなったね
491デフォルトの名無しさん
垢版 |
2018/07/31(火) 23:58:45.81ID:PrQlt9wc
図星
2018/08/01(水) 01:48:47.30ID:i67K/6im
RustってちょっとRuby臭がするんだけど、近づいてみるとC++の時に嗅いだ嫌な臭いがして頭がクラクラする
493デフォルトの名無しさん
垢版 |
2018/08/01(水) 02:22:55.90ID:09aZWOww
ブロック付きメソッドで与えられたブロックを、
メソッド内でしかも別のコンテキスト下で処理したいんだけど方法ってある?
2018/08/01(水) 02:39:34.28ID:GZaAdjmn
【初心者必見!】Ruby evalを理解し活用するための4つのTips
https://www.sejuku.net/blog/21273

instance_eval, class_eval, module_eval とか?
495デフォルトの名無しさん
垢版 |
2018/08/01(水) 03:04:07.48ID:09aZWOww
誰か踏んでみて
2018/08/01(水) 03:50:19.21ID:2bwlZxeu
>>493
あるけどevilだしめんどくさいやめとけ
2018/08/01(水) 04:25:42.64ID:9f0eyaeN
贅沢なビール
2018/08/01(水) 10:00:59.65ID:/KJnVmCM
プロゲートから先に進めないwww
2018/08/01(水) 12:21:49.98ID:FFxaCJen
今からRuby勉強してルビィスト名乗ってドヤ顔できる?
アンタらのように下々どもの言語ディスる能力ほしいんだけど
2018/08/01(水) 12:30:40.81ID:GDPBpnE0
今やRubyはディスられる側
2018/08/01(水) 12:54:34.39ID:SPXi67Wg
もはやAppleにいらない子扱いされてるObjective-Cすら超越した近寄っちゃあかん言語の筆頭
https://pbs.twimg.com/media/Di_fIwmUUAES3Lk.jpg
2018/08/01(水) 13:36:49.31ID:FFxaCJen
単純により給料がいい言語に移ってるだけでRuby開発はどこもやりたいんだよね?
企業が欲しい言語エンジニアとエンジニアがやりたい言語に違いがあるだけじゃない?
2018/08/01(水) 14:03:43.11ID:BDoQYqGC
残念ながらこれが現実よ
言語としてエンジニアから嫌われてる
https://japan.zdnet.com/article/35109803/
504デフォルトの名無しさん
垢版 |
2018/08/01(水) 18:58:35.84ID:09aZWOww
またステマ荒らし(ドヤッ)さんがネガキャンしてる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況