Ruby 初心者スレッド Part 66

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)
垢版 |
2020/01/04(土) 01:15:34.30ID:X7t3Qsuc0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で

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

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

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

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2020/01/09(木) 20:26:41.00ID:sfRV4jRV0
>>47
そうなんですか
まだRubyをどう使うか勉強中の身ですが、Rubyそのものの仕組みも面白そうですね
2020/01/09(木) 21:53:54.80ID:VxfXfT1S0
>>49
RSpecっぽいのはSpek
RSpecとはちょっと違うけどBDDを謳っててメジャーなのはSpock
あとCucumberはJavaにも対応してる
2020/01/09(木) 22:05:09.38ID:edJ5p5Tx0
>>50
スペルチェックの話はテストと全く関係ないですよ
テスト以前の問題
2020/01/09(木) 22:54:54.76ID:C+kuIm3o0
>>53
スクリプト系言語では意味があるんだよなあ。
2020/01/10(金) 00:36:36.31ID:hCTYsry70
>>54
今はgoの話ですよ?
goはスペルチェックさえすればテスト不要だとでも?
5647 (ワッチョイ 7f2c-JQ6m)
垢版 |
2020/01/10(金) 17:27:12.96ID:PkgwRlbI0
>>51
こんなに多くの内部実装の解説本が出てる言語は、Ruby以外にない!

まつもとゆきひろ 言語のしくみ、2016

コマンドA | コマンドB
のような、パイプに似た表記で並列処理できる、新言語「Streem」のデザイン・実装

Rubyのしくみ、2014
外人が書いた本。
Cookpad の笹田耕一が作った、Rubyの実装系、Ruby1.9のRuby仮想マシンの説明

笹田耕一は今、RubyVM の仕組みを雑誌、WEB+DB PRESS で連載中

Rubyのなかを覗いてみよう!池澤あやかが「Cookpad Ruby Hack Challenge」に参加してみた
https://next.rikunabi.com/journal/20180601_c11/

NHK Eテレでお馴染みの、Ruby の女神、池澤あやかによるリポート。
たしか、彼女は学生時代に、Rails 合宿に参加して学んだらしい
2020/01/10(金) 17:29:32.05ID:915LIh+yM
一般論として、内部実装を知らないと使えないのは作り手としては恥
2020/01/10(金) 17:31:43.84ID:YP/p9xdd0
真顔で「わたくしはC言語を極めました」と言える人物向け
59デフォルトの名無しさん (ワイーワ2 FF7f-Eg5K)
垢版 |
2020/01/10(金) 18:18:32.14ID:puBSVXWRF
池澤あやかωωω
2020/01/10(金) 22:32:36.44ID:VhdPbdF+0
しゅき…
61デフォルトの名無しさん (ワッチョイ 7f44-Y/Zm)
垢版 |
2020/01/11(土) 13:04:33.98ID:e4hNIYBE0
rubyイスポーラー
2020/01/11(土) 15:44:52.50ID:cvQKeu200
n.object_id == (2 * n + 1) が成立しなくなる条件を調べて試行錯誤した結果
2進数の区切りの良い数ではないかと当たりをつけたところビンゴ

n = 0
loop do
if (2 ** n - 1).object_id == (2 ** n - 1) * 2 + 1
n += 1
else
p n
break
end
end

#=> 63
2020/01/11(土) 15:48:51.00ID:cvQKeu200
(2 ** 62 - 1).object_id == (2 ** 62 - 1) * 2 + 1
#=> true

(2 ** 62 - 1).class
#=> Fixnum

(2 ** 62 ).object_id == (2 ** 62 ) * 2 + 1
#=> false

(2 ** 62 ).class
#=> Bignum

