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/
613610の続き
垢版 |
2018/08/09(木) 01:30:54.45ID:bbq6MBnq
>>611のコマンド|
2018/08/09(木) 01:31:25.52ID:bbq6MBnq
nkf CP932に変換するオプション

ってやれば、APIでコソンールに出力した結果が
UTF-8からCP932に変わるぞ。
2018/08/09(木) 01:32:23.81ID:bbq6MBnq
>>608
APIでコンソールに出力してるから
なにがどうなの?

ruby なんたら.rb | nkf CP932に変換するオプション

ってやれば、APIでコソンールに出力した結果が
UTF-8からCP932に変わるぞ。
2018/08/09(木) 01:35:28.21ID:bbq6MBnq
>>612
だから、RubyがAPIでコンソールに出力しようとしたものを
パイプで標準出力に変更して、nkfで標準入力からAPIで読み取って
nkfでSJISに変換してからAPIでコンソールに出力すればいいだけでしょ?
2018/08/09(木) 01:36:28.36ID:bbq6MBnq
「windowsはAPIでコンソールに出力してるから」が
意味不明なんで意地悪してみたw
2018/08/09(木) 01:38:12.71ID:bbq6MBnq
ruby なんたら.rb | [nkf CP932に変換するオプション]

って書くと書き込みできないんだなー
ってあれ?できた?おかしいなw
2018/08/09(木) 01:39:04.01ID:fUyWPXJG
めんどくせえなあ。SJISに変換とかアホみたいなことしなくても、WriteConsoleWってAPI使ってユニコードで書き出すようになってるんだよ
2018/08/09(木) 01:39:15.49ID:bbq6MBnq
クソ5chの意味不明な制限で書き込めないときは
わざと5chに負荷をかけて細かく分けて書き込むことにしてる
すべては5chが悪い

>>608
APIでコンソールに出力してるから
なにがどうなの?

ruby なんたら.rb | [nkf CP932に変換するオプション]

ってやれば、APIでコソンールに出力した結果が
UTF-8からCP932に変わるぞ。
2018/08/09(木) 01:41:07.24ID:bbq6MBnq
>>619
だからchcp 65001してれば、
WriteConsoleWってAPI使ってユニコードで書き出したものを
ちゃんと表示できるし、

chch 65001しなくても
WriteConsoleWってAPI使ってユニコードで書き出したものを
ruby なんたら.rb | nkf [CP932に変換するオプション]ってやれば
ちゃんと表示できるっていってるだろ

WriteConsoleWってAPI使ってユニコードで書き出した
からなんだって言うんだ?
2018/08/09(木) 01:42:44.19ID:fUyWPXJG
chcpする必要なんてないってことだよ
もういいかげんわかって
2018/08/09(木) 01:42:47.80ID:bbq6MBnq
rubyの中でCP932のデータを扱おうとするから
バカを見るんやで? rubyの外側で変換すればいい
文字コードの問題なんてなんもありゃせん
2018/08/09(木) 01:44:29.76ID:bbq6MBnq
>>622
あのな、

chcp 65001しないと、
日本語のWindowsではコマンドプロンプトが
互換性のためにCP932モードになってるから

WriteConsoleWってAPI使ってユニコードで書き出したものを
そのまま表示すると、UTF-8をCP932だと解釈して文字化けするんやで?

だからchcp65001しろって言ってるんだが
2018/08/09(木) 01:46:19.73ID:bbq6MBnq
ちなみにWindowsは内部はUnicode(UTF-16)で扱われている
これはずっと前からだ
2018/08/09(木) 01:47:15.18ID:fUyWPXJG
表示できてて、そこは問題じゃないって言ってるのに、そんなに問題があることにしたいのか
2018/08/09(木) 01:49:18.61ID:bbq6MBnq
>>626
それはRubyのソースコードがCP932になってるから、
俺は最初からRubyをUTF-8で書けと言ってる。

いい加減CP932から離れろよ。
そんなもんRubyの外部で変換すりゃいいだけの話なんだよ

https://www.rubylife.jp/ini/japan/index5.html
> そしてプログラムを保存する時は文字コードをUTF-8に指定して保存します。
>
> 通常はこれでいいのですが、Windowsで標準出力としてコマンドプロンプトを
> 使用している場合、コマンドプロンプトの文字コードがShift_JISのため
> そのまま「print」メソッドなどで出力すると文字化けします。
2018/08/09(木) 01:50:52.45ID:bbq6MBnq
RubyのせいにしたいのかWindowsのせいにしたいのか知らんが
結局文字コードについてちゃんと理解してないだけじゃねーかw
2018/08/09(木) 01:56:15.25ID:p715oxsr
これも全部文字コードが乱発されてるのが悪い
なんでこんなに増えちゃったん?
2018/08/09(木) 01:59:58.57ID:bbq6MBnq
アホメリケンが1ビットも惜しいとか抜かして
1文字で7ビットのASCIIコードを作ったのがそもそもの問題

最初から全世界の文字が入り切る24bitぐらいに
していればこんな問題は起きなかった
2018/08/09(木) 02:03:35.96ID:bbq6MBnq
今のUnicodeの全文字数を表すには、17ビットじゃたりないんだな
18ビットあればしばらくは対応できるだろうが十分かと言われると心もとないな
最低でも20ビットぐらいほしいかな
2018/08/09(木) 02:38:39.80ID:ro52D2nE
>>607
外部ツールを使うこと前提は普通対応しているとか使えるとはいわなくね?
WINEを使えばLinuxでも動くからLinux対応などとうたうWindowsアプリケーションはほとんどないし逆も同様
コードページをUTF-8にしろだのnkfをつかえだのナンセンスすぎる
Windows標準のキャラクタコードはUnicodeか日本ならCP932だし、変換もRubyで完結できるべきだ
633デフォルトの名無しさん
垢版 |
2018/08/09(木) 04:43:02.02ID:V297VUOg
なんや?
アンチはRubyの文字環境の設定もしらんのか?

しったかばっかりしとるツケやな
2018/08/09(木) 06:35:40.44ID:DDec2yNS
WindowsでRails開発してるけどcloud9使ってるからWindows環境に依存しない
そもそも環境構築すらいらん
クッソ楽だよ
2018/08/09(木) 07:06:07.44ID:xHgFHFx+
VSCode から、PowerShell を使えば、UTF-8 だから問題ない

ただし、Windows で、irb は日本語でバグるから使えない。
irb を使う時は、WSL から使う
2018/08/09(木) 07:30:43.69ID:0kLiomIS
おいおいRubyistはVSCode使っちゃダメだぞ
VSCodeはJSをわざわざ静的型言語に魔改造したTypeScriptによって作られている
そんなものをRubyistが使うということは、静的型の勝利を認めるようなものだ
2018/08/09(木) 07:35:03.56ID:FPQoEIfF
糖質乙
638デフォルトの名無しさん
垢版 |
2018/08/09(木) 10:40:37.59ID:9RYWVA0H
そんなこと言ったらそもそもさんざんバカにしてきたjavascriptで動いてるVSCodeなんて恥ずかしくて使えないだろw
639デフォルトの名無しさん
垢版 |
2018/08/09(木) 11:09:39.07ID:NXkdt6vr
>>603
chcp 65001 は糞だな
git for windows の bash 使うと utf-8 で統一出来る
2018/08/09(木) 11:25:09.25ID:hJgBQsKI
故Coffeeが押されてた頃以来しばらくRails触ってないから最新の事情に疎いんだけど、今のRailsでは生JSかbabelが普通?
さすがにまさかTypeScriptは意味不明なダブスタ状態になるからありえないとは思うけど
2018/08/09(木) 11:38:01.60ID:FPeke3PG
静的言語にものすごいコンプレックスあるんだな
2018/08/09(木) 12:45:27.94ID:VXkLrSCu
そうなんです
物凄いコンプレックスがあるんです
夜も眠れません
2018/08/09(木) 14:22:48.49ID:ohdBTUS2
そもそもWindowsで開発ってエンジニアとして恥ずかしいからやめな
ド素人専用OSだから
2018/08/09(木) 15:01:11.67ID:SXE6an9g
そんなこと言ったら、rubyで開発とか恥ずかしいよ
2018/08/09(木) 15:54:50.43ID:cj+buD3F
>>632
> 外部ツールを使うこと前提は普通対応しているとか使えるとはいわなくね?