Integerに統合される前のFixnumだと n.object_id = 2 * n + 1 #=> true
Bignumだと n.object_id = 2 * n + 1 #=> false
64デフォルトの名無しさん (ワイーワ2 FF7f-Eg5K)
垢版 |
2020/01/11(土) 15:48:59.14ID:l/QLWHKHF
これ読め
http://i.loveruby.net/ja/rhg/
2020/01/11(土) 15:51:56.31ID:usOdB8FH0
まあ、とくにきまってるわけでもないやろし、特定してもあんまり意味ないけどな。
66デフォルトの名無しさん (ワイーワ2 FF7f-Eg5K)
垢版 |
2020/01/11(土) 15:55:40.95ID:l/QLWHKHF
特にここ
http://i.loveruby.net/ja/rhg/book/object.html
2020/01/12(日) 00:51:50.16ID:Vj2aFgw8r
頭の悪い奴がひたすらここを自分の日記帳替わりにしてんのくっそ邪魔
そんなん試行錯誤ですらねえよ
2020/01/17(金) 09:22:39.20ID:E+lfOmbYa
Ruby riを使おうとしても「Nothing known about 〜」と出て
repl内でdocumentationを参照できないときの対処法

How do I install the Ruby ri documentation?
https://stackoverflow.com/questions/3178900/how-do-i-install-the-ruby-ri-documentation
2020/01/17(金) 14:31:01.12ID:vdDSAPn50
東洋経済という株の雑誌の今週号は、今年こそ始めるプログラミング
プログラムの説明は初歩の初歩の初歩レベル
学習難易度がもっとも低い、覚えやすいのがruby、最も平均年収が高いのがGoと紹介
ほんとかなあ
2020/01/17(金) 15:51:59.65ID:0sb73h15M
Goは言語自体の難易度はRubyより低い
でもGoエンジニアってGo書けるだけじゃなくてAWSやLinuxやコンテナを使いこなすことが前提なので、
オレRoRやってますウェーイ君なんかとは比較にならないくらい高い技術力と幅広い知見が求められるんだよ
彼らは様々な言語を経験してきた末に「コードなどシステムの1要素に過ぎない」という境地に到達し、
足回りも含めた全体としての柔軟性を追求した結果として、Goという面白みもクソもない「道具」を選択しているんだ
Goだけできても仕事はない
71デフォルトの名無しさん (ワッチョイ 022c-Sfrr)
垢版 |
2020/01/18(土) 01:21:19.24ID:ciDfAHTw0
元々、サーバー側は、Ruby の1強だった!
Vagrant, Chef, Serverspec とか

数年後、
Rubyを真似したのが、Node.js で、
Go のDocker も出てきた

先行者利益を得るためには、ビジネスでは、Ruby 1強!
だから、ハーバード大学でも、小資本のベンチャーは、Rubyを勧められる

他の言語では、数年遅れる。
DSL で作りにくいし、開発が非常にややこしく、人材を集められず、費用が膨大だから、
小資本のベンチャー・起業に向かない

SASS も、Rubyで始まった!
2020/01/18(土) 02:07:34.56ID:w6J1AYPB0
つまり、Rubyはプロトタイプ用
2020/01/18(土) 02:25:10.35ID:ciDfAHTw0
小資本で起業して、新しいコンセプトの自社サービスを開始するのに、適した言語がRuby。
スタートアップ企業だから、サイトの速度は遅くてもよい

あくまで、ベンチャーは成功しないのが基本w
Rubyは実験用言語とも言える

ところが、たまに化物みたいなサイトを生み出すのも、Ruby

Rails で作った、このサイトの速度は尋常じゃない!
他の言語では、絶対に作れないw
https://dev.to/

Ruby on Rails Part21
https://medaka.5ch.net/test/read.cgi/php/1545146635/103
2020/01/18(土) 02:41:28.23ID:AhPxC9uwa
これのことか?
https://dev.to/ben/making-devto-insanely-fast
フロントエンドの設計が優秀なのと静的コンテンツにFastly使ってるから速いって
だけで、ほとんどRails関係ないな
2020/01/18(土) 03:54:28.83ID:ciDfAHTw0
でも、DB は、Rails でしょ?