対応して無くていいよ。Unicode(UTF-8)だけに対応していれば十分
2018/08/09(木) 19:54:10.11ID:FPQoEIfF
>>640
Webpackerが基本だから好きなの使えばよろし
2018/08/09(木) 22:07:11.04ID:VXkLrSCu
Pythonが2018年も人気ナンバーワン言語に - Rubyは13位へ
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/

>日本生まれのプログラミング言語Rubyの順位は昨年の12位から13位へと一つ順位を落としています。
648デフォルトの名無しさん
垢版 |
2018/08/09(木) 22:10:32.15ID:VXkLrSCu
https://findy-code.io/engineer-lab/github-programming-language-ranking
↑「衰退するかもしれない言語」のRubyのグラフ凄すぎ
2018/08/10(金) 00:57:10.05ID:brZGYtP0
RubyInstallersのRuby + Devkit 2.5.1-2(x64) でインストールしたら
トロイの木馬検知したんだけど、これ大丈夫なんか……
650デフォルトの名無しさん
垢版 |
2018/08/10(金) 09:30:05.88ID:YB7aDEkK
基本、主流のレンタルサーバではどこもRuby標準装備だろ
個人でやるならRubyしか手は無いぞ?
2018/08/10(金) 09:36:16.62ID:umhN1xPo
ここにもWindowsアンチがいますね
2018/08/10(金) 09:43:53.11ID:6tv0/oL9
pythonも標準装備です。
ただしどちらもかなり古いのしか入っていないです。
https://help.sakura.ad.jp/hc/ja/articles/206053142--さくらのレンタルサーバ-基本仕様

今だに1.8.7って・・・
2018/08/10(金) 09:57:36.47ID:xFUN9Bm6
>>650
管理者権限のないレンサバでやるとか拷問好きの変態だけだろ
2018/08/10(金) 10:15:24.49ID:6tv0/oL9
xxenvが使えりゃ取り敢えずなんとかなるけどな。
pathに嵌ったりするけど。
2018/08/10(金) 19:54:03.17ID:zkC5iPOW
今はVPSとかHerokuとかそういうの使う方が主流だよね
2018/08/10(金) 20:43:42.88ID:USnz8/j9
>>651
教祖がWindowsアンチだから仕方ない
残念だがRuby界においてWindows使いに人権はない
2018/08/11(土) 11:11:35.63ID:7RaYhU06
ヘロクくっそ高いからどうなんだろ
2018/08/11(土) 11:26:47.51ID:XbF2QFnV
宗教以外で今時Herokuを選ぶ理由はないでしょ
PaaSならGCPとかAWS Lightsailとかにしとけ
HerokuとAWS/GCPじゃスキルとしての価値にも差がありすぎる
2018/08/11(土) 11:35:49.25ID:/QURPuCG
へ、ろくなことないな
2018/08/11(土) 14:03:49.96ID:4P7sy+nG
へろくあさく
2018/08/11(土) 18:57:17.82ID:Llo9t+It
いやしかし機械学習という神風でPythonがRubyを吹き飛ばしたよね
特にこれから始めようとする人で、Ruby選ぶ人って激減なんじゃないかと
2018/08/11(土) 20:01:06.87ID:vW2Ha+vq
>>661
このお盆休みに Rails をやっているのだけれども…
2018/08/11(土) 20:43:53.14ID:XIJj5NjC
>>661
機械学習とWeb系は別物だからね
適材適所ということだね
2018/08/11(土) 20:58:17.22ID:ZIqkCNIu
Rails使う奴らが他言語使いを見下しているから嫌われるんだよ
2018/08/11(土) 22:08:57.73ID:nLKVRTP/
今更Railsはなあ
第2のPHPとして当分は健在だろうけど、もう美味しい時期をとっくに過ぎてRails専のエンジニアは買い叩かれてるのが現状
2018/08/11(土) 22:20:15.20ID:3iVckqAr
python用のwebフレームワークもいくつかあるけど、railsの出来には全然かなわんの?
rubyもnumpyとかあればなあ
2018/08/11(土) 22:27:06.60ID:vW2Ha+vq
>>665
みなPHPに移ったんですか?
2018/08/11(土) 22:33:39.18ID:edehoOie
>>666
Rubyの言語仕様はイカれてるからな。
よくもわるくも。
2018/08/11(土) 22:43:26.29ID:XIJj5NjC
>>666
Django が一番有名なんだろうけど、開発スピードは Rails の足元にも及ばないね
670デフォルトの名無しさん
垢版 |
2018/08/12(日) 01:48:34.69ID:evL76NL4
>>576,577
関数型プログラミングという視点であれば、JS は良い言語だね
どちらも出発点として関数型言語をベースに設計された言語だから、当然の帰結と言える:
 http://peace.5ch.net/test/read.cgi/tech/1409526637/857/