ちょっと考えられないぐらいに、速いw
あり得ないw

だから、Ruby からは、こういう怪物が出てくるw
実験用言語だから、とんでもない事をやりたいような、面白い香具師が集まってくるw

Cookpad でも、Rubyの実装の中身を覗いてみようという変な企画にも、百人応募してくるw
他言語の香具師も面白がってやってくるw

それがRubyの面白い所w
知的好奇心がそそられて、何か新しいことに挑戦したくなる言語
2020/01/18(土) 09:12:19.27ID:6Wtj4R8r0
>>69
アホの東洋経済はわざと因果を逆転させてるアホ集団だから気にしない方がいい
もとから年収の高い集団が内製の新言語使いだしただけだろ

要するに、東洋経済の従業員自体の年収はそんなに高くねーモン
企業内にバカしか詰まって無いから自身が取材したノウハウの全てを使ってない
だから10億プレイヤーが東洋経済にいない

同じ理由で潰れたのがbig tomorrow
2020/01/18(土) 09:30:31.53ID:w6J1AYPB0
いやRails遅いでしょ?何と比べて速いって言ってるのさ?
2020/01/18(土) 10:05:38.54ID:Qnj8VWpB0
>>75
5chを荒らすことしかしてないお前が言っても説得力ゼロだ
2020/01/18(土) 17:00:27.15ID:gfH5d2Um0
つうかそもそも、DBはRailsってどういう意味なんや?w
8071 (ワッチョイ 022c-Sfrr)
垢版 |
2020/01/19(日) 12:09:49.13ID:qcodQ+dh0
元乃木坂46 の川後陽菜のブログ
https://kawagopro.com/

上を、下のサイトで分析したら、これも、Rails だった!
https://builtwith.com/

アイドルの会員サイトの専門の、SKIYAKI が作っているけど、どおりで速いはず!
2020/01/19(日) 12:14:17.68ID:7HHjQocqr
×どおりで
○どうりで(道理で)
2020/01/19(日) 12:40:31.29ID:Wel1D6/w0
>>81
そいつ(>>80)はいつもの荒しだから、道理がわからないのも納得だなw
2020/01/19(日) 13:11:12.72ID:AinWVopR0
いよいよRubyにも型チェックの機能が取り入れられる
型定義は別ファイルに書くようになっていて、文法は以下の感じ
class Foo
  def foo: -> void
  def to_s: -> String
      (Integer) -> String
end
このようなクラス定義によく似た何かを別ファイルに用意しなければならない(面倒だね)
この際、クラス名Fooやメソッド名foo,to_sなどを細心の注意を払って間違いなく正確に記述しなければならない
もし間違えてしまうと型チェックが働かなくなる(だろう)
そして、型チェックツールはそのことを教えてくれないだろうね
何故ならRubyは型定義が無くても動くのが前提だから、名前を間違ってても「あ、型定義無いのね」って思うだけ
なんならクラス名やメソッド名を間違えていないことをチェックするテストコードを書かなければならないかもしれない
そうしないと正しく型チェックが働いたことを誰も保証できないだろう?
「ソースコードのクラス名やメソッド名を変更したけど、型定義ファイルのそれらを修正し忘れる」
というのは普通にあり得るケース、というか一番ありがちなヒューマンエラーの類
絶対だれかヤラカス、容易に想像できる

お気づきのかたも多いだろうが、同じことを二回書かせるから間違える
これはまさに「DRYに反している」典型的事例
ところがmatzに言わせれば、ソースコード上に型を書く方が「DRYに反している」らしい
理由も意味不明 (普通に考えれば別ファイルに書く方がDRYに反している)
ttps://logmi.jp/tech/articles/321280