ただし、あえて「Rubyによる関数型プログラミング」に慣れると
JS にイラッと感じる(=楽しくない)のは:
・条件分岐の if/switch が(式ではなく)文であること
  Ruby であれば if/switch (を含めて「あらゆるすべて」)は式だから、ML や Haskell と同様、
  いちいち一時変数を持ち出さずに書ける
・匿名関数の function() は煩わしい
  匿名関数が多用されるのは map/filter といった関数を引数渡しするケースだけど、
  Ruby であればブロック引数という独特な構文があるから簡潔に書ける
ってことかな(あくまで個人の感想ですが)

ちなみに、これらの感想は以下の文書からの受け売りだったりします:
・Rubyによる関数型プログラミング
 (*1) URL はNGワード規制によってカキコできないので、
 もしも興味のある人は「Rubyによる関数型プログラミング Arnau Sanchez」でググッてください
なお、この文書で筆者は:
 Rubyは基本的には命令型言語であるけれど、 関数型プログラミングへの際立った潜在能力がある
と断じています

(*1):規制されるほど、この文書はム板管理者にとってヤバイ内容が含まれているんですかねぇ?
   2012年と5年も昔に公開された、今のRuby使いにとっては常識的な中身だと思うんですけど
671デフォルトの名無しさん
垢版 |
2018/08/12(日) 01:58:20.16ID:km10YFtC
def式じゃないじゃんjsのfunctionは式だぞ
672デフォルトの名無しさん
垢版 |
2018/08/12(日) 02:01:02.80ID:evL76NL4
>>577
>Rubyは第一級関数ではないという致命的な欠陥がある

JSとは異なり、Rubyだと関数は一級市民ではない」という指摘を
具体的なコードで示したのは、おそらく自分が最初だと思うけど:
 https://mevius.5ch.net/test/read.cgi/tech/1503644351/210/
そこでもカキコしたように「制限」であって「致命的な欠陥」ではないんだよね

>>670でも書いたように、一級市民としての関数が重要になるのは
メソッド(or 関数)の引数値として匿名関数を渡すケースだけど、
Ruby ではまさにその目的のためブロック引数という特殊な構文が用意されている

もし反論があるなら、具体的なコードで示したほうが理性的ではないかと思われます
673デフォルトの名無しさん
垢版 |
2018/08/12(日) 02:10:52.79ID:evL76NL4
>>671
関数型プログラミングを実践すると自然に匿名関数を多用することになるわけですけど、
JS はいちいち function とタイプしないといけないから煩わしい、という意味です

たとえば ML族の Standard ML だと fn、同 OCaml だと fun、Haskell に至っては
¥ が匿名関数を表すキーワードです
ここまで「JavaScript による関数型プログラミング」が普及し常識になった現時点で
振り返れば、function ではなく fn とか fun という予約語にできなかったのか?と

なお、関数宣言のキーワード function は、それが宣言を目立たせる意味で長いキーワードを
採用したと考えれば、納得できるのですけどね
2018/08/12(日) 02:47:33.34ID:2UQfVx23
Ruby にはブロックスコープがあるし、
関数スコープでは、関数外部からの変数を通さない

Rubyの偽は、false, nil の2つだけ

Rubyは厳格だけど、JS, Python, PHP などは、ややこしい
2018/08/12(日) 08:39:08.05ID:PenCp7yX
>>673
> JS はいちいち function とタイプしないといけないから煩わしい、という意味です

なるほど。ではこのコードのどこにfunctionがあるのでしょう?

var materials = [
'Hydrogen',
'Helium',
'Lithium',
'Beryllium'
];

console.log(materials.map(material => material.length));
// expected output: Array [8, 6, 7, 9]
2018/08/12(日) 10:53:04.11ID:avkK3Y0e
ruby狂信者に「他言語では…」って話しすると黙りこくって見下すのは経典に書いてるのか?
どんなruby狂信者に聞いてもどいつも同じ精神なのがものすごく気持ち悪い
アレなんなんだろうな
2018/08/12(日) 13:10:26.06ID:Z9n0yF1g
Rubyは左翼言語だからね
678デフォルトの名無しさん
垢版 |
2018/08/12(日) 13:15:59.90ID:rtSL/abo
>>664
見下される側なのにな
679デフォルトの名無しさん
垢版 |
2018/08/12(日) 13:22:05.89ID:rtSL/abo
>>670
rubyに関する内容がヤバイんじゃなくて
archive。fo
がだめなだけ
2018/08/12(日) 15:02:35.22ID:YGBUsYMx
>>675
それ、もうブラウザでも使えるんだっけ?
JavaScriptは新機能を使っていいかどうか、いちいち考えないとイカンのがめんどくさい。
なおRubyも、バージョンのよる差異がうざい模様。
681デフォルトの名無しさん
垢版 |
2018/08/12(日) 15:37:44.45ID:f+bxV/sn
rubyって昔複数引数取る関数
foo bar baz
って書けたよね。
でも今は
foo bar, baz
だよね。
2018/08/12(日) 15:50:08.86ID:ZHEExUj+
>>681
1.8.7でも foo bar baz は foo(bar(baz)) なんだね
683デフォルトの名無しさん
垢版 |
2018/08/12(日) 16:22:12.92ID:evL76NL4
>>675
失礼しました、ES2015(ES6)で導入されたアロー関数ですね
ということで、>>670 の:
>・匿名関数の function() は煩わしい
という項目に関しては取り下げます


>>680
調べてみると、主要なブラウザの最新版であれば利用できるようです
まあ JS も Ruby も新機能の扱いを「めんどくさい」とか「うざい」と
感じることはあります
ただし、どちらも「後方互換性の維持」という言語進化の基本原則を
遵守しているのは共通していますから「新機能を使わない」という
選択肢も残されているわけです
684デフォルトの名無しさん
垢版 |
2018/08/12(日) 16:28:13.10ID:fdgGBvne
bar が関数じゃなければいい
685デフォルトの名無しさん
垢版 |
2018/08/12(日) 16:28:29.68ID:evL76NL4
>>679
情報提供、ありがとうございます
MANGO板にて特定のページが規制されているのではなく、
サイト全体が規制されていることを確認できました