このように口を開けば事実と反対の事ばかり言うのがmatzであり
そんな人が作ったRuby自体も反対のあべこべ逆張り言語である
84デフォルトの名無しさん (アウウィフ FF05-otum)
垢版 |
2020/01/19(日) 15:31:51.01ID:ehZNNwbSF
俺のRubyがこんなに速いわけがない
2020/01/19(日) 23:07:31.87ID:JsYzYAKPa
入門書に飽きてきた人におすすめ
Rubyだと実例を入手しやすいからいいね

新しいプログラミング言語の学び方 HTTPサーバーを作って学ぶ Java, Scala, Clojure
https://speakerdeck.com/todokr/xin-siihurokuraminkuyan-yu-falsexue-hifang-httpsahawozuo-tutexue-hu-java-scala-clojure
https://github.com/todokr/simple-http-server
86デフォルトの名無しさん (ワッチョイ 022c-Sfrr)
垢版 |
2020/01/19(日) 23:44:41.65ID:qcodQ+dh0
実践TypeScript - BFFとNext.js&Nuxt.jsの型定義、吉井 健文、2019/6/26

この本を読んでるけど、TS も型地獄w

React(Parcel)でも、型定義ファイルがいる。
npm -i -D @types/react @types/react-dom
@types 以下に、各フレームワークの型定義ファイルを入れておく


React, Next.js, Vue.js, Nuxt.js, Express など、
各フレームワークで、TSへの型対応を進めているけど、地獄w
87デフォルトの名無しさん (ワッチョイ a12d-GCXE)
垢版 |
2020/01/20(月) 20:49:11.90ID:YZhtkMgR0
最近、誰でも高額が稼げるような言い方でRuby教材を売ってる人らが目立つな
88デフォルトの名無しさん (ワッチョイ f901-otum)
垢版 |
2020/01/21(火) 00:25:49.49ID:dRlbVwUu0
稼げるからね。
89デフォルトの名無しさん (ワッチョイ a12d-GCXE)
垢版 |
2020/01/21(火) 00:43:52.91ID:98cKibZ60
本当に稼げるんならいいけど、100万円取られて終わりじゃないの
90デフォルトの名無しさん (ワッチョイ f901-otum)
垢版 |
2020/01/21(火) 01:06:10.14ID:kOBQMwNv0
100万稼げるからねって意味だったんですけど。
91デフォルトの名無しさん (ワッチョイ 8d9b-otum)
垢版 |
2020/01/21(火) 11:25:04.38ID:USbDfMqQ0
詐欺御用達
2020/01/21(火) 12:15:08.17ID:/80lr+DT0
スコップを売って100万稼ぐんだろ

スコップ売りの少女から学ぶべきは一つ
スコップで穴を掘ることではなく、スコップの売り方
93デフォルトの名無しさん (ワッチョイ 8d9b-otum)
垢版 |
2020/01/21(火) 12:31:08.84ID:USbDfMqQ0
ruby最強ωωω
https://www.youtube.com/watch?v=7VH-N-dsq3Y
94デフォルトの名無しさん (ワッチョイ a12d-GCXE)
垢版 |
2020/01/21(火) 16:39:26.54ID:98cKibZ60
>>90
そっちか!勘違いしてたぜ
2020/01/21(火) 19:28:13.89ID:essSqG5l0
"abc".size などの . は前後に空白があってもOKだった(最近の発見)
"abc" . size
2020/01/21(火) 21:28:11.63ID:nuZnWP/f0
Windows 10, VSCode では、

関数の引数の( ) の有無とか、
obj.method arg_1
obj.method( arg_1 )

メソッドチェーンでのコメントの有無とか、
obj.method_1 # コメント
.method_2 # コメント

こういうので、エラーになったり・ならなかったりする、基準が分からないw
2020/01/21(火) 22:49:54.70ID:YQwIan5u0
Rubyは、IDEと相性が悪いからな。
動的型だけじゃなくても、文の区切りがわかりにくい文法も。
しゃあない。
2020/01/21(火) 23:13:36.42ID:Vd2KBMmO0
しゃあないわけあるかw
使ってるプラグインの作りが悪いだけだろ
2020/01/21(火) 23:27:09.32ID:nuZnWP/f0
VSCode が中心になってから、開発者全員がVSCode を使うようになって、
すべてのエディタ・IDE で使える、言語サーバーの規格化が始まった!