・NGワード絞り込みスレッド★118
 http://agree.5ch.net/test/read.cgi/mango/1533547792/324-326/
686デフォルトの名無しさん
垢版 |
2018/08/12(日) 16:34:41.05ID:evL76NL4
>>681
昔って、いったいいつの時代なんだろう
自分は 1.6 の時代だからかれこれ20年は使ってるけど、
foo bar baz と書けたという記憶が無い

もしかすると 1.4 とかそれ以前には書けたのかな?
興味深いね
2018/08/12(日) 18:33:45.33ID:YGBUsYMx
>>683
JavaScriptはともかく、Ruby は「後方互換性の維持」を遵守しないぞ。
バージョンアップは、過去のコードをだいたい壊す。
次も、文字列の原則immutable化が控えているだろ。
688デフォルトの名無しさん
垢版 |
2018/08/12(日) 18:46:02.88ID:f+bxV/sn
それはjs以外たいていみんなそうなんじゃ?pythonしかり。
689デフォルトの名無しさん
垢版 |
2018/08/12(日) 18:50:42.36ID:U04Z7MLo
>>168
今どきにbabelも使わずフロント開発してるところなんて業務系SIerくらいしかないでしょ
690デフォルトの名無しさん
垢版 |
2018/08/12(日) 18:59:19.04ID:U04Z7MLo
>>683 のミス
2018/08/12(日) 22:37:17.71ID:YGBUsYMx
>>688
互換性維持の優先が高い言語はあるぞ。
C,C++,C#,Perl5はずっと更新されてきてるが、過去のコードを壊したことがほとんどない。
RubyやPythonと違って、システムの重要なところを担ってる自覚がある模様。
692デフォルトの名無しさん
垢版 |
2018/08/12(日) 22:37:51.94ID:evL76NL4
>>687
>JavaScriptはともかく、Ruby は「後方互換性の維持」を遵守しないぞ。

いや、Ruby は(も?)新機能の導入には保守的ですよ
たとえば Ruby の特徴である既存のクラスの振る舞いを後から上書きできる
オープンクラス、これには利点と欠点が共存してるけど、これに対応しようとする
refinement の提案は「後方互換性の維持」を理由に却下され続けたけど、
その壁を乗り越えてようやく 2.1 で採用された

もしも遵守しない例があるなら、具体的なコードで示してね(>>675 みたいに)


>次も、文字列の原則immutable化が控えているだろ。

え、frozen_string_literal オプションがあるでしょ?


>>688
いやぁ、バージョンアップしたら Hello world すら構文エラーになる Python みたいな
言語などとは一緒くたにされたく無いですね

・Rubyの設計上の欠点とは何か?
 https://mevius.5ch.net/test/read.cgi/tech/1413113999/123-126/

Python2 の時点ですら全プログラミング言語でも人気トップ10、スクリプト系言語に限れば
圧倒的に首位を独走というメジャーな言語が、Hello world すら構文エラーになるという
基本原則「後方互換性の維持」を頭から無視したバージョンアップを断行するなんて、
過去のプログラミング言語の歴史を振り返ってもあり得なかった歴史的快挙(暴挙?)ですよ
とうていマイナー言語の Ruby なんかじゃあ到底まねできないですわ
2018/08/12(日) 22:53:39.94ID:YGBUsYMx
>>692
結局、互換を壊してるじゃん。w
そんなのは保守的と言わないんだよ。
多少の不満は飲み込んででも、過去のコードを重視しないといけない。
オプションで選択できるとか、いいわけにならん。

例が知りたきゃググれ。
スコープとかメソッドとかいろいろあって、思い出すのもバカらしい。

ま、それがRubyの道なんだろうから、それはそれでいいんだよ。
ヘンに言い繕わずに、互換性は低いと冷静に受け入れてれば。
2018/08/12(日) 23:37:02.17ID:f4ISMjBp
現実無視の机上の空論w
昔のC/C++コードを一切の修正なしで再利用できるケースが実際にどれだけあるというのだ
2018/08/12(日) 23:42:34.82ID:2UQfVx23
>>683
JS のアローと、function()無名関数は、スコープ・this の挙動が異なる