Ruby も対応してくれるかな?
2020/01/21(火) 23:28:44.69ID:nuZnWP/f0
Julia, Python, Ruby に対応してくれれば、

Jupyter Notebook でも良いけど
2020/01/22(水) 09:39:40.18ID:1i745hKir
メソッドチェーン中の#によるコメントは2.7.0からの新機能
2020/01/22(水) 09:50:31.20ID:mkyLzVly0
VSCodeの開発言語がVSCodeにとっては最重要言語でしょ
そうじゃない言語は傍流だから切られる

使えますよとしてるのはVSCodeに囲い込むための方便
ゆくゆくはそんな傍流には消えてほしい……とするのが普通の策略
2020/01/22(水) 10:10:14.80ID:uoDMOHZtM
MSはVSCodeをTypeScriptで書くことによって動的型に止めを刺したよね
ついでにMatzの愛するEmacsも完全にパイを奪われて死んだし、そんな因縁のエディタでRuby書くとか恥知らずもいいとこ
2020/01/22(水) 10:56:05.26ID:1i745hKir
Emacsが死んだとかどの世界の住人ですか
2020/01/22(水) 22:50:36.18ID:rp7FIzPH0
テキスト編集能力よりも、アプリケーション開発能力を優先すると、IDEが勝つ。
ターミナル経由だと、IDEは動作しようがないので、テキストエディタが勝つ。
106デフォルトの名無しさん (ワッチョイ 5f2c-++Vr)
垢版 |
2020/01/22(水) 23:10:32.35ID:fyGKoId60
require 'webrick'

srv = WEBrick::HTTPServer.new( {
:BindAddress => '127.0.0.1', :Port => 20080 } )

srv.mount( '/', WEBrick::HTTPServlet::FileHandler, './' )

Signal.trap( :INT ){ srv.shutdown } # Ctrl+C で終了
srv.start

Windows 10, Ruby 2.5 で、
カレントフォルダに、index.htm と画像ファイル、abc.jpq を置いて、
WEBrick のServer/Servlet を起動して、ブラウザで見ると、
HTTP 304 で画像を、ローカルPC のキャッシュから取得するので、見えない!

1-liner で、
ruby -run -e httpd . -p 20080
としても見えないが、ポート番号を10080 に変えると見える!

常に見えるようにするには、どうすればよい?
2020/01/22(水) 23:15:37.70ID:1i745hKir
jpqだからじゃねえの
2020/01/23(木) 00:02:00.95ID:31WWjqFP0
>>106
タイプミスを修正します!

>abc.jpq
abc.jpg
2020/01/23(木) 00:38:32.32ID:9sgUs0f40
304が返される状態にもかかわらず
画像が見えないなら基本的にはクライアント側の問題
まずはHTTPリクエストを確認しろ
2020/01/23(木) 00:49:20.77ID:31WWjqFP0
Windows 10 のローカルPC は、アクセス権限が厳しいから、