非同期処理などで異なる。
別のもの

JSは、Rubyの影響を受けて、ドンドン変化していく
2018/08/13(月) 01:14:37.00ID:0A70z83v
>>694
え?w
697デフォルトの名無しさん
垢版 |
2018/08/13(月) 05:17:38.38ID:LxScEq40
>>693
>オプションで選択できるとか、いいわけにならん。

では、以下のコードを python3 で動かす方法はあるんですか?
 https://mevius.5ch.net/test/read.cgi/tech/1413113999/126/
え、オプションすら存在しないのぉ???
オプションすら許さない >>693氏のオレ様基準に従えば、
いいわけ以前の「後方互換性の断絶」であり「致命的な互換性の問題」ですね


>例が知りたきゃググれ。
>スコープとかメソッドとかいろいろあって、思い出すのもバカらしい。

え、これだけ「Rubyはゴカンセイガァー」と騒いでおいて、
ご自身では具体的なコードすら書けないんですか?
情けないですね、自分ならスコープやらいくつかRubyに関する
「些細な互換性の問題」を示してあげることもできるんですけど


>ヘンに言い繕わずに、互換性は低いと冷静に受け入れてれば。

いやぁ JS と比較すれば互換性は低いですよ
あちらはECMAScriptという国際標準の強い縛りがありますからね
でも Hello world すら動かなくなる最底辺 Python と比較すれば遥かに高い

そもそも具体的なコードも示せないくせに、
ナゼか「上から目線で」オレ様理論を押し付けるのは、
Rubyアンチに共通する性癖ですね
2018/08/13(月) 08:54:49.38ID:aWjwgJVg
Selenium WebDriver を使って、Nokogiri で、DOM を構築して、
JavaScript(JS) を使って、そのDOMで、body 以下を更新しようとしたが、エラーになる

つまり、DOMの構築には、JSではなくNokogiriを使った。
なるべく、JSではDOMを構築したくない。面倒だから

p inner_body = %(<div class="thread">あ</div>) #=> "<div class=\"thread\">あ</div>"

jsCode = <<"EOT"
var element = document.querySelector('body');
element.innerHTML = "#{ inner_body }";
EOT

driver.execute_script jsCode # JavaScript を実行

ただし、下のように書くと、body以下は正常に更新される。
element.innerHTML = '<div class="thread">あ</div>';

違いは「\"thread\"」の、ダブルクォーテーションのエスケープなのかな?
Nokogiriで構築したDOMを、JSにどうやって渡せば良いのか?
2018/08/13(月) 09:17:49.80ID:TQG/Mzv/
> Nokogiriで構築したDOMを、JSにどうやって渡せば良いのか?

うん、でもいま面倒なことになってるよね?
700デフォルトの名無しさん
垢版 |
2018/08/13(月) 12:07:18.53ID:BGJ7CoIJ
>>686
試してみようと思ったんだけど1.6より前のバージョンどっからダウンロードすればいいんだ…
https://www.ruby-lang.org/en/downloads/releases/
2018/08/13(月) 13:11:20.37ID:0A70z83v
>>697
Rubyアンチアンチは、だからめんどくさいんだよな。
そんなに必死にならんでもええよ。w
2018/08/13(月) 20:08:09.68ID:1mtdXF6K
それがルビリスト
皆呆れてるだろうが
個人的にすごく良い流れなので
もっと頑張れ
2018/08/13(月) 20:18:46.74ID:1mtdXF6K
一言で言えば左翼と同じメンタル
何故そうなるかは長くなるから書かないけどな
2018/08/13(月) 21:11:49.15ID:xCIuVPx6
政治の話は無駄に荒れるからやめろ
705698
垢版 |
2018/08/13(月) 23:52:36.83ID:aWjwgJVg
p inner_body = %(<div class="thread">あ</div>) #=> "<div class=\"thread\">あ</div>"