サーバーを立てても、ブラウザのローカルキャッシュを見れないのかも?
111デフォルトの名無しさん (ワッチョイ 872d-N7cG)
垢版 |
2020/01/23(木) 05:02:20.43ID:DWwoifTV0
Web開発でRubyが下火になってきてるらしいけど、一体何に移ってるの?
node.js + Reactみたいに単純な構造のものを組み合わせるのが流行ってるわけ?
2020/01/23(木) 08:38:09.14ID:WRgaKbBya
>>111
そうだよ
nodeやgoへ移ってる
2020/01/23(木) 08:54:27.38ID:WRgaKbBya
途中書き込み失礼
ちなみにRubyの需要が減ってるかというとそんなことはなくて、むしろ伸びてる。
じゃあなんでnodeやgoへ移ってるように見えるかというと、移行してるのは情報発信に積極的な意識高い層が中心だから。
彼らは主に(例えばCookpadのような)自社サービスで働いていて、事例としても目立ちやすいというわけ。
Rubyはプログラミングスクールで人気があるため低スキルエンジニアが供給過剰状態で、PHPの代替として低単価案件での採用が増えている。
それに伴い、意識の高い人は値下げ競争から離脱しつつあるの。
2020/01/23(木) 09:48:33.02ID:31WWjqFP0
VSCode の拡張機能、Live Server で見たら、画像も見れる!

WEBrick のServer/Servlet と何が違うのかな?
2020/01/23(木) 19:32:54.35ID:vOsDgWR6M
キャッシュコントロールヘッダじゃないの?
知らんけど。
2020/01/24(金) 03:55:37.06ID:L98ica9l0
ブラウザのF12 開発者ツールで指定できる!

Chrome の開発者ツールのDisable cache で、画像が表示された!

Edge では、開発者ツールのネットワークの、
常にサーバーから更新するとか、キャッシュのクリアとかかな?

HTTP リクエスト/レスポンスのCache-Control ヘッダーも、関係ありそう
2020/01/24(金) 12:41:39.57ID:yedZaC1h0
プライベートブラウジング使え
ブラウザ閉じればキャッシュやクッキーが消えて便利だぞ
2020/01/24(金) 12:43:50.75ID:2IgFvbdV0
HTTPリクエストを確認すればわかること
頼むからHTTPの基礎くらいは学んでくれ
119106 (ワッチョイ 5f2c-++Vr)
垢版 |
2020/01/25(土) 00:10:52.07ID:mLh1vP4R0
Windows 10 のローカルPC 上の、WEBrick のServer/Servlet で、
ブラウザでキャッシュ有りの時、画像が表示されないのは、なぜなのか?

結局、その理由が分からないまま

出来れば、キャッシュ有りで、画像が表示されてほしい
2020/01/25(土) 03:58:37.57ID:PRJ1sUmm0
死ねばいい
121デフォルトの名無しさん (ワッチョイ a763-gk0v)
垢版 |
2020/01/25(土) 15:52:45.46ID:WZ3Oswhu0
rubyXLでエクセルいじってるが

印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
2020/01/27(月) 17:12:09.11ID:PTqFE7Wm0
ruby.hに#define memcpy(p1,p2,n) ruby_nonempty_memcpy(p1, p2, n)ってあるけど、
c++でstd::memcpyって使ってたらおかしなことにならんか?
123デフォルトの名無しさん (ワイーワ2 FF1f-FkkX)
垢版 |
2020/01/27(月) 17:24:08.84ID:Xu7tzl7qF
srcとdstの範囲が重なってるんじゃね
2020/01/27(月) 18:36:35.04ID:PTqFE7Wm0
ちょっと試したらおかしなことにならんかった
2020/01/28(火) 12:37:06.71ID:2llLtotp0
Rubyってイベントハンドラを複数登録するタイプのクラスってどう書くのが一般的な流儀ですか?

クラス継承したり特異メソッド使ったりといった書き方もありますが
あまり異端過ぎなければlambdaを使うのが楽そうかなと思ってます

# ディレクトリを巡回してファイルを探すクラス
finder = FileFinder.new
finder.on_dir_enter = lambda{|folder| puts "entered: #{folder}" }
finder.on_dir_leave = lambda{|folder| puts "left: #{folder}" }
finder.on_file_found = lambda{|file| puts "found: #{file}" }
finder.start("./")
126デフォルトの名無しさん (ワッチョイ 5fd7-hH+D)
垢版 |
2020/01/28(火) 16:48:55.02ID:viNuqCMy0
>>125