以下は、jsCode を、puts, p したもの

(A) element.innerHTML = "#{ inner_body }"; の場合

var element = document.querySelector('body');
element.innerHTML = "<div class="thread">あ</div>";

"var element = document.querySelector('body');\n
element.innerHTML = \"<div class=\"thread\">あ</div>\";\n"

(B) element.innerHTML = '<div class="thread">あ</div>'; の場合

var element = document.querySelector('body');
element.innerHTML = '<div class="thread">あ</div>';

"var element = document.querySelector('body');\n
element.innerHTML = '<div class=\"thread\">あ</div>';\n"

A は、" の対応が崩れるから、ダメ。
一方、B は正常に処理される

どうやれば、変数をBのように展開できるのか?
2018/08/14(火) 00:10:36.77ID:ALsxTVnQ
'#{ inner_body }'
707698
垢版 |
2018/08/14(火) 00:39:13.09ID:6NKcX7Ow
p inner_body = %(<div class="thread">あ</div>) #=> "<div class=\"thread\">あ</div>"

以下は、jsCode を、puts, p したもの

>>706 の、
(C) element.innerHTML = '#{ inner_body }'; の場合。
>>705 の(B) と全く同じになった!

var element = document.querySelector('body');
element.innerHTML = '<div class="thread">あ</div>';

"var element = document.querySelector('body');\n
element.innerHTML = '<div class=\"thread\">あ</div>';\n"

"#{ inner_body }"
'#{ inner_body }'

まさか、シングルクォーテーションで変数展開できるとは!
神!
708698
垢版 |
2018/08/14(火) 00:47:37.74ID:6NKcX7Ow
5ch ブラウザみたいに、スレに書き込んである画像のURL を、
自動的に、<img> に展開して表示するものを自作している

Selenium WebDriver を使って、Nokogiri で、DOM を構築して、
JavaScript(JS) を使って、そのDOMで、body 以下を更新しようとしている

わざわざ、Sinatra, Vue.js などを使うまでもない。
標準添付ライブラリのERB は、使っても良いかも
709デフォルトの名無しさん
垢版 |
2018/08/14(火) 10:11:41.38ID:UwXfpacN
>>703
なるほど
腑に落ちる意見
2018/08/14(火) 10:12:57.81ID:QAItGFSf
自演乙
711デフォルトの名無しさん
垢版 |
2018/08/14(火) 19:28:42.42ID:0jKmoemw
Action Cableを使用してるアプリってもうある?
2018/08/14(火) 20:22:35.95ID:cWcfj41B
BIOSが夏時間に対応していると、OSの時刻までずれてしまう
これ比較的最近の話だからな


http://naitaku.hatenablog.com/entry/2017/04/06/012238

> RTCにはタイムゾーンや夏時間を扱う仕組みは一般にはありませんので、
> OS側でタイムゾーンや夏時間を管理することになります。
> (実はRTCに夏時間を扱う仕組みがあって誤発動したというのが今回の原因なのですが)

> RTC の Daylight Savings Enable (DSE) という機能について
> 現代のOSでは上で述べたようにタイムゾーンや夏時間を管理しているのですが、
> 昔(DOSとかの時代?)はOSはそんな賢い機能はなくRTCの時刻がそのままローカルタイムでした。
> そんな時代に夏時間を扱うためにハードウェア的に実装されたのが DSE という機能です。

> またブコメで「日本のタイムゾーンにしていれば夏時間は自動的にオフになるはず」というものがありましたが、
> DSEの設定値はOS上の夏時間の設定とは無関係です。OSは上で述べたように夏時間を管理していますので
> RTCが勝手に1時間進んだり遅れたりすることは想定していないはずです。
> したがって現代のパソコンではDSEは無効になっているのが正しいです。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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