finder.on_dir_enter {|folder| puts "entered: #{folder}" }
finder.on_dir_leave {|folder| puts "left: #{folder}" }
finder.on_file_found {|file| puts "found: #{file}" }

または

finder.add_handlers(
  :dir_enter => proc { |folder| puts "entered: #{folder}" },
  :dir_leave => proc {|folder| puts "left: #{folder}" },
  :file_found => proc {|file| puts "found: #{file}" }
)

イベントハンドラ系のAPI設計に関しては、
Ruby/Tk や Ruby-GNOME 等の GUI ツールキットを参考に
2020/01/28(火) 17:18:24.30ID:nzUBCcWX0
特に理由がなければブロック渡しが一般的
簡単なEvent Emitterを自作するかライブラリ使うか

finder.on(:dir_enter) {|folder| puts "entered: #{folder}" }

ライブラリでメジャーなのはwisperかActiveSupport::Notifications
https://github.com/krisleech/wisper
2020/01/29(水) 09:22:00.90ID:AYOCyHQA0
>>121
rubyXL での印刷範囲の設定など
https://qiita.com/cog1t0/items/85bf12f07b78e66802ff

「rubyxl 印刷」で検索!
129デフォルトの名無しさん (ワッチョイ ea2c-KoMo)
垢版 |
2020/01/29(水) 13:41:46.66ID:AYOCyHQA0
Windows で、Ruby 2.5 にバージョンアップしたら、
SQLite3 のコンパイルが必要になった!

でも漏れは、1, 2GB とサイズが大きい、MSYS2 を入れていないから、
win32ole モジュールで、ADODB でアクセス出来そうです。

ADODBは、Microsoft 製のドライバーなのか。
わざわざ、SQLite3用のドライバーも作ったのか?w

win32oleは、Rubyの標準モジュールかw
COM の種類が多い

ruby -rwin32ole -e 'puts WIN32OLE_TYPE.progids.length'
#=> 2521
2020/01/29(水) 14:03:59.52ID:AYOCyHQA0
>>129
訂正

>ADODBは、Microsoft 製のドライバーなのか。
>わざわざ、SQLite3用のドライバーも作ったのか?

SQLite3 などのODBC ドライバーは、Microsoft 製じゃない。
誰かが作ったものです
131デフォルトの名無しさん (ワッチョイ 7f05-QQjh)
垢版 |
2020/02/07(金) 23:21:28.28ID:t9uaVZtz0
RubyのOcraについて質問です。

無限ループの中でタイマーカウント満了の度に処理を行って待ちに入るという動作のプログラムって実はEXE化できないという制約があったりしますでしょうか?

また、その場合の解消方法とかをご存じの方、よろしくお願い申し上げます。
2020/02/08(土) 10:32:17.79ID:hHzEGlOhr
>>131
ない
何故ならevalするだけの簡単なコードですらexe化できるから
2020/02/08(土) 13:28:21.15ID:9Nn74D/R0
OCRA の代わりに、Neri と言うのもあるみたい

Neri
https://github.com/nodai2hITC/neri/blob/master/README.ja.md
134デフォルトの名無しさん (ワッチョイ 9f7c-YOmB)
垢版 |
2020/02/10(月) 17:54:32.25ID:nkCUteta0
下記のコードでifの位置ってここでいいの。rubyの本の記述なんだけど。
2行目だけどifの方が左なんじゃないの?右でも行けるって事かな?
def greeting(country)

return 'countryを入力してください' if country.nil?
if country == 'japan'
   'こんにちは’
  else
'hello'
end
end

greeting(nil)
greeting('japan')
135デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
垢版 |
2020/02/10(月) 17:55:54.47ID:JljXo4cdF
後置
136デフォルトの名無しさん (ワッチョイ 9f7c-YOmB)
垢版 |
2020/02/10(月) 18:40:17.86ID:nkCUteta0
>>135
そうなの?
理由も聞きたい
そういう仕様?って事?
2020/02/10(月) 20:46:54.23ID:cKG4UD690
わからない時はまずリファレンス
https://docs.ruby-lang.org/ja/master/doc/spec=2fcontrol.html#if

ifは前置でも後置でもいける仕様
後置ifは正式にはif修飾子(if modifier)
2020/02/10(月) 21:36:49.68ID:cuubi2Q/0
しかし、何がしたいのかはわからんコード。
文字列を返してるだけ?
2020/02/10(月) 23:17:58.15ID:8D13KkA50
そりゃ、ユーザーからの入力値チェックは、必要

まあ、デフォルト値は、nil の代わりに、空文字列にしておく手もある
2020/02/11(火) 00:09:12.87ID:dIRIcC/n0
>>136
英語勉強しろよ

I don't know if it will rain tomorrow.
(明日雨が降るかどうかわからない)
2020/02/11(火) 07:38:12.35ID:jcgFHncna
後起きifはRubyの文法的にはかなり無理があって、その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文
Matz的によほどの拘りがあるんだろうけど、違和感を感じる>>134のセンスはとても正しい
2020/02/11(火) 09:49:56.57ID:GpQNLMm40
perl後継としては外せない
2020/02/11(火) 10:04:30.75ID:Nq1ZGiCx0
perlなら当然でしょ
rubyはそこを汲んでる
2020/02/11(火) 10:14:08.59ID:dIRIcC/n0
Perlに不満ってあるの?
どれだけある?
145デフォルトの名無しさん (アウウィフ FF9b-VM48)
垢版 |
2020/02/11(火) 12:56:14.55ID:KtXysiBKF
>>141
Rubyのあちこちで見受けられるPerlの悪い所をわざわざパクったアホな例の一つだな
2020/02/11(火) 13:01:20.53ID:v/oRLdRM0
>>141
>その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文

「全てが式」ってのはstatementとexpressionに明確な区別のある言語との対比で
Rubyの特徴をわかりやすく説明するために使われてるだけ

式の一部どれをとっても全てが式になってるまともな言語があるわけない
Rubyには後置以外の修飾子だってあるしstatementもある
中途半端な知識で勘違いしてドヤるのはやめよう
2020/02/11(火) 13:17:51.03ID:D5vn67vCa
perl に比べて ruby の優っているところは?
2020/02/11(火) 13:22:48.99ID:XWZwag4pr
if/unless, while/until, rescue
2020/02/11(火) 13:27:43.83ID:eT6ZDI7H0
>>147
Perlにはオブジェクト指向ようの構文が後付で原始的なものしか搭載されてない。
アセンブラを駆使すれば何でもできるように、原始的な機能でも頑張れば
高度なオブジェクト指向機能を作ることは可能だが、
そのせいでいくつもの実装が生まれライブラリごとに使ってる
仕組みが異なり統一ができずに破綻してしまった。
Rubyは最初からオブジェクト指向
150デフォルトの名無しさん (ワッチョイ 9f74-cN98)
垢版 |
2020/02/11(火) 14:28:51.94ID:R1PPlg5z0
>>146
>式の一部どれをとっても全てが式になってるまともな言語があるわけない

LISP, Haskell, ML, …etc

>中途半端な知識で勘違いしてドヤるのはやめよう

この記事の原著者も「中途半端な知識で勘違いしてドヤ」ってるのかなぁ
・Rubyによる関数型プログラミング
 http://xtmlab.com/misc/FPwithRuby.html

なお、手続き型言語の大半が文と式を明確に分けている中で、
Ruby の「すべてが式」という思想はユニークであるが、
次世代言語 Rust でも同様な思想が採用された
以下は書籍「プログラミングRust」からの引用
> Rustはいわゆる式言語(expression language)の一つだ。
> つまり、Lispにまで遡る古い伝統に従い、すべてを式で行う。

中途半端な知識で勘違いしてドヤると恥をかくだけだよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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