◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1608837867/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん (ワッチョイ b72c-yePO)
2020/12/25(金) 04:24:27.68ID:aa9Khe9z0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

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

前スレ
Ruby 初心者スレッド Part 66
http://2chb.net/r/tech/1578068134/

るりまサーチ (リファレンス検索)
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
2デフォルトの名無しさん (ワッチョイ 572c-yePO)
2020/12/25(金) 04:26:07.55ID:aa9Khe9z0
Rubyの絵本、2008
たのしいRuby 第6版、2019
3ステップでしっかり学ぶ Ruby入門、2018
かんたん Ruby (プログラミングの教科書)、2018

プロを目指す人のためのRuby入門、2017

改訂2版 パーフェクトRuby、2017

改訂2版 Ruby逆引きハンドブック、2018 (中級者向け)

Effective Ruby、2015 (中級者向け)

メタプログラミング Ruby 第2版、2015 (中級者向け)

リファクタリング:Rubyエディション(復刻版)、2020(中級者向け)

RubyでつくるRuby ゼロから学びなおすプログラミング言語入門、2017 (中級者向け)

Rubyのしくみ、2014 (中級者向け)

改訂4版 基礎 Ruby on Rails、2018

パーフェクト Ruby on Rails 【増補改訂版】、2020

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例、2014

オブジェクト指向設計実践ガイド Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方、2016

Seleniumデザインパターン&ベストプラクティス、2015

Webで使えるmrubyシステムプログラミング入門、2020
3デフォルトの名無しさん (ワッチョイ 572c-yePO)
2020/12/25(金) 04:27:50.07ID:aa9Khe9z0
開発環境

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

RDEのデバッグ機能を使う場合、設定においてデバッグオプションを「-r debug2」から「-r debug」と書き換えて、
ruby付属のdebug.rbを使うようにすること。
RDE付属のdebug2.rbは、ruby1.8用のスクリプトのため、現在のrubyのversionには使えません

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

Emacs
GNUの高機能エディタ

Vim
Emacsと同じぐらい有名なCUIベースのエディタ

VSCode
マルチOSに対応したマイクロソフト社製のソースコードエディタ
https://code.visualstudio.com/download
4デフォルトの名無しさん (ササクッテロル Sp1f-6DBA)
2020/12/25(金) 19:37:36.98ID:HoUTdWdQp
祝 ruby3.0.0
5デフォルトの名無しさん (ワッチョイ c54e-2ulA)
2020/12/25(金) 19:42:54.83ID:cyV6b5qO0
めでたくもなんともない
ムダに歳くったロートル
6デフォルトの名無しさん (ワッチョイ 0bab-JtRj)
2020/12/25(金) 22:20:13.76ID:DVzhLIY40
形態素ゲイムRuby松本まじコスロ
by猪瀬色彩空間
7デフォルトの名無しさん (ワッチョイ 3be6-91uD)
2020/12/25(金) 22:53:56.79ID:gC1vp0cV0
速度3倍ってマジ?
8デフォルトの名無しさん (オッペケ Srd9-Isz2)
2020/12/26(土) 05:22:31.21ID:MLavBbcpr
>>1
3.0おめでとう
9デフォルトの名無しさん (アウアウウー Sa71-ZH8k)
2020/12/27(日) 22:23:18.64ID:3h7fei6ma
$ gem install clipboard
$ irb

irb> require 'clipboard'
=> true
irb> puts Clipboard.paste
朝鮮・韓国兵の扱い方(取り扱いマニュアル) 旧日本陸軍・米軍・旧ソ連共産党 | memo
=> nil
10デフォルトの名無しさん (ワッチョイ 9bad-yePO)
2020/12/28(月) 21:08:07.24ID:JL6YsW3y0
Rubyってトップレベル関数はprivateにできないの?
やっぱり、Pythonみたいに__ってしてあげるしかないのかな
11デフォルトの名無しさん (ワッチョイ 8f5f-yePO)
2020/12/29(火) 11:46:48.14ID:NZwVboWN0
2.7で作ったアプリを3.0で動かしてみたらエラーでした
12デフォルトの名無しさん (ワッチョイ 2e63-YHUb)
2021/01/02(土) 17:25:59.70ID:z1ZKe1zV0
rubyで自分用のCUIアプリを作成しています。質問させて下さい。

rubyではクラスごとにファイルを分けるべきでしょうか?
名前空間ごとにディレクトリを作成すべきでしょうか?

また、とりあえず他のソースコードを何個か見て、以下のディレクトリを作成しています。
bin/
lib/
binの中はコマンドライン解析用のソースコードのみで、他はlibの中に全部入っています。
この配置は一般的でしょうか?
また、テスト用のソースコードやデータはどのように配置すべきでしょうか?

私の作っているソフトウェアの規模は個人用なので小規模で2万行程度です。ただし、最終的にはこの倍はいきそうです。
しかしながら、勉強も兼ねて、なるべくrubyのお作法に従うようにしたいです。

よろしくお願いいたします。
13(u_・y) (アウアウウー Saa5-Jh9r)
2021/01/04(月) 11:01:26.70ID:oZidFLopa
俺様なら作法とか無視して最低3フォルダは作るけど
0、bin
1、そのアプリのみで使う事が想定されてるファイル群
2、他のアプリでもそのまま使える完全に分離してるmodule/class群

どうしても一般論でやるってところに拘るならrubyコミッターのソースコード探して見てくれば良い
標準があるとすればそれ
14(u_・y) (アウアウウー Saa5-Jh9r)
2021/01/04(月) 11:24:34.37ID:oZidFLopa
(u_・y) 質問です。世の中を自分の好きなように動かしたいのですが。
(u_・y) "rubyを使う"という条件に限定した場合、何をするのが最適解でしょうか?
15デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2021/01/04(月) 13:08:51.30ID:VbZo6FxW0
>>12
gemの構成に従うのが一般的
$ bundle gem <project_name> でscaffoldしてくれる

もう少し詳しく知りたければオライリーから出てる
「Build Awesome Command-Line Application in Ruby 2」の9章
16デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/04(月) 13:22:27.53ID:yec7Hk1C0
Rails のプロジェクト構成に従えば?

プロジェクトルート直下のフォルダは、
ruby -e 'puts Dir.glob( "*" ).select{ |file| File.directory? file }.sort.join( ", " )'

app, bin, config, db, lib, log, node_modules, public, storage, test, tmp, vendor
17(u_・y) (アウアウウー Saa5-Jh9r)
2021/01/04(月) 20:10:47.67ID:0ES7puYLa
問 1
以下のソースコードを実行したときに最終的に表示される文字列をこたえよ
※ まずは答えを見ずに考えてね!

def b x
x + " rails"
end
def f(x=<<-TEXT) return p b x ; python最高(*'▽')
on #{print "ruby "}
TEXT
end
f

答え: https://ideone.com/G9U1Ab
18デフォルトの名無しさん (ワッチョイ 2e63-YHUb)
2021/01/04(月) 21:25:31.68ID:yms/N9cK0
ありがとうございます。
いただいた回答を確認させていただきましたが、bundle2.7 gem NAMEで出てくる内容が、私の知りたい回答に近いようです。
参考にさせていただきます。
19デフォルトの名無しさん (ワッチョイ 468c-1BNf)
2021/01/05(火) 19:10:35.24ID:khtEPZ8Z0
CSVファイルの読み込みで下みたいに変換することってできる?
"0123",1
=> ["0123", 1]
20デフォルトの名無しさん (オッペケ Srf1-hZl1)
2021/01/05(火) 19:30:04.21ID:MfDAyFl4r
>>19
CSV.parse '"0123",1', quote_char: ?' #=> [["\"0123\"", "1"]]
21デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/06(水) 00:17:02.38ID:2hpPqzu40
CSV では文字列・数値とか、各列の型を指定できなかったっけ?

各列の変換器
22デフォルトの名無しさん (ワッチョイ 8205-I5PR)
2021/01/06(水) 02:45:29.91ID:X+T/DkCZ0
プログラミング自体初心者です
ファイバーを全く理解していなかったので勉強してみているのですが

class Test
def initialize
@fiber = Fiber.new {test}
end
def test
p "これがファイバーのブロックで与えた処理だ"
Fiber.yield
p "理解したかな???"
end
def fiber_test(count = 60)
@fiber.resume
p "帰ってきたぞ"
@fiber.resume
p "再び帰ってきたぞ"
count.times do {Fiber.yield}
end
end

このコードを組んで別の場所でTest.new.fiber_testとインスタンスを作成して呼び出してみたのですが
@fiber.resumeでtestメソッドへ移動し
Fiber_yieldでfiber_testメソッドへ戻ることはわかったのですが
testメソッドで@fiber.resumeを実行すると親子関係がおかしくなるからかFiberErrorを起こすのに対し
fiber_testメソッド側でFiber_yieldを実行すると一瞬画面が止まるだけでコンソールにも何も表示されません
これは何が起きているのでしょうか?
引数のcountを増やすほど長く画面が固まります
23デフォルトの名無しさん (オッペケ Srf1-hZl1)
2021/01/06(水) 05:27:15.07ID:jWwxeiIUr
>>20
>>19を読み間違えていたので訂正

CSV.parse '"0123",1', converters: ->(f, i){i.index.zero? ? f : f.to_i}

# => [["0123, 1]]
24デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/06(水) 06:10:07.47ID:2hpPqzu40
Fiber は、coroutine みたいなものか

初心者がやるものじゃない。
10年以上やってから、やるもの
25デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/06(水) 06:33:24.80ID:2hpPqzu40
f = Fiber.new do
n = 0

loop do
puts "子の前 : #{ n }"
Fiber.yield( n ) # 親へ
puts "子の後 : #{ n }"

n += 1
end
end

2.times do |idx|
puts "親の前 : #{ idx }"
puts "親の値 : #{ f.resume }" # 子へ
puts "親の後 : #{ idx }"
end

出力
親の前 : 0
子の前 : 0
親の値 : 0
親の後 : 0

親の前 : 1
子の後 : 0 # 要注意!
子の前 : 1
親の値 : 1
親の後 : 1
26デフォルトの名無しさん (ブーイモ MMb6-zmFY)
2021/01/06(水) 11:25:26.71ID:HlI/jGZrM
>>22
そのコードはfiber_testメソッドのFiber_yieldしてるところで
can't yield from root fiberのエラーになるよ

エラーにならないならrubyのバージョンと再現可能なコードを書いて
27(u_・y) (アウアウウー Saa5-Jh9r)
2021/01/06(水) 12:45:06.84ID:I0SDZM+6a
Fiber.yield と @var.resume で処理の投げあいをしてるだけ
で、resumeは変数のメソッドだから変数が参照できればどこからでも呼べるが、
Fiber.yieldっていうのは、Fiber.new{ ここ }の中でしか呼び出せない

なお初心者がFiberを使ったコードを書いても普通にloopで書いたほうがいいもんを煩雑にさせるだけだから今覚えてもすぐ明日から使うぞーってなる機能ではない
28デフォルトの名無しさん (ワッチョイ 42bb-zSX4)
2021/01/06(水) 14:48:29.93ID:eEkuR0nA0
Ruby使った事ない勢です
知人から恐らくruby(のgem ocra)でコンパイルされたexeファイルを修正してほしいと頼まれたのですが
これ逆アセンブルする方法無いですか?
29デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2021/01/06(水) 15:07:09.07ID:twxSQNJZ0
>>28
解凍すればいいだけでは?
30デフォルトの名無しさん (スフッ Sd62-BgNG)
2021/01/06(水) 18:53:39.35ID:tXuutWqgd
>>29
無知で申し訳ないです
サクラエディタでexeとか怪しいtmp開いてみたけど見られないんですよね
解凍というのはどう言うことでしょうか?ocraにそういったコマンドがあるのでしょうか?
それとも実はzipでコンパイルされてるとか?
31デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2021/01/06(水) 22:30:29.65ID:twxSQNJZ0
>>30
自己解凍形式
実行すれば一時ディレクトリにソースも解凍されてる
32デフォルトの名無しさん (オッペケ Srf1-hZl1)
2021/01/06(水) 22:35:40.93ID:jWwxeiIUr
Ractorが今後どうなるか楽しみ
33デフォルトの名無しさん (ワッチョイ 42bb-zSX4)
2021/01/06(水) 23:02:25.85ID:eEkuR0nA0
>>31
出来ました、ありがとうございます
34デフォルトの名無しさん (ワッチョイ 468c-1BNf)
2021/01/06(水) 23:28:49.12ID:D4I0bPT10
>>20 これにcoverters : :numeric付けてみたけどカンマを含むデータがうまく処理できず
>>21 いや、それが知りたいんだが
>>23 こうすりゃいいのか。ありがとう
35デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/07(木) 00:57:12.57ID:ikfTGx5+0
0 で始まる数値は8進数だから、:numeric ではバグル

012 は、10 になる。
一方、09 は8進数では存在しないから、9 となる

require "csv"

text = <<'TEXT'
"09",1
"012",2
TEXT

csv = CSV.new( text )
csv.convert( :numeric )

p csv.read
#=> [ [9.0, 1], [10, 2] ]
36(u_・y) (アウアウウー Saa5-Jh9r)
2021/01/07(木) 02:12:02.37ID:oTn3YI8va
csv=<<-TXT
"01.23",1
"09",1
"012",2
TXT
a=csv.each_line.map{|n| eval"[#{n}]" }
p a
37デフォルトの名無しさん (ワッチョイ 468c-1BNf)
2021/01/07(木) 03:01:27.13ID:BvHUxMcb0
>>35 そうそう、これもどうにかしたかった
>>36 nullがあるとダメじゃね?

>>19の例が単純すぎたのでもうちょっとマシな例
"0123456789","5CH CO.,LTD","2021/01/01",12345.67
"0123456790","2CH.COM",,0.00
38デフォルトの名無しさん (ワッチョイ ed7f-hZl1)
2021/01/07(木) 06:30:45.65ID:yCgL5kYR0
後出しで条件付け加えてくるのやめろ
39デフォルトの名無しさん (ワッチョイ 9233-cbZ0)
2021/01/07(木) 09:59:32.37ID:d5tQYhLy0
つーか、あとは自分でできるやろ。
やりたいようにやれ。
40デフォルトの名無しさん (ワッチョイ 468c-1BNf)
2021/01/07(木) 18:15:56.20ID:BvHUxMcb0
うむ。>>23で解決した
あとはお題として書いてみた
41(u_・y) (アウアウウー Saa5-Jh9r)
2021/01/07(木) 20:00:34.95ID:pRSWPdMla
友達いなそう
42デフォルトの名無しさん (ワッチョイ 5fda-Cbw0)
2021/01/11(月) 00:35:09.75ID:RMa4jLhx0
ruby初心者です。

調べたけどわからないので教えて下さい

neriでexeファイルを作ろうとすると、簡単なもので試したのですが、
internal:C:/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in
`require': cannot load such file -- Win32API (LoadError)
のエラーが出ます。
Windows 10
ruby 3.0 x64
Bat_To_Exe_Converter v3.2
43デフォルトの名無しさん (オッペケ Srb3-VpI/)
2021/01/11(月) 00:42:06.93ID:XvdCBu9Er
>>42
gem list にWin32APIはあるのか?
44デフォルトの名無しさん (ササクッテロラ Spb3-eSWr)
2021/01/11(月) 09:03:37.19ID:LZqNfRTHp
>>43
gem listでwin32-api(1.9.2 universal-mingw32)
はありました。
45デフォルトの名無しさん (ワッチョイ ff2c-9hkR)
2021/01/11(月) 11:30:06.64ID:RwOnRvzI0
「ruby `require': cannot load such file -- Win32API」で検索!
46デフォルトの名無しさん (アウアウウー Saa3-zMe3)
2021/01/11(月) 15:49:37.24ID:NK5j5E+la
Win32APIはruby3.0から廃止
当然Win32APIを使ってたgemsはRuby3.0では作者がメンテナンスするまで動かないからneri作者の尻ひっぱたくか前のバージョン使え
47デフォルトの名無しさん (アメ MMe3-nOiR)
2021/01/11(月) 15:52:47.62ID:Yn+GwDZFM
さすがの互換性w
48デフォルトの名無しさん (ワッチョイ df01-zMe3)
2021/01/11(月) 16:04:22.15ID:KSKcxhht0
Windowsに嫌われてるとか言ってたな。
49デフォルトの名無しさん (ワッチョイ ff68-Q/Jp)
2021/01/11(月) 21:15:58.19ID:iHOPiDVy0
>>47
いや、さすがにWin32APIはしゃあない。
むしろ、とっくに避けていなければならんかったレベル。
50デフォルトの名無しさん (ササクッテロ Spb3-eSWr)
2021/01/11(月) 22:59:29.10ID:jE21Oyzwp
>>46
なるほど。ありがとうございます。
わからず、ずっと悩んでました。
51デフォルトの名無しさん (ワッチョイ e1da-A78j)
2021/01/21(木) 04:05:57.95ID:wRHR1dSL0
環境変数の設定を一切せず
rubyの起動オプションですべて明示するというやり方って
現実的になにかトラブルが発生したりしますか?
52デフォルトの名無しさん (ワッチョイ ae68-8Eyn)
2021/01/21(木) 04:54:29.71ID:GWoeC7/l0
コマンドラインの長さとか?
最近ならもうだいじょうぶかな?
53デフォルトの名無しさん (ワッチョイ 87da-Jq7D)
2021/01/22(金) 08:44:48.38ID:MPceXAls0
そんなに長い指定はないので今の所問題く動いているっぽいです
ありがとうございます
54デフォルトの名無しさん (ワッチョイ 5f06-jsk3)
2021/01/23(土) 12:19:40.78ID:joIGd+XG0
教えていただきたいのですが、rubyのclassでそのclassに存在するプロパティ一覧を取得する方法ありますか?

以下の様なクラスを作ってます。

class Data
def self.csv_header
return 'name,id,data1,data2'
end

attr_reader :name, :id, :data1, :data2

def initialize(name:, id:, data1:, data2)
@name = name
@id = id
@data1 = data1
@data2 = data2
end

def to_csv
return "#{@name},#{@id},#{@data1},#{@data2}"
end
end

要するに、何か複数のデータを持つクラスがあり、それをcsvとして出力したいです。
そのヘッダーを出力する機能をクラスメソッドとして持たせたいのですが、このクラスメソッド(csv_header)の中身を手で書くのではなく、javaで言う所のreflectionか何かを使って出力する方法はありますか?


よろしくお願いいたします
55デフォルトの名無しさん (オッペケ Sr7b-3C30)
2021/01/24(日) 22:13:50.30ID:kU4Polklr
>>54
hoge = Data.new('name', id: 0, data1: 1, data2: 2)
ivs = hoge.instance_variables
ivs.each{|iv| puts "%s => %p" % [iv, hoge.instance_variable_get(iv)]}
# =>
name => "name"
id => 0
data1 => 1
data2 => 2
56デフォルトの名無しさん (ワッチョイ 7f2c-8PYP)
2021/01/25(月) 17:06:01.79ID:+q31tGtg0
黒魔術・メタプログラミングで、よく見る

インスタンス変数用のinstance_variables、
クラス/モジュールには、クラス変数(@@these_things)用のclass_variables
57デフォルトの名無しさん (ワッチョイ 5f01-oRbG)
2021/01/25(月) 18:43:13.07ID:co/Rkwpa0
>>54
そういう用途はStruct使うといいんでない?

Foo = Struct.new("Foo", :name, :id, :data1, :data2)
foo = Foo.new("foo", 1, "123", "456")
foo.to_h.keys
#=> [:name, :id, :data1, :data2]
foo.to_h.keys.to_csv
#=> "name,id,data1,data2¥n"
58デフォルトの名無しさん (ワッチョイ 5f01-oRbG)
2021/01/25(月) 18:47:31.66ID:co/Rkwpa0
Structは初期化時の引数の数が一致してなくてもエラーにならずにnilがデフォルト値になる
それがいやな場合は継承してコンストラクタを上書き

class Bar < Struct.new("Bar", :name, :id, :data1, :data2)
def initialize(name, id, data1=nil, data2=nil)
super
end
end
59デフォルトの名無しさん (バットンキン MM7a-HhZe)
2021/01/29(金) 04:39:32.60ID:sK+sAxFfM
質問させてください。
以下のようなデータがあるとして。

data = {
"id": "price_xxxxxxx",
"object": "price",
"active": true,
"billing_scheme": "per_unit",
"created": 1234567,
"currency": "usd",
"metadata": {
"commission": "2"
}
}

このデータを p data.metadata.commission とすると4が表示されるようにしたいです。
どうやって変換すればいいでしょうか?
60デフォルトの名無しさん (バットンキン MM7a-HhZe)
2021/01/29(金) 04:40:41.40ID:sK+sAxFfM
>>59
すいません、4じゃなくて2でした。。
61デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2021/01/29(金) 13:59:12.19ID:IOP7xwlv0
普通にブラケットでアクセスするかdigしたほうがいい気がするが
どうしてもドットでアクセスしたいなら再帰的にOpenStructに変換する

data = JSON.parse(data.to_json, object_class: OpenStruct)
data.metadata.commission
#=> "2"
62デフォルトの名無しさん (ワッチョイ 662c-CS/l)
2021/01/29(金) 14:31:44.23ID:MVM9RsSY0
ハッシュだから、hash.x.xyz は無理だろ

Effective Ruby の項目10 に書いてある、
構造物はハッシュじゃなくて、クラス・Struct を使おうというやつだろ

ただ、その都度、構造が変わるものは、ハッシュの方が良いし、
構造がネストしている場合も難しい

require "json"

json = <<'JSON'
{ "a": "abc",
"x": {
"xyz": "2" }}
JSON

p hash = JSON.parse( json ) #=> {"a"=>"abc", "x"=>{"xyz"=>"2"}}

p hash[ "x" ][ "xyz" ] #=> 2
63デフォルトの名無しさん (バットンキン MM7a-HhZe)
2021/01/29(金) 14:57:50.28ID:sK+sAxFfM
>>61, >>62

ありがとうございます。
背景を書いてませんでしたが、rspec で必要なデータなのです。。
後出しですいません。
なので data.metadata.commission で確認できることが必要なので、Struct(もしくはOpenStruct)で、変換させてみます。
64デフォルトの名無しさん (オッペケ Srbd-+Ul7)
2021/01/29(金) 21:09:33.54ID:/bfQuQp2r
>>59

def hoge!(obj)
  return unless Hash === obj
  def obj.method_missing(name, *_) = self[name]
  obj.each_value{Hash === _1 && hoge!(_1)}
end

hoge!(data)
p data.metadata.commission # => "2"

# 冗談だけど
65デフォルトの名無しさん (ワッチョイ 6a06-fCoL)
2021/02/03(水) 22:28:17.16ID:S1/u+juE0
>>54です。
アドバイスありがとうございます。

私も色々と調べたのですが、オブジェクトを1回作らないと難しいかもしれませんね。
仮にデータが全くなかった場合、csvのヘッダーのみ記述されたcsvファイルを出力したいと考えています。
しかし、データが全くないと、オブジェクトが無いため、オブジェクトからプロパティを取得する方法が使えません。
もちろん、ダミーのオブジェクトを作ればOKですが、少々不自然かと思いました。

Structは知らなかったので、勉強させていただきます。

ありがとうございました。
66デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2021/02/03(水) 23:01:53.55ID:q3Uucr840
Struct.membersでいいんじゃないの?
67デフォルトの名無しさん (アウアウウー Sa9b-EKhR)
2021/02/07(日) 21:57:18.80ID:RWoPy8BIa
https://twitter.com/yukihiro_matz/status/1358048924141973504?s=20
> 世界一周クルーズの広告が表示され、妻と「コロナ収まったら行きたいね」
世界一周は最低500万、上は数千万にもなる。
うっかり金持ち自慢をしてしまう…
https://twitter.com/5chan_nel (5ch newer account)
68デフォルトの名無しさん (ワッチョイ 9286-yOCM)
2021/02/12(金) 15:35:22.83ID:Ru8WMsS80
インストールしなくていい機能縮小版rubyを作って、awkを代替えできるようにする
というのはどうでしょう
69デフォルトの名無しさん (ワッチョイ 8333-cxxd)
2021/02/12(金) 19:50:07.01ID:74skEOdG0
>>68
そんな用途なら、互換性が期待できないRubyよりも、信頼できるPerlのほうがええやろ。
70デフォルトの名無しさん (ワッチョイ cbb3-8Wj8)
2021/02/15(月) 00:33:16.20ID:KKKRaaGF0
すまん唐突だけど質問させて eql口頭でってなんで読んだら良いの?
71デフォルトの名無しさん (ワッチョイ cbb3-8Wj8)
2021/02/15(月) 00:34:14.29ID:KKKRaaGF0
ミスった
eqlって口頭では何て発音したら良いの? です
72デフォルトの名無しさん
イコールって読んでる
equal?とeql?が入り乱れて使われてるところはしらんが。
まぁrubyしてるならequalとeql両方知ってるはずだし短いイコールの方、とかでも伝わるんじゃ
73デフォルトの名無しさん (アウアウウー Sac3-/q7V)
2021/02/15(月) 13:06:36.01ID:2czEo7/ia
イーキュー
イーキューエル
イコール
74デフォルトの名無しさん (オッペケ Src7-gtE8)
2021/02/15(月) 21:15:47.96ID:oDLt9usUr
イークワル
75デフォルトの名無しさん (ワッチョイ cbb3-8Wj8)
2021/02/16(火) 21:32:31.57ID:fxt1OOtg0
>>72
rubyやり始めたところで、eqlがイコールって気づかなかった。短い方のイコールって良いですね!ありがとうございます。
>>73
自分もイーキューエルだて頭の中で読んでた
>>74
なんでやーーー!!
76デフォルトの名無しさん (ワッチョイ cbb3-pcjv)
2021/02/16(火) 22:13:45.11ID:fxt1OOtg0
すみません、質問です
hash生成時に、
str={"key1" = "val1"}
ではエラーになる理由を教えてください。
77デフォルトの名無しさん (ワッチョイ 162c-FDiY)
2021/02/16(火) 22:25:37.65ID:F9q4wvox0
p hash = { "a" => "b" } #=> {"a"=>"b"}

全角の{}を使うな。
文字列以外は半角英数字のみ
78デフォルトの名無しさん (ワッチョイ cbb3-pcjv)
2021/02/16(火) 22:28:16.05ID:fxt1OOtg0
>>77
すみません、携帯からで全角と半角を間違えてしまいました。半角として見てくださいm(_ _)m
7977 (ワッチョイ 162c-FDiY)
2021/02/16(火) 23:01:49.84ID:F9q4wvox0
p h_1 = { "a" => "b" } #=> {"a"=>"b"}

p h_2 = { "あ": "い" } #=> {:あ=>"い"}
p h_3 = { one: 1, "two": "2" } #=> {:one=>1, :two=>"2"}

新しめの書き方では、2, 3 みたいに書ける

: を使うと、文字列のキーがシンボルになる
"two": が、:two になる

one: はシンボルのまま
80デフォルトの名無しさん (ワッチョイ cbb3-pcjv)
2021/02/16(火) 23:13:47.99ID:fxt1OOtg0
書いていただいた方法でないと生成できないのですね
丁寧な回答ありがとうございました
81デフォルトの名無しさん (ワッチョイ 8333-cxxd)
2021/02/17(水) 00:25:13.96ID:p6fAds/B0
つーか、なんで「=」でいいと思ったんだか。w
82デフォルトの名無しさん (ワッチョイ bf2d-A6sh)
2021/02/20(土) 02:27:26.66ID:SWSWE4Ss0
AtCoderの解答見てると、rubyで巨大配列を扱うような時に激遅になりがちな気がする
配列アクセスの遅さなのかループの遅さなのかわからんが
83デフォルトの名無しさん (ワッチョイ cf2c-qRZF)
2021/02/20(土) 05:46:26.76ID:CT8193ch0
JIT があるから、1秒間で100万回ループすると、ネイティブコードにコンパイルされて、

1秒間で1,000万回ループできるようになる
84デフォルトの名無しさん (ワントンキン MMa7-bvMg)
2021/02/23(火) 21:47:53.55ID:QIohwxjcM
irbにおいて、
def test; p test; end
とだけ打ち込みました。
すると、Enumerable.methods.grep(/test/) => [:test]
が得られます。
何故、testメソッドが勝手にEnumerableのメソッドになるのか教えていただけないでしょうか。
環境は
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]
です。
85デフォルトの名無しさん (オッペケ Sr07-VXi+)
2021/02/23(火) 22:02:57.19ID:IEGWDKD5r
https://docs.ruby-lang.org/ja/latest/class/main.html
>トップレベルで定義したメソッドは Object の private インスタンスメソッドとして定義されます。

って思ったけどこっちの環境でもprivateにならないな
はて、何故でしょう
86デフォルトの名無しさん (ワッチョイ 6f8c-WTU+)
2021/02/24(水) 02:17:06.53ID:hlmSDKs+0
バグじゃね?
87デフォルトの名無しさん (ワッチョイ cf2c-QclQ)
2021/02/24(水) 02:20:59.00ID:YN61hHjA0
ruby 2.6.6 [x86_64-linux] なら、

def test; p test; end

p Enumerable.methods.grep(/test/) #=> [ ]
8887 (ワッチョイ cf2c-QclQ)
2021/02/24(水) 02:26:45.21ID:YN61hHjA0
p test が文法エラーになるのでは?

test という識別子が存在しないから
89デフォルトの名無しさん (ササクッテロラ Sp07-GD1z)
2021/02/24(水) 07:33:53.13ID:UUqFv7Fhp
0084です。

def test; p test; end
ではなく、
def test; p “test”; end
でした。
大変申し訳ありませんでした。
ほかのメソッドでも同じような動きを確認しています。今日は立て込んでしまっているので、追って別のメソッドの例も提示します。
90デフォルトの名無しさん (ササクッテロラ Sp07-GD1z)
2021/02/24(水) 07:38:08.91ID:UUqFv7Fhp
>>0085さん、確認ありがとうございます。

私は初心者なので、以下の認識で正しいか、何か例外があるのか不安でお尋ねしました。認識は正しかったようですので、もう少し調べてみます。

>トップレベルで定義したメソッドは Object の private インスタンスメソッドとして定義されます。
91デフォルトの名無しさん (ブーイモ MMff-wfSA)
2021/02/24(水) 10:21:05.87ID:a7gl+o1qM
privateかどうかをどうやって確認したの?
要再現コード
92デフォルトの名無しさん (ワッチョイ ff01-pEhb)
2021/02/24(水) 11:26:34.15ID:9gaCPeun0
環境を作り直したほうがよさそう
93デフォルトの名無しさん (ワッチョイ 6f8c-63U7)
2021/02/24(水) 12:25:28.67ID:hlmSDKs+0
ruby 2.6 => [ ]
ruby 2.7 => [:test]
ruby 3.0 => [ ]
94デフォルトの名無しさん (ワッチョイ 6f8c-63U7)
2021/02/24(水) 12:35:04.10ID:hlmSDKs+0
irb(main):001:0> def foo; p "Foo!" end
=> :foo
irb(main):002:0> "abc".foo
"Foo!"
=> "Foo!"
irb(main):003:0> 3.14.foo
"Foo!"
=> "Foo!"
irb(main):004:0> [].foo
"Foo!"
=> "Foo!"
95デフォルトの名無しさん (ワントンキン MM9f-bvMg)
2021/02/24(水) 20:33:38.12ID:p2P+ZlS6M
90です。
パソコンを再起動して、.irb_historyをtouchで初期化したのち、
以下を実行しても同じ結果でした。

irb(main):001:0> def test; p "test"; end
=> :test
irb(main):002:0> Enumerable.methods.grep(/test/)
=> [:test]
irb(main):010:0> exit
$ rbenv -v
rbenv 1.1.2
$ rbenv versions
system
* 2.7.1 (set by /Users/someone/.rbenv/version)

別のメソッドも作ってみましたが、結果は同じでした。
irb(main):001:1* def mul(a,b)
irb(main):002:1* a*b
irb(main):003:0> end
=> :mul
irb(main):004:0> Enumerable.methods.grep(/mul/)
=> [:mul]
irb(main):006:0> exit
$ irb
irb(main):001:0> Enumerable.methods.grep(/mul/)
=> []
96デフォルトの名無しさん (ワントンキン MM9f-bvMg)
2021/02/24(水) 20:38:46.87ID:p2P+ZlS6M
90です。
92さんがおっしゃる通り、環境を作り直すこととします。
私の疑問を受けて、再現性について試していただいた皆様、
ご協力ありがとうございました。
97デフォルトの名無しさん (オッペケ Sr07-VXi+)
2021/02/24(水) 20:41:24.99ID:MS8741jMr
irb(とpry)でトップレベルで定義するとなんかおかしい

$ cat test.rb
def hoge; end
puts 'public: %p' % [methods.grep(/hoge/)]
puts 'private: %p' % [private_methods.grep(/hoge/)]

$ ruby -v test.rb
ruby 2.6.1p33 (2019-01-30 revision 66950) [x64-mingw32]
public: []
private: [:hoge]

$ irb
irb(main):001:0> load("test.rb")
public: []
private: [:hoge]
=> true
irb(main):002:0> def fuga;end
=> :fuga
irb(main):003:0> puts 'public: %p' % [methods.grep(/fuga/)]
public: [:fuga]
=> nil
irb(main):004:0> puts 'private: %p' % [private_methods.grep(/fuga/)]
private: []
=> nil
98デフォルトの名無しさん (ワッチョイ cf2c-QclQ)
2021/02/24(水) 21:30:57.42ID:YN61hHjA0
irb, pry は特殊なのかな?

漏れは、VSCode のCode Runner で、
選択したコード片、またはファイル全体を、右クリックメニューから実行してる

これが楽
99デフォルトの名無しさん (ワッチョイ de2c-tEpZ)
2021/02/27(土) 23:10:50.88ID:xGn+rZN00
WEB+DB vol.121

Ruby 3 特集、30 ページ分
100デフォルトの名無しさん (ワッチョイ 692c-3kAG)
2021/03/13(土) 14:19:53.90ID:33EHGK5P0
Ruby on Rails 6 の本を書いている、2人の新刊

Go言語 ハンズオン、掌田津耶乃、2021/3/6
Elixir実践ガイド、黒田努、2021/2/5

Ruby からGoか、Elixirか、どっちへ進むべきか?
mruby, Rust もあるけど
101デフォルトの名無しさん (ワッチョイ 1384-L4xa)
2021/03/24(水) 00:55:11.21ID:rggl2LA70
Ruby勉強始めたんですが
↓この部分が毎回書きづらいです
コード補完とかってないんですか?


a.map{|x|x+1}←の|x|の部分
102デフォルトの名無しさん (ワッチョイ 1133-urfw)
2021/03/24(水) 04:11:25.02ID:itekFGrv0
vscodeとかでスニペットを利用するとか?
103デフォルトの名無しさん (ワッチョイ 1384-L4xa)
2021/03/24(水) 08:25:35.13ID:rggl2LA70
ruby開発はvscodeが多いの?
104デフォルトの名無しさん (ワッチョイ 937d-ohIf)
2021/03/24(水) 08:57:21.23ID:6ziJ9FkW0
>>101
Ruby 2.7 以降は、番号指定パラメータが導入されたので
a.map{_1+1}
105デフォルトの名無しさん (ワッチョイ 1384-L4xa)
2021/03/24(水) 21:09:04.11ID:rggl2LA70
>>104
ありがとうございます!
106デフォルトの名無しさん (オッペケ Sr85-NT4g)
2021/03/24(水) 21:14:35.26ID:9CHTdUsFr
え、それでいいんか……
107デフォルトの名無しさん (オッペケ Sr85-azCS)
2021/03/25(木) 16:55:46.31ID:LuSagST9r
プログラミング言語Crystal、初のメジャーリリースとなるバージョン1.0を公開
108デフォルトの名無しさん (ワッチョイ 292c-6umI)
2021/03/25(木) 18:17:35.84ID:18nzHvsr0
最近は全言語で、VSCode の拡張機能・Remote Container で、Docker を使う

Windows 10 Home でも、WSL2 が出来るようになった
109デフォルトの名無しさん (ワッチョイ 292c-6umI)
2021/03/25(木) 18:25:49.27ID:18nzHvsr0
Elixir でも、無名関数をキャプチャー演算子・& を使って、短く書ける

fn a, b -> a * b end

&(&1 * &2)
& &1 * &2
110デフォルトの名無しさん (ワッチョイ 15bb-giyE)
2021/04/02(金) 01:45:05.99ID:6d4XTvSa0
rubyでExcelへデータを出力しようとしているんですが、
どうしてもできないことがあり質問します。

ruby -v 3.0.0p0

rubyでExcelのデータを検索するときはFindを使うと思うのですが、
日付項目(シリアル値)を検索するときはどうすればいいのでしょうか。
以下をやってみましたが、検索できませんでした。

find('3/30') ・・・Excelの表示を指定
find('4321') ・・・シリアル値を指定
111デフォルトの名無しさん (ブーイモ MM6b-ehU2)
2021/04/02(金) 16:34:32.49ID:NYPc8neoM
>>110
使ってるライブラリが分からないと答えようがない
112デフォルトの名無しさん (ワッチョイ 15bb-GQkc)
2021/04/03(土) 07:31:20.35ID:zsAyk+ZV0
>>111
失礼しました。
ライブラリはWin32OLEです
113デフォルトの名無しさん (ワッチョイ 1b8c-AiiE)
2021/04/07(水) 17:40:29.80ID:DBwHd1C70
>>110
上はできた。下はダメだった
ちなみに表示が3月30日の場合、find('3/30') はいけたが find('3月30日') はダメ
114デフォルトの名無しさん (アウアウウー Sae9-BKft)
2021/04/07(水) 19:54:57.14ID:J1UfrlOYa
>>113
え、いけました??
家に帰ったらもう一回やってみます。
教えて頂いてありがとうございます。
115デフォルトの名無しさん (ワッチョイ 7b35-mU/W)
2021/04/09(金) 09:17:30.32ID:+qPfXmCt0
>>17
on ruby rails
と出力されると思いきや、ruby “on ¥n rails”だって。
なんでだ?
Here Documentの仕様ってどうなってんの?
116デフォルトの名無しさん (ワッチョイ 9b33-EbLS)
2021/04/09(金) 11:00:25.81ID:9/L6JEXU0
>>115
終端行までなんだから、その前にある改行文字は含まれてあたりまえやろ。
117デフォルトの名無しさん (ワッチョイ 0e8c-bwXk)
2021/04/09(金) 21:32:27.88ID:GCSyW51k0
ヒアドキュメントの評価値とは別に
#{print "ruby "} で"ruby "とprintされるクソみたいなコードだから
118デフォルトの名無しさん (オッペケ Sr5f-LdNq)
2021/04/09(金) 21:45:43.65ID:PjsXsZBpr
まあなぞなぞみたいなもんでしょ
クソコードとかいったら身も蓋もない
119デフォルトの名無しさん (ワッチョイ 4e9f-m7N9)
2021/04/09(金) 22:01:43.18ID:pm4fGgmv0
Loggerで出力する内容を奪い取って、他のメソッド呼び出しにするってどう言う実装したらいいですか?

例えば全てをTest::any::log(msg)を内部的に呼び出して終わるみたいなLoggerを作るにはどうしたらいいですか?

Logger.new(STDERR)だと全て標準エラーに出力ですが、これを全てTest::any::log(msg)の呼び出しで標準エラーには何も出さないloggerを作りたいのです
120デフォルトの名無しさん (ワッチョイ 6f2c-ORmy)
2021/04/10(土) 02:35:21.72ID:OA/XTa6K0
C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb では、
インスタンス変数に、標準エラーを代入してる

@fileutils_output ||= $stderr
@fileutils_output = $stderr

漏れは、それを真似て、
DryRun の時だけ、noop: true, verbose: true を付けて、
標準出力から標準エラーに切り替えるような、モジュールを作っている

module MyFileUtils
@fileutils_output = $stdout

extend self
def f( *args, **options ) # 配列・ハッシュ
p @fileutils_output
@fileutils_output.puts( args, options )
end

module DryRun
include MyFileUtils
@fileutils_output = $stderr

extend self
def f( *args, **options )
super( *args, **options, noop: true, verbose: true )
end
end
end

MyFileUtils.f( 1, 2, a: 8, b: 9 )
MyFileUtils::DryRun.f( 1, 2, a: 8, b: 9 )
121120 (ワッチョイ 6f2c-ORmy)
2021/04/10(土) 06:15:13.31ID:OA/XTa6K0
Ruby 逆引きハンドブックには、こう書いてある

Logger.new の引数には、ログファイルパスか、
write, close が定義された、IO などのオブジェクトを指定する
122120 (ワッチョイ 6f2c-ORmy)
2021/04/10(土) 06:29:33.47ID:OA/XTa6K0
Ruby 逆引きハンドブックには、メソッドオブジェクトも載ってる

def f_a( ) :a end
def f_b( ) :b end

def doit( command )
m = method( command )
m.call
end

def doit_2( command )
__send__ command
end

p doit( :f_a ) #=> :a
p doit_2( :f_b ) #=> :b
123デフォルトの名無しさん (ワッチョイ e284-mJkV)
2021/04/14(水) 15:02:16.96ID:/0Vt4vuj0
gem installって個別のユーザー環境のみに反映することってできますか?
インストールしたらそのPCを使ってる全ユーザーに反映されないようにしたいです
どうしたらいいですか?
124デフォルトの名無しさん (ワッチョイ a201-vZv9)
2021/04/14(水) 15:47:13.93ID:0xQQ9slV0
1. 環境変数のGEM_HOMEを指定する
2. --install-dirを指定してインストール
3. --user-installを指定してインストール
4. rbenvを使う

どれでもいける
とりあえずgem help installでヘルプを見るといい
125デフォルトの名無しさん (ワッチョイ e284-mJkV)
2021/04/14(水) 18:21:50.16ID:/0Vt4vuj0
>>124
ありがとうございます
126デフォルトの名無しさん (ワッチョイ 4652-rqav)
2021/04/23(金) 12:36:53.84ID:j9CkA04K0
{"status"=>0, "data"=>[{"ask"=>"5370001", "bid"=>"5370000", "high"=>"5634576", "last"=>"5371160", "low"=>"5243350", "symbol"=>"BTC", "timestamp"=>"2021-04-23T03:22:36.028Z", "volume"=>"854.3707"}], "responsetime"=>"2021-04-23T03:22:37.031Z"}

このハッシュ?から5370000の値を取り出したいのですが上手くいきません。助けてください
127デフォルトの名無しさん (ワッチョイ 245f-DYWd)
2021/04/23(金) 19:53:44.06ID:gO4UxsH40
>>126
どうやろうとしてうまくいかんの?
128デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/23(金) 20:21:10.93ID:v3P9E6mR0
>>127
jsonをパースして変数に入れてbidが持つ値を出力したいのですがnilが返ってきます
129デフォルトの名無しさん (ワッチョイ 6333-gjMA)
2021/04/23(金) 20:36:39.90ID:7NT1P8pu0
>>128
やなくて、コードをはれ。

まあ、たぶんdataが配列なのを見逃して0がぬけてるだけやろ。
dig('data',0,'bid')とか?
130デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/23(金) 21:26:36.95ID:v3P9E6mR0
>>129
ヒントを元にそれぞれブラケットで囲ったら行けました。ありがとうございました
131デフォルトの名無しさん (オッペケ Sr39-R0M4)
2021/04/23(金) 21:33:33.39ID:dol38sZTr
本質的に理解してないやろこれ
132デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/24(土) 06:25:40.53ID:+DYpagDZ0
>>131
大変申し訳ありません。digについて理解しました。重ねてありがとうございました。
133デフォルトの名無しさん (ワッチョイ 4652-KcJX)
2021/04/24(土) 15:27:17.38ID:vVXlCGEI0
度々申し訳ないのですが
{"status"=>0, "data"=>[{"amount"=>"0", "available"=>"0", "conversionRate"=>"1", "symbol"=>"JPY"}, {"amount"=>"0", "available"=>"0", "conversionRate"=>"5377836", "symbol"=>"BTC"}], "responsetime"=>"2021-04-24T06:14:41.169Z"}
ここから5377836を出力する場合も理解さえできればdigでいけるのですか?

今のコード
r_hash = JSON.parse(response.body)
puts r_hash["data"][1]["conversionRate"]
# =>"5377836"
できれば覚えたてのこれ使いたい↓
puts response_hash = dig("data",ここわからない,"conversionRate")
134デフォルトの名無しさん (ワッチョイ 7d2d-Im0W)
2021/04/24(土) 16:46:14.63ID:j3qP/sr70
ブラケットで書くのと同じだよ
r_hash["data"][1]["conversionRate"]
r_hash.dig("data", 1, "conversionRate")
135デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/24(土) 22:29:45.06ID:+DYpagDZ0
>>134
ありがとうございます。無事取れたのですが引数が頭の中でぐるぐるしてるのでもう一度リファレンス見てきます
136デフォルトの名無しさん (ワッチョイ 6333-gjMA)
2021/04/24(土) 22:33:17.78ID:rJwQsTRc0
つーか、リストとハッシュについての理解が足りないんちゃうか?
インデックスとかキーとかの感覚がわからんのやろ。
137デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/24(土) 22:56:02.00ID:+DYpagDZ0
>>136
おっしゃる通りです。{[{}{}]}
この形で返ってくるともう何がなんだか
138デフォルトの名無しさん (ワッチョイ 2901-On6t)
2021/04/25(日) 10:27:13.97ID:IoXyqRUD0
配列の添え字(数字)が文字列になっただけだよ
添え字が数字じゃないので一づつ増やすことはできないけど
139デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/25(日) 13:07:39.95ID:EAdTvuiP0
>>138
アドバイスありがとうございます。悲しいくらい今日も予定がないので学習のため一個ずつ値を呼び出して確認してみます。
140デフォルトの名無しさん (ワッチョイ 667d-Nexr)
2021/04/25(日) 13:30:05.13ID:M6swdTrH0
>>139
知ってるかもしれないけど
この手のは p よりも pp で表示するとわかりやすいよ
Ruby 2.5以降は requireしなくても最初から pp が使える
141デフォルトの名無しさん (ワッチョイ 972c-1bRV)
2021/04/25(日) 13:55:29.69ID:oFpMkyEJ0
初心者は、dot install, progate などをやれば?
142デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/25(日) 15:44:12.74ID:EAdTvuiP0
>>140
pp知りませんでした。ありがとうございます。かなり頭の中の世界が変わりました。
プロゲートはいまいちだったのでユーデミーの教材漁ってたのですがもう一度プロゲートやり直してみます
143デフォルトの名無しさん (オッペケ Sr72-R0M4)
2021/04/25(日) 15:53:02.64ID:I4PgyU7Gr
マニュアル読めと言うのは初心者には酷か?
https://docs.ruby-lang.org/ja/latest/doc/index.html
144デフォルトの名無しさん (ワッチョイ 972c-1bRV)
2021/04/25(日) 16:58:50.92ID:oFpMkyEJ0
本が好きなら、定番の入門書「たのしいRuby 第6版」2019 とか

YouTube で有名な、雑食系エンジニア・KENTA のサロンは皆、Ruby on Rails じゃないの?
145デフォルトの名無しさん
2021/04/25(日) 17:29:21.56
Excelのsheet1に
A列 B列
1行目 https://www.navitime.co.jp/poi?spot=02022-1220435&;ncm=1  https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/http://www.arashiyamaryo.or.jp/access/
2行目 https://www.navitime.co.jp/poi?spot=02022-1212380&;ncm=1  https://co-trip.jp/article/191673/https://hitosara.com/ch_478603/https://kyo-soku.com/2020/04/03/salon-de-muge/
3行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&;ncm=1  https://www.fruitmoti-shoutikudou.jp/https://sweetsguide.jp/product/90706https://osakalucci.jp/shoutikudou
 
と記載されているのを

sheet2に
A列 B列
1行目 https://www.navitime.co.jp/poi?spot=02022-1220435&;ncm=1 https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1
2行目 https://www.navitime.co.jp/poi?spot=02022-1220435&;ncm=1   https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/
3行目 https://www.navitime.co.jp/poi?spot=02022-1220435&;ncm=1   http://www.arashiyamaryo.or.jp/access/
4行目 https://www.navitime.co.jp/poi?spot=02022-1212380&;ncm=1  https://co-trip.jp/article/191673/
5行目 https://www.navitime.co.jp/poi?spot=02022-1212380&;ncm=1  https://hitosara.com/ch_478603/
6行目 https://www.navitime.co.jp/poi?spot=02022-1212380&;ncm=1 https://kyo-soku.com/2020/04/03/salon-de-muge/
7行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&;ncm=1  https://www.fruitmoti-shoutikudou.jp/
8行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&;ncm=1   https://sweetsguide.jp/product/90706
9行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&;ncm=1  https://osakalucci.jp/shoutikudou

このように変換したいです。オンライン上でRubyを使用して作成したいのですが、どのようにすればよいでしょうか?
146デフォルトの名無しさん (ワッチョイ 972c-1bRV)
2021/04/25(日) 18:11:40.31ID:oFpMkyEJ0
まず、http://~、https://~ を、3つ連結した、

https://http://https://~ みたいな文字列を、3つに分離する
147デフォルトの名無しさん (ワッチョイ 6333-gjMA)
2021/04/25(日) 18:37:11.77ID:nrx375qK0
>>145
「オンライン」とは?サーバーでということか?Windows?
Excelはxlsx?csvなら難しくはないが。。。

など、あぶなっかしいところが多すぎ。
初心者がやるにはたいへんやな。w
やめといたら?
148デフォルトの名無しさん (ワッチョイ 972c-1bRV)
2021/04/25(日) 23:09:08.20ID:oFpMkyEJ0
3つに分離する部分だけを作った。
入出力の部分は、CSV モジュールを使えば?

re = %r!https?://! # 正規表現。http/https
input = String.new( "https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/http://www.arashiyamaryo.or.jp/access/"; )

positions = [ ]
pos = 0

while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字h の位置
pos = md.end( 0 ) # 一致した末尾文字/ の次の文字の位置
end

# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
pp urls.reverse # 反転

出力
["https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1";,
"https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/";,
"http://www.arashiyamaryo.or.jp/access/";]
149148 (ワッチョイ 972c-42zS)
2021/04/26(月) 13:51:09.40ID:0DE0v1OZ0
出来た!
文字列を3分割する部分を関数化して、呼び出す

入出力は、CSV 形式で。
入力ファイルは、input.csv

paiza.IO などで実行してみれば?
ただし、この前、paizaのソースコードが消えてしまったけど。
定期的に消えるのかな?

# 引数の文字列を3分割して、配列に入れて返す
def split_string( input_str )
re = %r!https?://! # 正規表現。http/https

# 下で、slice! で変更するために、破壊的変更可能文字列へ変換する
input = String.new( input_str )

positions = [ ]
pos = 0

while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字・h の位置
pos = md.end( 0 ) # 一致した末尾文字・/ の次の文字の位置
end

# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
urls.reverse # 反転
end

次へ続く
150148 (ワッチョイ 972c-42zS)
2021/04/26(月) 13:52:06.70ID:0DE0v1OZ0
require 'csv'

result_ary = [ ]

CSV.foreach( "input.csv" ) do |row| # 1行ずつ処理する
split_ary = split_string( row[ 1 ] )

split_ary.each do |url|
result_ary.push [ row[ 0 ], url ]
end
end

# 2次元配列を、CSV 文字列に変換する
csv_str = result_ary.map( &:to_csv ).join
print csv_str
151デフォルトの名無しさん (ワッチョイ b206-A/Lu)
2021/04/26(月) 22:46:21.55ID:RYaLTPlL0
paramsという名前のハッシュを関数の中で使う際、
:codeの組をhogeだけでなくmoge、kuge、sageなど
関数の引数で選べるようにする場合、
'+ 引数名 +'だとエラーになるようですが、
バリューに引数を使おうとしている事自体が根本的に間違っていますか?
params = {
:code=> 'hoge', ←'+ 引数名 +'だとダメ。ここを入れ替えたい
:page => 1,
:count => 5
}
152デフォルトの名無しさん (オッペケ Sr72-R0M4)
2021/04/26(月) 22:54:52.82ID:rfpJ92nWr
意味が分からん。
エラーになるコードと希望する出力は何?
153デフォルトの名無しさん (ワッチョイ b206-A/Lu)
2021/04/26(月) 23:08:46.56ID:RYaLTPlL0
>>152
APIを使用して住んでる地域の時間ごとの過去の天気を見る学習をするはずだったのですが
自分でも何がしたいのかわからなくなってきたのでちょっと出直します。
すみませんでした。
154デフォルトの名無しさん (オッペケ Sr72-R0M4)
2021/04/26(月) 23:31:12.51ID:rfpJ92nWr
>>153
おう、がんばれ
155デフォルトの名無しさん (ワッチョイ 6333-gjMA)
2021/04/27(火) 00:08:05.54ID:6stPm5Ss0
>>151
変数名と値(リテラル)の区別があやふやなんでは?
変数名をクォートしようとしている時点でヤバイ。
156デフォルトの名無しさん
2021/04/27(火) 16:05:13.93
>>148-150
ありがとうございます。
rubyのインストールが上手く出来なかったので明日またやってみます。
157デフォルトの名無しさん
2021/04/28(水) 22:23:58.72
145です。
出来ました。ありがとうございます。
158デフォルトの名無しさん (ワッチョイ 075f-sbML)
2021/04/30(金) 21:24:36.83ID:DJ/L1TU20
>>150
Array#to_csvってかなり非効率的なんで避けたほうが無難
csv_str = CSV.generate{|csv| result_ary.each{|it| csv << it } }
159デフォルトの名無しさん (ワッチョイ df92-Tzm5)
2021/05/03(月) 11:06:41.86ID:B6Xr9eKd0
Pythonみたいに行けてるエクセルライブラリが欲しい。。
160デフォルトの名無しさん (アウアウカー Sa7b-M6Ch)
2021/05/12(水) 09:35:54.83ID:NUn3zAQRa
>>158
非効率というのは遅いって事ですか?
161デフォルトの名無しさん (ワッチョイ 9f5f-woDw)
2021/05/12(水) 10:19:17.28ID:iLdhy1ll0
>>160
require "bundler/inline"
gemfile do
source "https://rubygems.org";
gem "benchmark_driver"
end

Benchmark.driver do |x|
x.prelude %{require "csv"}
x.prelude %{ITEMS = Array.new(1000){ ["fooo", 12345,6789] }}
x.report "to_csv", %{ csv_str = ITEMS.map{ _1.to_csv }.join }
x.report "&:to_csv", %{ csv_str = ITEMS.map(&:to_csv).join }
x.report "generate", %{ csv_str = CSV.generate{|csv| ITEMS.each{|it| csv << it } } }
end

計測すると6倍ほどto_csvの方が遅い事がわかる

to_csvは
https://github.com/ruby/csv/blob/efb257e28f85741fb5c2637f707121e55e4c5ca9/lib/csv/core_ext/array.rb
https://github.com/ruby/csv/blob/efb257e28f85741fb5c2637f707121e55e4c5ca9/lib/csv.rb#L1452
見ると分かるがCSV.new等を毎回行う手抜き実装(バグりにくいというメリットは確かにある)
1行だけならともかく複数行をcsv化したいなら微妙
162デフォルトの名無しさん (ブーイモ MM3f-rYak)
2021/05/12(水) 11:11:15.22ID:heOXda5CM
実際にはどうせファイルに書き込むんだからファイルIOがボトルネックになるんで誤差だよ
無意味なベンチマークだね
163デフォルトの名無しさん (ワッチョイ 2f33-QCpi)
2021/05/12(水) 11:18:11.79ID:VEm96Egx0
>>162
キャッシュなしフロッピーディスク💾を使ってるのかな?w
164デフォルトの名無しさん (ワッチョイ 9f5f-woDw)
2021/05/12(水) 11:41:45.65ID:iLdhy1ll0
>>162
Benchmark.driver do |x|
x.prelude %{require "csv"}
x.prelude %{require "tempfile"}
x.prelude %{ITEMS = Array.new(1000){ ["fooo", 12345,6789] }}
x.report "to_csv", %{ Tempfile.create{ _1.write ITEMS.map(&:to_csv).join } }
x.report "generate", %{ Tempfile.create{ _1.write CSV.generate{|csv| ITEMS.each{|it| csv << it } } }}
end

確かに縮まりはしたが
うちのオンボロPCでも5倍弱の差が出ました。
165デフォルトの名無しさん (アウアウウー Sa1f-M6Ch)
2021/05/12(水) 22:35:04.85ID:gVUbVQ8ua
何秒が何秒になったんですか?
166デフォルトの名無しさん (ワッチョイ dbb7-08Bm)
2021/06/01(火) 17:26:14.50ID:iV+6o72S0
c="C:\Program Files\7-Zip\7z.exe"
p c

で出力は

> "C:Program Files\a-Zip\az.exe"

となってしまうんですが、なんで7がaに変わってしまってるんでしょうか?

2.6.5p114 (2019-10-01 revision 67812) [x64-mingw32]です
167デフォルトの名無しさん (ワッチョイ b95f-qEHq)
2021/06/01(火) 17:31:29.95ID:DkdlQ1eQ0
https://ja.wikipedia.org/wiki/ベル文字
> ベル文字は、ASCIIとUnicodeでは十進数で7
> 1972年に作られたC言語では、ベル文字は文字定数 \aで表される。'a'は"alert"や"audible"の頭文字である。'b'は既にバックスペースに使われていた。
168デフォルトの名無しさん (ワッチョイ 1301-2Amd)
2021/06/01(火) 18:04:34.76ID:uwqmKkHK0
>>166
バックスラッシュ記法で8進数表記のパターンとして解釈されるから
式展開が必要なければシングルクウォートにするといい
https://docs.ruby-lang.org/ja/3.0.0/doc/spec=2fliteral.html#backslash

¥007も¥07も¥7も同じ
C言語由来のエスケープシーケンス
169デフォルトの名無しさん (ワッチョイ 5133-wy77)
2021/06/01(火) 18:56:08.30ID:acqsmkid0
>>166
>>168のシングルクォートよりも、パスの区切り文字を「/」にすることをすすめたい。

パスの区切り文字が「¥」でなければいけないのはコマンドプロンプトなど一部のみ。
だいたいが「/」でも可。
170デフォルトの名無しさん (ワッチョイ dbb7-08Bm)
2021/06/01(火) 21:37:59.00ID:iV+6o72S0
>>167-169
まとレスにて失礼します

aに置き換わる謎はわかりました
シングルクォートなのですが、面倒くさいことにWindowsの決め打ちで空白が入っているので
それを考えるとダブルクォートで囲まざるを得ず、けっきょくこんな形になってしまいました

c="\"C:\\Program Files\\7-Zip\\7z.exe\""

このあと
system("#{c} a -mx9 ...")
みたいな形で呼び出します
171デフォルトの名無しさん (ワッチョイ 137d-W1af)
2021/06/01(火) 22:03:40.90ID:eWE6r8CI0
>>170
c = '"C:\Program Files\7-Zip\7z.exe"'
172デフォルトの名無しさん (オッペケ Sr8d-0MMr)
2021/06/02(水) 19:46:00.37ID:onKqKKZNr
>>170
すごく短くまとまってるから、一度公式のリファレンス読んだ方がいいよ
https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#string
173デフォルトの名無しさん (ワッチョイ dbb7-08Bm)
2021/06/02(水) 20:29:52.62ID:92rWXivp0
>>171
ああなるほど
それで行けますね
昔は自分でもそんな書き方してたかもしれなかったです

>>172
ご案内ありがとうございます
シングルクォートとダブルクォートの意味とか違いは理解していたのですが
中に\入れたときとか、とくに168さんに指摘されたように8進数での扱いが特別だということは
よく理解していなかったので、これを機会に知識を正確にしておきます
174デフォルトの名無しさん (ワッチョイ f101-snRc)
2021/06/03(木) 18:27:26.17ID:peqY6uPj0
完全にプログラミング0からで「スラスラ読めるrubyふりがなプログラミング」を買って始めたのですが
macbookairでrbenvでruby3.0.1をダウンロードしてrbenv versionでは3.0.1と表示されるのですがruby -vでは2.6.3と元々入ってるrubyが表示されます
まだ何も分かってないのにhomebrewとrbenvのダウンロードが上手くいかず色々見ながらやってきたので余計な事をしてしまったのではないかと心配です
175デフォルトの名無しさん (ワッチョイ f101-snRc)
2021/06/03(木) 18:56:51.38ID:peqY6uPj0
>>174ですが
自己解決しました
bash profileに何か誤ったものを書き込んでしまったようで消したら3.0.1に切り替わりました
176デフォルトの名無しさん (ワッチョイ 8961-szig)
2021/06/05(土) 14:54:45.98ID:uC9Joojh0
Rubyで、syntax error 的なものが生じていても、そのまま実行が続けられている
ように見える現象が時々起きる。
これは何が起きている?
errorが起きた場所で停止させる方法はある?
177デフォルトの名無しさん (オッペケ Sred-1bbd)
2021/06/05(土) 15:26:37.54ID:SGijWivar
rescue SyntaxError
178デフォルトの名無しさん (ワッチョイ 35bb-l3mb)
2021/06/05(土) 20:10:36.75ID:K+vX0E1p0
>>176
そのエラーが起こった時に何が表示されているの?
179デフォルトの名無しさん (ワッチョイ 8961-szig)
2021/06/06(日) 16:19:02.76ID:1amPE6il0
>>178
例えば、xxx という変数を定義してない状態で、
[aaa.rb]
def some_func()
  ・・・
  print( "xxx=#{xxx}\n" );
  ・・・
end
という関数を呼び出すと、

aaa.rb:3882:in `some_func': undefined local variable or method `xxx' for main:Object (NameError)
  from aaa.rb:5638:in `main'
  from aaa.rb:5667:in `<main>'

と出るが、そのまま実行が続けられてしまう。
180デフォルトの名無しさん (オッペケ Sred-1bbd)
2021/06/06(日) 17:06:19.62ID:B1fTG1Q6r
>>179
begin
rescue
end
の構造してるだけじゃないの
181デフォルトの名無しさん (ワッチョイ 8961-szig)
2021/06/06(日) 17:09:33.22ID:1amPE6il0
>>180
そういうものは使ってない。
182デフォルトの名無しさん (オッペケ Sred-1bbd)
2021/06/06(日) 17:12:50.30ID:B1fTG1Q6r
>>181
再現するコードを共有することはできますか?
183デフォルトの名無しさん (ワッチョイ 8961-szig)
2021/06/06(日) 17:37:47.34ID:1amPE6il0
>>182
できない。
大事なコードだから非公開。
184デフォルトの名無しさん (オッペケ Sred-1bbd)
2021/06/06(日) 17:44:51.53ID:B1fTG1Q6r
そうであれば我々にはわかりえない。
まあどっかでrequireをオーバーライドしてるとかじゃないの。
185デフォルトの名無しさん (ワッチョイ 8961-szig)
2021/06/06(日) 18:17:08.76ID:1amPE6il0
>>184
全部自分で書いたコードで、Rubyの基本的な機能しか使ってない。
また、検索してみたが、begin や rescue というキーワードは全く使ってなかった。
186デフォルトの名無しさん (ワッチョイ d95f-xfqN)
2021/06/06(日) 21:13:38.74ID:kq17Ee/S0
別スレッドも停止させたいのであれば、Thread.abort_on_exception=trueが必要とか?
187デフォルトの名無しさん (ワッチョイ 8961-szig)
2021/06/06(日) 22:12:59.95ID:1amPE6il0
>>186
シングルスレッドしか使ってない。
188デフォルトの名無しさん (ワッチョイ 1533-4+2e)
2021/06/06(日) 23:44:17.52ID:///+rfU80
もうええて。
追加情報がなきゃあもうムリやろ。
189デフォルトの名無しさん (ワッチョイ 8961-szig)
2021/06/07(月) 08:20:47.92ID:Q1HfUOnq0
バグだね。
190デフォルトの名無しさん (ワッチョイ 1533-4+2e)
2021/06/07(月) 12:05:22.54ID:Qb3DiLXp0
さすがのRubyでも、そんなアホみたいな「バグ」なんかないやろ。w
191デフォルトの名無しさん (ワッチョイ d95f-xfqN)
2021/06/07(月) 13:11:30.61ID:tJ2RoPVV0
おまえさん一人だけの症状なんだし再現できるコード・環境を出せない以上おま環
192デフォルトの名無しさん (ワッチョイ 152c-3tT5)
2021/06/07(月) 13:15:54.00ID:pl6618+T0
>>170
コマンドプロンプトでも普通に、/ を使える。
これで実行できる

ruby C:/Users/Owner/Documents/a.rb

パスに空白が入っている場合は、シングル・ダブルクォーテーションで囲む

PowerShell(PS)でも良いし。
Windows Terminal なら、Bash, PS、コマンドプロンプトの3つを使える
193デフォルトの名無しさん (ワッチョイ 3e8c-sVwe)
2021/06/08(火) 10:27:31.04ID:ljhkY4kR0
Powershellで標準出力をリダイレクトしてると
Ctrl-C押した時at_exitに飛ばずに死ぬの何なの?
194デフォルトの名無しさん (ワッチョイ 152c-3tT5)
2021/06/08(火) 11:47:19.54ID:dOMi6vvz0
そのアプリが、SIG-INT・中断をキャッチしない場合は、
SIG-KILL・強制終了されるのだろう

強制終了は、受け身が取れない。
たぶん、デフォルトの挙動は、そうなのだろう
195デフォルトの名無しさん (ワッチョイ 3e8c-sVwe)
2021/06/08(火) 12:46:57.32ID:ljhkY4kR0
リダイレクトしていなければ普通にat_exitに飛ぶんだよ
196デフォルトの名無しさん (ワッチョイ d95f-xfqN)
2021/06/08(火) 14:00:54.76ID:8dk2g5lI0
試しにpythonでもatexit使ってみたが同様に強制終了される
Traceback出力されるのにatexitは実行されない
197デフォルトの名無しさん (ワッチョイ 1533-4+2e)
2021/06/08(火) 14:04:16.61ID:xXGg8olZ0
Rubyスレなんだが!
198デフォルトの名無しさん (ワッチョイ d95f-Z4gB)
2021/06/08(火) 14:34:31.00ID:8dk2g5lI0
powershellがバグってる
cmd /c 経由なら正常にリダイレクトおよびctrl+cできたわ
199デフォルトの名無しさん (ワッチョイ 3e8c-sVwe)
2021/06/08(火) 14:44:58.07ID:ljhkY4kR0
え~~マジっすか

検証してくれてありがとうございました。
200デフォルトの名無しさん (ワッチョイ 3e8c-sVwe)
2021/06/08(火) 17:51:22.97ID:ljhkY4kR0
まずパイプが終了して、それに巻き込まれてpythonのプロセスが落ちるとかなんとか
rubyの挙動を調べるためにpythonでググるってなんだかな
201デフォルトの名無しさん (オッペケ Sred-1bbd)
2021/06/08(火) 20:59:45.11ID:7WqSN2WLr
そういやパイプ周りの不具合がなんかあったな
202デフォルトの名無しさん (オッペケ Sred-1bbd)
2021/06/08(火) 21:13:49.57ID:7WqSN2WLr
と思ったら今回の件と何も関係が無かったわ。

https://bugs.ruby-lang.org/issues/14245
203デフォルトの名無しさん (ワッチョイ ea92-Qqtb)
2021/06/08(火) 21:15:32.86ID:S62X2+fs0
>>159
ほんと、これは甚だ同意。
204デフォルトの名無しさん (スププ Sdea-mjSI)
2021/06/10(木) 21:34:01.60ID:Hn4s45bFd
現在ラズパイにrubyとpythonを入れて処理を並列に自動実行しようと思ってます
ただ台数が多いため一台ごとにソースを変えるのは回避したいです
なので理想は起動時に最新のソースに自動で更新です
このようなことをしたいときはどのようにするのが一番簡単でしょうか?
rubyでサーバーから最新のソースをコピーしたあとにrubyとpythonを実行?
家で使用するのでセキュリティーとかは気にしません
205デフォルトの名無しさん (ワッチョイ 0a01-UPQK)
2021/06/10(木) 22:40:14.97ID:t0oieqtV0
>>204
rsyncすれば?
206デフォルトの名無しさん (ブーイモ MM67-bi/t)
2021/06/18(金) 09:43:06.27ID:Jo75oGSbM
>>204
厳密に一斉に切り替わらなくてもいいならcronとかで定期的にGitHubからpullする
手段が目的だと堂々と言えるならKubernetesのクラスタ組むとかも面白い
207デフォルトの名無しさん (アウアウウー Sa47-565v)
2021/06/23(水) 23:47:46.99ID:vtN99wcma
ライブラリのopenのように、
open() do |f|
・・・
end

と書いてもよく、

f= open()
・・・
f.close

と書いてもいいというクラスor メソッドは
どうやって作ればいいのでしょうか。
yieldを使うとイテレータのみになってしまうし、
returnすると下の例だけになってしまいます。
208デフォルトの名無しさん (ワッチョイ 5a01-QZnr)
2021/06/24(木) 00:15:52.97ID:PG/lAwcj0
if block_given? で分岐
209デフォルトの名無しさん (ワッチョイ 3bbb-565v)
2021/06/24(木) 07:40:00.21ID:R0/fGgxp0
>>208
ありがとうございます。
うまく作れました。
210デフォルトの名無しさん (ワッチョイ 3bbb-565v)
2021/06/24(木) 07:56:14.83ID:R0/fGgxp0
すみません、もう一つ教えて下さい。
rubyというかプログラムを書くとき全般の注意として、
ファイルopenとcloseはなるべく近くに書くようにと
ありました。
恐らくclose漏れを警戒しているのだと思います。

yieldを使えば、以下コードでそれを実現できます。

def fileInterface
f= open()
begin
yield f
ensure
f.close
end
end

yieldを使わないパターンでは、
closeを近くにかけないのですが解決策あるでしょうか。
def open
@f= open()
return @f
end

def close
@f.close
end

openメソッド実行
・・・
・・・(大量の処理)
closeメソッド実行
211デフォルトの名無しさん (ワッチョイ db33-l/cN)
2021/06/24(木) 09:32:39.75ID:+4IsK47J0
>>210
大量の処理を関数にして分離。
あるいは、しょせん理想でしかないので、離れていても気にしない。
212デフォルトの名無しさん (ワッチョイ a75f-5d62)
2021/06/24(木) 10:36:21.12ID:5MDZvZ/d0
>>210
close漏れを警戒するのであれば、openにそのままブロックを渡した方がいい
openはブロックの実行結果を返し、ブロック脱出時に勝手にcloseします

まぁ、どうせclose漏れしてもそのうちGCに回収されるかプロセス終了時にcloseされる
213デフォルトの名無しさん (ワッチョイ 5a01-QZnr)
2021/06/24(木) 11:01:09.55ID:PG/lAwcj0
>>210
yield使った実装とやることは同じ

f= open file
begin
大量の処理を含むメソッド f # <― yieldがメソッドに変わるだけ
ensure
f.close
end

同じだからこそ毎回同じことを書かなくてもいいようblock付きで呼び出す
open(file){|f| 大量の処理を含むメソッド f}
214デフォルトの名無しさん (アウアウウー Sa47-565v)
2021/06/24(木) 12:31:52.31ID:9bIzV4XCa
大量の処理を手続きオブジェクトに分離するのは、やりました。
やっぱりそれしかないかな。

ブロック付きで渡すのはオブジェクト指向ではない
コードになりやすく、今回は考えてないです。

また、全体をensureで囲うのは、
さすがにensure対象が暗黙的すぎてちょっとな・・・です。
215デフォルトの名無しさん (ワッチョイ db33-l/cN)
2021/06/24(木) 13:25:07.89ID:+4IsK47J0
>>214
> ブロック付きで渡すのはオブジェクト指向ではない
> コードになりやすく

そうか?
まあ、「オブジェクト指向」にもいろいろあるからな。w
216デフォルトの名無しさん (ワッチョイ 0d01-++Tn)
2021/07/17(土) 09:58:54.08ID:yHV+uNLK0
railsにおいて あるフォームから特定の変数に送られるデータの内容を固定したいのですがなにかいい方法ありますか?

具体的には
<%= form_with model: @hoge do |form|%>
<%= form.text_field :name , value: 'hoge'%>
<%= form.submit %>
<% end %>
と書かれている場合 hogeというモデルのnameという変数に必ずhogeが入るようにしたいのですが上の書き方だと初期値にhogeが入るだけで編集可能になってしまいます。
217デフォルトの名無しさん (ワッチョイ 552c-0PSu)
2021/07/17(土) 10:48:14.79ID:xmQE+uIu0
openに、ブロックを渡す方法は、
コンテキスト・マネージャーという、多くの言語で使われているデザインパターン

これよりも良いものは作れないから、皆が使っている
218デフォルトの名無しさん (ワッチョイ 552c-0PSu)
2021/07/17(土) 10:54:23.38ID:xmQE+uIu0
そりゃ、フォームはサーバーへ送られて更新されるものだから、
変更可能のフィールドが普通

変更不可のフィールドにするなら、
そのフィールドをサーバーへ送らないようにしないといけない

そういうオプションがあるのかな?
219218 (ワッチョイ 552c-0PSu)
2021/07/17(土) 11:08:32.59ID:xmQE+uIu0
「html disabled readonly」で検索!

HTML の <input> 要素には disabled と readonly 属性が存在します

disabled : コントロールが無効化され、フォームを Submit しても、値の送信が行われない

readonly : 値の変更は行えないが、コントロールは有効なので、
フォームを Submit すれば値の送信が行われる
220218 (ワッチョイ 552c-0PSu)
2021/07/17(土) 11:15:24.94ID:xmQE+uIu0
変更不可のフィールドなら、

<input> 要素などを使わずに、単にテキストを表示すれば?
221デフォルトの名無しさん (ワッチョイ 615f-SRm2)
2021/07/17(土) 13:56:18.38ID:EBHVYdQH0
>>216
hidden_field使ってもいいけど
そもそもformによる入力=webからの入力は信頼してはいけない
222デフォルトの名無しさん (ワッチョイ 9dbb-yayT)
2021/07/17(土) 14:27:31.06ID:7kNL/q5q0
>>221
ではどうすればいいでしょうか
223デフォルトの名無しさん (ワッチョイ da33-FmTf)
2021/07/17(土) 16:20:51.36ID:CYR4F+Ue0
>>222
直にソースで書くしか!

ちなみに、XSRFも調べとくとええんちゃう?
224218 (ワッチョイ 552c-0PSu)
2021/07/17(土) 20:48:35.06ID:xmQE+uIu0
マスアサインメント脆弱性を、strong parameters で防ぐ。
更新できる列を、permit で限定する。
これは、コントローラーでの制限

params.require(:person).permit(:name, :age)

Action Controller の概要
https://railsguides.jp/action_controller_overview.html

モデルでのバリデは、

Active Record バリデーション
https://railsguides.jp/active_record_validations.html

Rails ガイド・Rails チュートリアル・黒田努の本などを読むか、
YouTube で有名な、雑食系エンジニア・KENTA のサロンへ入ると良い。
日本6位の、2千人入っている、虎の穴
225デフォルトの名無しさん (ワッチョイ 9dbb-yayT)
2021/07/18(日) 01:26:53.43ID:M+6J3Mfd0
>>217
ブロックで書くとテストコードが書きづらくないですか?

最近はテストコードのことを考えて、普通に、
file = open(file,'r')
とか書いてます。

あと、ブロックはネストするからなあ。
226デフォルトの名無しさん (ワッチョイ 615f-SRm2)
2021/07/18(日) 15:19:50.46ID:WDHzAXg40
>>222
何がしたいのか次第
'hoge'で固定するのであればformで入力させる必要はないですし
なんらかの方法で生成するのであれば生成するタイミングを考えます
入力フォーム表示前に生成し固定する必要があるのであれば
ActiveSupport::MessageVerifier
ActiveSupport::MessageEncrypter
session
などを使う
227218 (ワッチョイ 552c-NvNM)
2021/07/18(日) 22:44:25.79ID:H/NN8O820
Rails の便乗質問するけど、
ユーザーの入力値により、条件判断して、

条件1 の場合には、列A だけを更新して、
条件2 の場合には、列B だけを更新する

と言うのは、どのように書くの?

モデルのcallback かな?
228デフォルトの名無しさん (ワッチョイ 467c-Wyld)
2021/07/19(月) 01:48:34.69ID:0iu7guVA0
ruby silver試験は公式問題集をやれば
合格できますでしょうか、学習時間も参考にさせていただきたいです。
silverを考えています。
バージョンがかなり古いとは思いますが、今のrubyとそんなに変わらないと思ってて大丈夫でしょうか
229218 (ワッチョイ 552c-NvNM)
2021/07/19(月) 07:03:41.76ID:sO73HNBd0
Ruby の資格は、漏れも取っていない。
下のマネーフォワードの本で、良いと思う

改訂2版 Ruby逆引きハンドブック、2018
230デフォルトの名無しさん (ワッチョイ b101-E0YB)
2021/07/20(火) 08:12:05.37ID:EkYsR0Mj0
【A型の人ごめん】「まじめ人間」は、自分の人生を生きられず、しかもお金持ちになれない。

@YouTube


【人生観変わる話】「サラリーマン脳」のヤバい特徴5選。

@YouTube

;t=15s
【人生終了】情弱がハマる「貧困スパイラル」のリアル。

@YouTube


バカでもわかる!ネットビジネスの始め方。

@YouTube

;t=147s
時給労働から卒業しよう!貧乏人が知らない「お金の稼ぎ方」まとめ。

@YouTube


【人生攻略】経験・実績ゼロのあなたが、最短で何者かになる方法。

@YouTube


【残酷】貧乏人はいつも忙しいのに、お金持ちは暇である理由。

@YouTube

231218 (ワッチョイ 552c-NvNM)
2021/07/20(火) 10:14:09.06ID:nphTU9tH0
>>227
自己回答

ユーザーの入力値により、条件判断してはいないけど、

改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018
の400 ページで、

アクションのcreate/update で、
コントローラーのstrong parameters を変える例が書いてある

例えば、下のような感じ

params.require(:person).permit(:name)
params.require(:person).permit(:age)
232デフォルトの名無しさん (ワッチョイ 615f-SRm2)
2021/07/21(水) 10:26:17.53ID:GSJrQWT80
>>231
別に構わんが環境次第でUnpermittedParameters例外出そうな気がするので
@person.update(xxx_params.except(:age))
的な感じのほうがよいかも
233デフォルトの名無しさん (ワッチョイ 7b66-JfG4)
2021/07/24(土) 17:53:55.08ID:niZ/VlC90
pythonなみの公式チュートリアルがあればいいのに
234デフォルトの名無しさん (ワッチョイ 1161-Y/nI)
2021/07/27(火) 10:21:46.39ID:y9fA4YVt0
Railsでも何でもいいんですが、ecサイトの様なユーザー登録とログインシステム
をRubyを使って簡単に構築するライブラリの使い方が書かれている良い本は
有りませんか?
235デフォルトの名無しさん (ワッチョイ a984-MszO)
2021/07/27(火) 11:24:07.05ID:ic7RAKIO0
>>234
Ruby on Railsのチュートリアル
でいいのでは?

簡単に済ませたいならば、
Shopifyとか外部決済システムに外注すれば?
236デフォルトの名無しさん (ワッチョイ f102-pCDs)
2021/07/30(金) 18:21:13.72ID:7AkGA5GJ0
スクレイピングしたいんですけど何を勉強すればいいですか
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?
237デフォルトの名無しさん (オッペケ Sr05-CIJH)
2021/08/03(火) 20:29:25.38ID:1SQdlJBzr
NOKOGIRI
238デフォルトの名無しさん (ワッチョイ fa02-Gkqf)
2021/08/03(火) 22:35:38.25ID:3PGqGTvy0
>>236
踏み台を準備してそこ経由でスクレイピングする
239デフォルトの名無しさん (ワッチョイ 0d84-KzYc)
2021/08/04(水) 01:04:19.47ID:wXXobJu90
>>236
スクレイピングの勉強
240デフォルトの名無しさん (ワッチョイ 4135-YVzu)
2021/08/04(水) 11:12:04.78ID:Ud4GmCQc0
>>236
とりあえず、関心のあるページをローカルに保存してnokogiriでアクセスしてみれば?

crawler部分とscrap部分を分けるのが吉。
つまり、100pagesをスクレーピングするなら、まずhtmlをblob型でDBにinsertしてから欲しいデータをnokogiriで取り出すのだ。
241デフォルトの名無しさん (ワッチョイ 9a2c-QEAr)
2021/08/04(水) 11:45:59.21ID:BE8GLseK0
>>234
よく見るのは、devise gem を使う

パーフェクト Ruby on Rails、2020/7 には、載っていない

改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9 には少しだけ載っている。
ただし、この本は、Ruby 2.5.1, Rails 5.2

Ruby on Rails 6 実践ガイド、黒田努、2019/12、には載っている

ただし、上の黒田努の2冊の本では、devise を使わず、自作している

Rails チュートリアル・Rails ガイドも参照

YouTube で有名な、雑食系エンジニア・KENTA のサロンでは、
2千人の未経験者が、Rails の転職用ポートフォリオを作っている。
そこへ入って、聞いた方がよい
242デフォルトの名無しさん (ワッチョイ 9a2c-QEAr)
2021/08/04(水) 12:01:13.97ID:BE8GLseK0
>>236
サイトのrobots.txt を遵守すること!
これを守らないと、営業妨害で逮捕される

CSS Selector を勉強する。XPath は勉強しなくてよい。
JavaScript も、jQuery 程度は出来た方がよい

gem は、Nokogiri, Selenium Webdriver

Udemy の山浦清透、2021/6

【作業工程フル公開】エンジニアが30万円案件の制作過程を公開

@YouTube


PHP のLaravel で、マイナビ転職をスクレイピングして、データベースへ保存する

基本、この動画と同じ。
これを、Ruby on Rails へ置き換えるだけ
243241 (ワッチョイ 9a2c-QEAr)
2021/08/04(水) 15:15:35.32ID:BE8GLseK0
>>234
Ruby on Rails, devise の動画

Farstep、2019/9

【Rails】deviseを使ったログイン機能の実装(名前でログインする方法を解説)

@YouTube

244241 (ワッチョイ 9a2c-QEAr)
2021/08/04(水) 15:35:06.48ID:BE8GLseK0
YouTube で「ruby on rails devise」で検索すれば、日本人の動画も多い

Farstep, うるぞー、もぐらストア、
やんばるCODE 守護神・バグ取り名人 たけ
245デフォルトの名無しさん (オッペケ Sr05-CIJH)
2021/08/04(水) 22:15:34.77ID:y1FxFhCLr
jQueryって単語、1万年ぶりに見たわ
246デフォルトの名無しさん (ワッチョイ 7a33-Z3HW)
2021/08/05(木) 00:10:48.44ID:r/zZzNU40
>>245
一万十歳かな?
247デフォルトの名無しさん (ワッチョイ 0e70-pCDs)
2021/08/05(木) 12:32:32.94ID:dqIKXfcM0
>>242

>>サイトのrobots.txt を遵守すること!
>>これを守らないと、営業妨害で逮捕される

どういうことですか?
詳しくお願いします
248218 (ワッチョイ 9a2c-QEAr)
2021/08/05(木) 13:11:38.51ID:bqGeTZjz0
>>231
パーフェクト Ruby on Rails 【増補改訂版】 (Perfect series)、2020/7
の92 ページで、

コントローラー内で、private メソッドを定義して、
条件によって、strong parameters を変える例が書いてある

管理者・一般ユーザーで変える例

params.require(:user).permit(:name, :admin)
params.require(:user).permit(:name)
249242 (ワッチョイ 9a2c-QEAr)
2021/08/05(木) 13:20:50.00ID:bqGeTZjz0
>>247

>>242
に書いてある、山浦清透の動画を見れば分かる

各サイトには、robots.txt が置いてあって、
スクレイピングする場合は、必ず30秒空けるとか、
このフォルダはスクレイピングしてはならないとか、多くの条件が書いてある

それを守っていないと、営業妨害になる

スクレイピングは初心者向きじゃないので、各サイトと契約して、API を使うべき!

なぜかと言うと、初心者のプログラムにはバグが多いから、
無限ループしたりして、サイトへ無限にアクセスしたりする

それで、営業妨害で逮捕されるかも知れないから、すごく危険!

プロでも、スクレイピングはしない。
必ず、サイトと契約して、APIを使う

5ch もそう。契約して、APIを使えと言ってる。
勝手にスクレイピングすると、訴えてくるかも知れない
250デフォルトの名無しさん (ワッチョイ 4dcf-pCDs)
2021/08/05(木) 13:38:00.10ID:/9S9EoKc0
>>249
私のスクレイピングしたいサイトにはAPIは公開されていません
またrobots.txtも設置されていません
robots.txtでリクエスト間隔の指定なんてあるのですか?
常識的に数十秒から数分に一回程度のリクエストなら問題ないと思いますが
営業妨害ってどういう意味ですか
IT企業に勤める知り合いはスクレイピングで求人を出すことがあると言ってましたが嘘でしょうか?
5chでスクレイピングしたら相手にバレて訴えられることがあるのですか?
251デフォルトの名無しさん (ブーイモ MMbe-YEAj)
2021/08/05(木) 14:04:49.73ID:RzFkoDJoM
>>250
あるよ
数分に一回のリクエストで落ちるゴミサイトだろうと、結果的に相手の業務に支障が生じれば業務妨害罪に問われる可能性がある
252デフォルトの名無しさん (ワッチョイ 0d84-KzYc)
2021/08/05(木) 14:10:13.57ID:5L8sIm7d0
>>250
> 常識的に数十秒から数分に一回程度のリクエストなら問題ないと思いますが
> 営業妨害ってどういう意味ですか
誰にとっての「常識」ですか?

某岡崎市の某図書館の「りぶらはっく」の件を知りませんか?

(情報リテラシのある側からしたら、)
あんな程度のアクセスで逮捕されるわけない「はずだと思う」なのに、
実態は、全部ゾンビ化(作った業者がアレ)していて、
け●さつがわも情報リテラシがなくアレだから、
結果がアレになっちゃったんですよ。

いいですかー、ここは日本です。
訴える側の後ろ側の行政側がアレな場合が多々あり、
情報リテラシがまったくない、矛盾しまくった法治国家なわけですよ。

誰の常識かは、サイトを提供している側が情報リテラシがない場合、その情報リテラシがない前提が常識なわけです。
つまり、その場合、何らかスクレイピングした時点で営業妨害とみなされても仕方ないですよ?
253デフォルトの名無しさん (ワッチョイ 4dcf-pCDs)
2021/08/05(木) 14:53:47.22ID:/9S9EoKc0
>>252
結局その事件は不起訴処分ですよね?
なぜ不起訴になったかわかりますか
検察側が有罪に出来ないと判断したからです
インターネット業界に携わる者たちからすれば余りにも「一般常識」から外れた言いがかりですからね
あなたのような無知蒙昧で従順な子羊は司直にとっては美味しいお客様ですね
これからも「常識」に則った素晴らしいプログラムを書き続けてくださいね
254デフォルトの名無しさん (ワッチョイ 0d84-KzYc)
2021/08/05(木) 15:24:32.14ID:5L8sIm7d0
>>253
もし本当に訴えられたとき、実際の裁判の場で、>>253 と同じ発言を検察側、裁判官の前で弁論できるとよいですね。
255デフォルトの名無しさん (ワントンキン MM8a-f66/)
2021/08/05(木) 16:15:30.56ID:r8rfvWmzM
まあ不起訴で納得できるならいいんじゃないの?
俺だったら逮捕の時点で嫌だけど
256デフォルトの名無しさん (ワッチョイ 9a2c-QEAr)
2021/08/05(木) 17:07:40.75ID:bqGeTZjz0
逮捕状は名目上、第三者と言われる司法・裁判所が出している。
本当は警察・検察、つまり行政と結託しているけどw
警察はマスコミにリークして、有罪の世論を作る

だから日本では、逮捕 = 100% 有罪。
100%有罪でも、誰もおかしいと思わない。
他国では有罪率が50% ぐらいだけど、日本だけは100%

つまり、三権分立していない。
行政が決めてから、司法が行政のやった事を正当化するような判決文を書く。
行政を勝たせた人だけが出世できるから

でも、判決文を書くのを極端に嫌がる。
N国みたいな政党が、YouTube で裁判官の判決文を批判したりして、おかしいのがばれるから

不起訴になるのは、犯罪者が認めた場合

青汁王子みたいに検察へ喧嘩を売ったら有罪にされたけど、
徳井みたいに脱税を認めたら、不起訴になった
257256 (ワッチョイ 9a2c-QEAr)
2021/08/05(木) 17:20:52.40ID:bqGeTZjz0
その人がやった事を認めたから、不起訴にした

日本では、逮捕 = 100% 有罪だから、絶対に有罪にできる。
日本では自白をすると、裁判所で何を言っても、くつがえせない。
嘘をついて、自白をするわけがないと言う

だから検事は、拷問・家族を脅迫して、自白をさせる

青汁王子みたいに検察の拷問を発表したら、有罪にされた。
それで青汁王子は、検察改革として選挙に立候補するかも知れない

一方、徳井は脱税を認めたら、不起訴になった

ZOZO・前澤も、脱税をマスコミにリークされた。
でも、N国が国会で誰がリークしたか聞いたら、皆、白を切った

これを国会で追求されたら、まずいから。
警察から、マスコミへリークしているのがばれるから

前澤のは、そもそも脱税でもない。
解釈の違い

それを警察がマスコミを使って、青汁王子みたいに悪人に仕立てようとした。
それをN国が国会で質問したから、ばれそうになって白を切った
258デフォルトの名無しさん (ワッチョイ cdb1-IKHw)
2021/08/05(木) 17:25:15.95ID:I7FszFTK0
>>257
ちなみに
5chで
マルチポストしたら
逮捕されるかもしれないって
知ってた?
259デフォルトの名無しさん (ワッチョイ cdb1-IKHw)
2021/08/05(木) 17:29:15.92ID:I7FszFTK0
逮捕はされないかもしれないけど
自分の悪行を
棚に上げて
正義面したら
地獄へ落ちちゃうよ
閻魔様に
舌を抜かれちゃうんだよ
怖いよ
260デフォルトの名無しさん (ワッチョイ cdb1-IKHw)
2021/08/05(木) 17:32:22.30ID:I7FszFTK0
検察も
警察も
裁判も
怖くないよ
地獄へ落ちると怖いよ
舌を抜かれて
張りの山を登らされて
業火に焼かれるんだよ
熱いよ
痛いよ
怖いよ
261デフォルトの名無しさん (ワッチョイ 7a33-Z3HW)
2021/08/05(木) 18:10:22.22ID:r/zZzNU40
きもこわ
262デフォルトの名無しさん (アウアウウー Sa09-Gkqf)
2021/08/05(木) 22:31:27.66ID:vSsQCnpga
別に地獄に落ちるのは怖くないが
昔の人の妄想だし
警察、検察に痛くもない腹を触られるのは怖い
263デフォルトの名無しさん (ワッチョイ 455c-IKHw)
2021/08/05(木) 23:40:13.64ID:6menK19J0
地獄は怖いよ
怖くないって言ってる人
強がり
一番いけないのは
自分のことを棚に上げて
自分が正義だって言う人
地獄へ行くよ
閻魔様に舌を抜かれるよ
痛いよ
でも逮捕はされないかもしれな
でも地獄の方がもっと怖い
264デフォルトの名無しさん (アウアウウー Sa55-yyuh)
2021/08/06(金) 09:34:44.10ID:7P/+UMXla
悪魔の証明みたいだが地獄は存在しない
人間は死んだらそこで意識は消滅。無になる。
意識は脳の中の電気信号の集合だから
脳が動かなくなると意識は永遠に消えてなくなる
265デフォルトの名無しさん (オッペケ Sr5d-f2iR)
2021/08/06(金) 20:13:46.87ID:qRWxBcUir
1. 世界とは事実の総体である。
2. 世界とは<私>の世界である。
2-1. 故に、世界の限界とは<私>の限界である。
2-2. <私>は死なない。視野の端が存在しないように、世界の死は存在しない。
2-2-1. 故に、地獄の存在は事実ではない。
2-2-2. 地獄について語ることはできない。
3. 語りえないことについては沈黙しなければならない。

QED?
266ハノン ◆QZaw55cn4c
2021/08/06(金) 21:35:40.63
>>265
その括弧つきの私(<私>)とは何かを十分に説明していませんね‥‥
267デフォルトの名無しさん (オッペケ Sr5d-f2iR)
2021/08/06(金) 22:04:45.00ID:qRWxBcUir
<私>とは、この私の世界の開闢者。
お前にとっての私ではなく、私にとっての私。
ヒュームが言うところの自我。
268デフォルトの名無しさん (ワッチョイ 915c-Z6Ah)
2021/08/07(土) 00:33:19.88ID:ctvRT72B0
地獄を知ってしまったら
もう地獄はあるよ
自分のことを棚に上げて
他人をバカにしたら
地獄行きだよ
地獄は怖いよ
269デフォルトの名無しさん (ワッチョイ 915c-Z6Ah)
2021/08/08(日) 22:12:00.50ID:Ullx8amr0
自分のことを棚に上げる
一番悪い事
地獄に落ちて
閻魔様に舌を抜かれて
針を飲まされるよ
270デフォルトの名無しさん (ワッチョイ 1302-yyuh)
2021/08/09(月) 12:44:08.03ID:GX8oEfXz0
そういうのを信じてくれると
犯罪が減るからべつにいいけど
私は信じていないけど
271デフォルトの名無しさん (ワッチョイ 915c-Z6Ah)
2021/08/09(月) 21:13:44.03ID:gRn7tUgS0
人に迷惑をかけるのは悪い事
地獄に落ちないかもしれない
でも自分のことを棚に上げて
人に迷惑かけたら
地獄に行く
警察もヤクザも
怖くない
地獄は怖いよ
272デフォルトの名無しさん (ワッチョイ 51ad-Z6Ah)
2021/08/12(木) 00:48:05.26ID:xG1RPqdX0
スクレイピングは逮捕される危険があるって聞いたんだけどマジ?
273デフォルトの名無しさん (ワッチョイ 1bb7-mBWR)
2021/08/12(木) 08:20:26.43ID:oGP6NDDs0
危険ならあるけど実際にどうかは個別案件によるんじゃね
274デフォルトの名無しさん (ワッチョイ 895f-dUoB)
2021/08/12(木) 09:52:15.39ID:e+dZJ+jE0
起訴・有罪までは滅多に行かんとは思うが
逮捕までならありえなくもない
275デフォルトの名無しさん (ワッチョイ 1302-yyuh)
2021/08/12(木) 13:43:21.85ID:Uyxv6qpU0
突然民事訴訟を起こされて
賠償金を要求されることは十分にあり得る
276デフォルトの名無しさん (ワッチョイ 1bb7-mBWR)
2021/08/12(木) 16:10:50.05ID:oGP6NDDs0
ネットだからまずは開示請求からだね
「突然」賠償請求はない
277デフォルトの名無しさん (ワントンキン MM53-gNYO)
2021/08/12(木) 16:42:48.35ID:NvgIkHB7M
受ける方からしたら突然賠償請求だろ
開示請求なんて直接は来ないよね
278デフォルトの名無しさん (ワッチョイ 915c-Z6Ah)
2021/08/12(木) 16:50:15.85ID:drSdi1s70
逮捕も賠償も怖くない
地獄へ行くのが怖い
でも地獄へは行かないかもしれない
でも自分のことを棚に上げて
人の嫌がる事ばかりしてると
地獄へ行く
279デフォルトの名無しさん (ワッチョイ c2a5-NTPF)
2021/08/13(金) 01:45:34.20ID:kzYHP2KN0
じゃあrobots.txtを遵守していればスクレイピングしてもOKなんですね?
280デフォルトの名無しさん (ワッチョイ 4233-Vrrx)
2021/08/13(金) 02:19:03.50ID:BSEOqpqJ0
他者に被害を主張されたらトラブルになる可能性がある。
それだけ。

いいこともそうでないことも、両方ある。
他人に聞いてもムダ。
281デフォルトの名無しさん (ワッチョイ 46b7-/m/d)
2021/08/13(金) 09:28:36.17ID:eq2Tc8oG0
>>277
開示請求は裁判所を通してプロバイダに請求が行くんだけど
プロバイダは顧客である「受ける方」に無断で開示は通常しないで
まずは開示を許可するかを「受ける方」に訊いてくる
だからその段階でなにか事が進んでいるんだなということはバレる
あくまで「突然」賠償請求が来るなんてことはない
282デフォルトの名無しさん (ワッチョイ 46b7-/m/d)
2021/08/13(金) 09:32:36.58ID:eq2Tc8oG0
ネットに限らず相手の素性もわからないのに突然賠償請求なんてできやしない
まずは相手方の特定から始めないとどうにもできない
たとえば道歩いていていきなり殴られて怪我しても
相手がどこの誰なのかがわからなければどうしようもない
警察沙汰にして警察が相手の素性を教えてくれればなんとかなるが
教えてくれなければ泣き寝入りよ
ネットはいわゆる「足がつく」状態だから開示請求かければなんとかなる可能性が高いだけ
いきなり賠償請求できない点はオンもオフも何も変わらない
283デフォルトの名無しさん (ワッチョイ 46b7-/m/d)
2021/08/13(金) 09:34:43.40ID:eq2Tc8oG0
あらかじめ一定の社会的関係に入っている間柄なら別よ?
たとえば会社でセクハラされた・モラハラされた
そんな話だったら「突然」賠償請求は来るさ
そうなじゃなくてネット上でまったく関係ない素性も知れない第三者に損賠請求とか
「突然」できるわけがないだろうが
284デフォルトの名無しさん (ワッチョイ 45bb-kTWQ)
2021/08/13(金) 23:24:19.38ID:1DHqOLSr0
Rubyの開発ではglibは使われてますか?
285デフォルトの名無しさん (ワッチョイ e9bb-fZBI)
2021/08/18(水) 05:53:03.10ID:yThqaD4x0
glib2と連携するGemがあるぐらいだから、
使われてると思うよ。
286デフォルトの名無しさん (ワッチョイ c15c-U7Lh)
2021/08/30(月) 19:49:51.62ID:CW7ccSgo0
警察も検察も被告になることも怖くない
でも地獄は怖い
迷惑かけるだけなら
地獄へ行かないかもしれない
でも自分のことを棚に上げたら
地獄行き
287デフォルトの名無しさん (ワッチョイ 0233-f/aN)
2021/08/30(月) 21:27:50.25ID:Cj0Y+5WJ0
>>286
どんな理屈や!w
288デフォルトの名無しさん (ワッチョイ c75c-nTGN)
2021/09/09(木) 01:33:06.63ID:DPdnZbQ70
だめだ
また自分のことを棚に上げて
他人に説教
してしまってる
そんなに地獄に落ちたいのか
289デフォルトの名無しさん (ワッチョイ 5d5c-dGLa)
2021/09/10(金) 23:29:53.30ID:VnjRnmAy0
自分のことを棚に上げて
また人に迷惑かけてる
地獄へ落ちるよ
290デフォルトの名無しさん (ワッチョイ ea33-fl66)
2021/09/11(土) 01:42:22.44ID:Vndiun780
その理屈やと、おまえが地獄に落ちるで!
291デフォルトの名無しさん (ワッチョイ f14d-1mPP)
2021/09/11(土) 16:37:37.06ID:QpCgqUja0
rubyって宗教色が強いんだな。
292デフォルトの名無しさん (ワッチョイ 2a00-XDWE)
2021/09/11(土) 16:46:51.58ID:Ewyyihq/0
作者がモルモン教だからな
293デフォルトの名無しさん (ワッチョイ 5d5c-dGLa)
2021/09/15(水) 02:39:42.52ID:7Lql01au0
人の嫌がる事ばかりする
自分のことは棚に上げる
警察もヤクザも怖くない
地獄はある
地獄は怖い
294デフォルトの名無しさん (ワッチョイ e57f-dGLa)
2021/09/15(水) 19:07:23.60ID:0q0CE+HI0
スクレイピングすると地獄へ落ちるって本当ですか?
295デフォルトの名無しさん (ワッチョイ f14d-9PYR)
2021/09/15(水) 19:39:53.02ID:/dXe9qzn0
地獄に落ちたことのある奴に聞け。
296デフォルトの名無しさん (オッペケ Srbd-H966)
2021/09/15(水) 20:36:57.26ID:BDtg+sEir
地獄は超暑かったぞ
それでも真夏の都心よりマシだが
297デフォルトの名無しさん (ワッチョイ 9f5e-qDHA)
2021/09/18(土) 03:38:03.71ID:YPBxfQEw0
スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか?
今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工
近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです
前者は膨大なデータを取得する必要があります
後者は10分から20分おきにアクセスすることになります
298デフォルトの名無しさん (ワッチョイ 9f33-mItj)
2021/09/18(土) 03:44:47.50ID:VuuEM7MI0
あるわけねえやろ!w
299デフォルトの名無しさん (ワッチョイ 9701-PbcS)
2021/09/18(土) 08:03:58.41ID:r9kwg+sT0
5年分の過去分は一度取得すれば良いだけなのであれば待ち処理入れつつやれば問題ないと思う

仕事であるスポーツ連盟のホームページを20分おきにスクレイピングしてる
これは確認して許可取ってるけど。
300デフォルトの名無しさん (アウアウウー Sa5b-DkiD)
2021/09/18(土) 16:38:53.47ID:1jv0Ew7Ba
Rubyはgetsでコマンドプロンプトの入力を受け取れますが、
入力方法をbashのようにできないでしょうか。
上キーを押すとコマンドが再表示される等です。
301デフォルトの名無しさん (ワッチョイ f7a6-z6qi)
2021/09/18(土) 16:58:05.98ID:XeK+rYrj0
>>300
https://docs.ruby-lang.org/ja/latest/class/Readline.html
302デフォルトの名無しさん (ワッチョイ b7da-qDHA)
2021/09/18(土) 18:14:06.76ID:J85RgKD50
頭のおかしい人に以下のようなことを言われました

>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない

具体的な書籍名を教えてください


>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない

どこでそんなルールが決まっているのでしょうか?
303ハノン ◆QZaw55cn4c (ワッチョイ 9f47-o3tO)
2021/09/18(土) 19:46:07.33ID:/DXMasS60
マルチポスト禁止、クロスポスト推奨
というのは、遠い昔 fj でのルールではありましたが 2ch/5ch では無意味ですね、だってクロスポストできないし
304デフォルトの名無しさん (ワッチョイ 9f33-mItj)
2021/09/18(土) 20:35:36.57ID:VuuEM7MI0
>>303
だからマルポは?
できないのはクロポなんやろ?
305ハノン ◆QZaw55cn4c (ワッチョイ 9f47-o3tO)
2021/09/19(日) 00:20:00.12ID:QR0Sxfu+0
>>304
回避方法がないのに一方的にマルチポストを避難するのはフェアではないと思いませんか?
306デフォルトの名無しさん (ワッチョイ 9fd2-qDHA)
2021/09/19(日) 02:58:23.74ID:y7Uebvof0
自分のことを棚に上げて
正義面するから
罰が当たったのかも
しれない
でも現世の罰は
怖くない
地獄へ落ちるのは怖い
地獄は怖いよ
307デフォルトの名無しさん (ワッチョイ 9f33-mItj)
2021/09/19(日) 11:25:51.22ID:69z175Yv0
>>305
クソみたいな詭弁に意味はない。
308デフォルトの名無しさん (アウアウウー Sa5b-hED7)
2021/09/19(日) 12:38:01.81ID:/yxUr6Cya
ついでに肝心要なパケットは欠損させておくと尚良し
309デフォルトの名無しさん (ワッチョイ d7bb-DkiD)
2021/09/19(日) 22:18:51.00ID:BpRp3Dad0
>>301
超サンクス
310デフォルトの名無しさん (ワッチョイ bfb7-I/Yj)
2021/09/21(火) 18:45:09.80ID:0Go6zndF0
テキストファイルの処理で、段落ごとに時間のかかる作業(数時間単位)を回してるのだけど
その対象のテキストファイル(data.txt)は処理中に追加で内容を追記していくようになっている

def func()
# (ここにすごく時間のかかる処理)
end

f=File.open("data.txt", 'r:UTF-8'){|f|
f.each_line(rs=""){|l|
func()
}
}

ここで、f.each_lineの処理って、関数funcを実行している最中は次のループに行かないはずだよね?
動かしていて、どうも先読みしているような挙動を示しているのだけど、funcの処理が終わるまでは
先読みしないように指定ってできる?

たとえばテキストの内容が

A

B

C

となっていて、段落Aの処理中にBとかCの内容に手を加えたり、新たにDという内容を末尾に加えたりしたい
でも、どうもタイミングによって、最初Aだけだった内容でAを処理中にBを加えた時点ではすでに先読みしてて
Bの処理を飛ばして、それより時間的にも位置的にも後に追加したCの処理をしたり、あるいはCも飛ばして
Dを処理したりしてるような
このあたりのファイルポインタの動きを説明してある情報源はない?
311デフォルトの名無しさん (ワッチョイ 9f33-mItj)
2021/09/21(火) 19:08:28.98ID:SK/JWtta0
先読みバッファの都合でそうなることもあんのかね。知らんけど。
読むタイミングで、tellの結果にseekしたらええかも?f.seek(f.tell())みたいに。
あるいは、バッファを無効にするか。ただし、これは勧めない。テストならばまあ。

情報というか、その手の高レベルなファイル関連関数は、高速化のために裏でバッファを活用してるので、その挙動を想像すれば。
312デフォルトの名無しさん (ワッチョイ bfb7-I/Yj)
2021/09/21(火) 22:56:27.09ID:0Go6zndF0
>>311
バッファ無効にするのにsyncなんてメソッドがあるのですね
テストみたいなもんなんでこれ使ってやってみます!
ありがとうございました
313デフォルトの名無しさん (ワッチョイ 9f33-mItj)
2021/09/22(水) 12:23:29.69ID:wRl+SBDi0
>>312
もっかい言うけど、バッファ無効はほどほどにな。
ストレージがすり減るぞ。
314デフォルトの名無しさん (エムゾネ FFbf-hED7)
2021/09/23(木) 12:52:09.43ID:7tGJmFKPF
rubyのglobってなんでこの名前なんですか?語源というか理由は?
315デフォルトの名無しさん (エムゾネ FFbf-hED7)
2021/09/23(木) 12:53:36.67ID:7tGJmFKPF
>>313
SSDの方が寿命速い説?
316デフォルトの名無しさん (ワッチョイ 9f33-mItj)
2021/09/23(木) 13:39:57.36ID:sOtSHC530
>>314
書き込む前にググれ!

https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%AD%E3%83%96
317デフォルトの名無しさん (エムゾネ FFbf-P0JL)
2021/09/23(木) 14:17:52.01ID:FwYHDvYwF
xargs にすれば良かった
318デフォルトの名無しさん (ワッチョイ b2cb-zD50)
2021/09/26(日) 02:01:31.29ID:a7XkizLe0
人に迷惑をかけるのはしょうがない
でも
自分のことを棚にあげたら
地獄だよ
319デフォルトの名無しさん (ワッチョイ 162c-pveB)
2021/09/26(日) 22:14:40.89ID:5RNiLxHe0
>>310
基本的に、読み込み用ファイルに書き込まないようにすべき。
io.seek で使う、ファイルポインターがずれる

例えば、配列でも同じ。
読み込み用配列を読み込みながら、
読み込み要素の前後に、要素を追加・削除すると、要素がずれるのでバグる

基本、同一ファイルじゃなく、入力用・出力用の2つが必要。
それか、データベースでやるとか

シェルスクリプトとか、関数型のElixir のパイプラインみたいに、
元のファイルを更新せずに、次々と出力ファイルを新規作成していくべき

処理A | B | C

他には、処理を分けられるなら、分けた方がよい

普通、バッファリング無しのモードは、
ユーザーの入力を待つような場合に、端末で使うもの。
こういうバックグラウンド処理では使わない

例えば、1回のシステムコールで、1000バイトの読み書きできるのに、
バッファリング無しなら、1000回もシステムコールを呼ぶから、処理時間が千倍になる

バッファリングとは、システムコールする回数を減らすために、
ある程度データが溜まるのを待ってから、処理を行うものだから
320デフォルトの名無しさん (ワッチョイ 1233-c8WL)
2021/09/26(日) 23:33:39.09ID:6v1pd5GW0
余計なお世話や。w
ほっといたれ。
321デフォルトの名無しさん (ワッチョイ 162c-pveB)
2021/09/28(火) 14:07:16.12ID:yeB6oI220
ファイルパスから簡単に、ディレクトリ名だけを取り出す方法がありますか?
今は、下のようにやっています

file_path = "C:/Users/Owner/Documents/test/a.txt"

p dir_path = File.dirname( file_path ) # ディレクトリパスを取り出す
#=> "C:/Users/Owner/Documents/test"

p dir_name = File.basename( dir_path )
#=> "test"
322デフォルトの名無しさん (エムゾネ FF32-kEnG)
2021/09/28(火) 14:19:10.90ID:nD0g4rLvF
file_path = "C:/Users/Owner/Documents/baka.test/a.txt"
323デフォルトの名無しさん (オイコラミネオ MM8f-c8WL)
2021/09/28(火) 14:44:05.17ID:zeEpbK0KM
>>321
必要充分だと思うがなあ。
自分でメソッドにくくりだすくらいやないの?

どうしても圧縮したいなら、text.sub(%r{.*/(.*)/.*}){$1}とか?
未確認。ワイならやらん。w
324デフォルトの名無しさん (ワッチョイ 9f7d-m3gY)
2021/09/28(火) 16:33:03.83ID:WAJRktfF0
>>321
標準添付ライブラリの pathname
325デフォルトの名無しさん (ワッチョイ 6b2d-Jjgm)
2021/09/30(木) 20:28:46.68ID:AJpnjzaB0
rubyだけdistrolessイメージない
なんでハブられてるの?
Googleはruby嫌いなの?
https://github.com/GoogleContainerTools/distroless/issues/156
326デフォルトの名無しさん (ブーイモ MM32-tE3I)
2021/09/30(木) 20:37:22.69ID:I7uygAb2M
Google社内ではRubyの使用が許可されていない
当然だよね
327デフォルトの名無しさん (オッペケ Sr47-UzFq)
2021/09/30(木) 20:40:38.51ID:BaUXpZJur
>>326
googleって言っても一枚岩じゃないからそれは完全に間違い
328デフォルトの名無しさん (ワッチョイ 1233-c8WL)
2021/09/30(木) 21:14:17.31ID:eVTcYnny0
バージョン互換の低さ、信頼性の低さを考えたら、プロジェクトとして使いにくいっつーのはあるやろな。
329デフォルトの名無しさん (ワッチョイ 92ad-qcFi)
2021/09/30(木) 22:37:54.54ID:Q+Yf9LrK0
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
330デフォルトの名無しさん (アウアウウー Sa27-jOtc)
2021/10/01(金) 04:21:27.55ID:YSb3+a7ia
>バージョン互換の低さ、信頼性の低さを考えたら、プロジェクトとして使いにくい

googleのAPIのことですか?
331デフォルトの名無しさん (テテンテンテン MM7f-gMXQ)
2021/10/01(金) 09:11:32.55ID:Bf6uh555M
プログラミング言語のシェア的にはdistroless対応の優先順位は極めて妥当
残念だけどもう昔のような人気言語じゃないんだよ、、、
https://insights.stackoverflow.com/survey/2021#technology-most-popular-technologies
332デフォルトの名無しさん (ワッチョイ ff33-2vT0)
2021/10/01(金) 10:15:08.94ID:8GSBOhv80
>>330
自分に甘くて、他人に厳しいのはあたりまえやろ。w
おまえは違うのか?
333デフォルトの名無しさん (ワッチョイ cf2c-ZYQJ)
2021/10/01(金) 10:34:29.22ID:PaEGpo5A0
AWS Lambda には、Ruby もある

Chef, Cookpad 製のItamae, AWS CloudFormation のKumogata2 もある。
まあ、Terraform のシェアが高くなったけど

Vagrant の作者・ワシントン大学の学生で、今世紀最大の起業家・
HashiCorp の創業者・Ruby/Go の神・Mitchell Hashimoto も、
今は、Goへ行ってしまった

Goプログラマーを募集中

YouTube で有名な、雑食系エンジニア・KENTA のサロンでも、
Ruby on Rails → Go のキャリアパスを推奨している

PHP は、一生やらなくても良い。
新規の仕事が無いから、給料が上がらない。
保守要員は、給料が低いから

KENTAは常に、給料が高い新規プロジェクトを推奨している
334デフォルトの名無しさん (ワッチョイ 9eda-exDs)
2021/10/10(日) 15:27:42.39ID:QuuYHTx70
pp dmy={"VERSION"=>RUBY_VERSION, "ARGV"=>ARGV, "Dir.pwd"=>Dir.pwd}
でdmy=を消すと
Dir.pwdの . でエラーになっちゃうんですけど
syntax error, unexpected '.', expecting `end'
pp(puts)+hashのリテラルでうまい書き方ないんですか
335デフォルトの名無しさん (ワッチョイ 8a01-nrYP)
2021/10/10(日) 16:08:30.52ID:2mgB061S0
>>334
ブロックとして解釈されてエラーになるので
puts({a: “a”})みたいに括弧でくくる
336デフォルトの名無しさん (ワッチョイ 9eda-exDs)
2021/10/10(日) 16:45:12.39ID:QuuYHTx70
>>335
エラーの意味が理解できました
ありがとうございます
337デフォルトの名無しさん (ワッチョイ 6e89-4csN)
2021/10/10(日) 18:30:23.02ID:bTjCEmsH0
classが全く理解できない。1日掛けても理解できない。俺は向いてないのか。。。
338デフォルトの名無しさん (ワッチョイ b301-RCSg)
2021/10/10(日) 20:30:34.61ID:osHZfZYe0
Rubyのclassはそれ自身がオブジェクトだからねえ。
339デフォルトの名無しさん (ワッチョイ de2c-GJBa)
2021/10/10(日) 20:55:11.50ID:lB7MFpHR0
クラスの型紙を元に実体化させたものが、インスタンス。
クラス自体を変化させたものが、特異クラス

ここで、インスタンスと特異クラスの継承チェーンを考えてみる

最終的にメソッド探索チェーンは、直線になる必要がある。
それで継承チェーンに、インスタンスと特異クラスが順序よく割り込んでくる

インスタンスに無ければ、特異クラスで探す。
特異クラスにも無ければ、継承チェーンを遡って、親クラスのインスタンスで探す。
そこでも見つからなければ、親クラスの特異クラスで探す

みたいに、継承チェーンをドンドン遡っていく
340デフォルトの名無しさん (ワッチョイ ca33-9ch9)
2021/10/10(日) 20:56:55.24ID:Liv3MhTX0
ムリに「理解」しようとしてるからちゃうか。
あちこちのソースを適当に読んでたら、いずれスッと腑に落ちるときがくるやろ。
341デフォルトの名無しさん (ワッチョイ ca33-9ch9)
2021/10/10(日) 20:59:01.10ID:Liv3MhTX0
>>339
こういうふうに、知らない言葉と知らない概念をおっかけて「理解」しようとするのは、素養がなければツラかろう。
最初はとくに適当でええんや。
342デフォルトの名無しさん (ワッチョイ 4699-ANkw)
2021/10/10(日) 21:36:30.35ID:kKlMir+m0
338と339は新人が来てもこの調子なんだろうなぁ
343デフォルトの名無しさん (ブーイモ MM76-NeHw)
2021/10/10(日) 22:52:57.48ID:fsOtTZslM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
344デフォルトの名無しさん (ワッチョイ 6b5c-JSxF)
2021/10/12(火) 00:48:53.92ID:Ihqyo7Sc0
地獄は怖いよ
345デフォルトの名無しさん (ワッチョイ 9fb1-ZO17)
2021/10/20(水) 02:49:58.32ID:7Ch1Hu5l0
スクレイピングに興味があるのですが1時間に1回の頻度のGETだけで訴えられる危険があるって本当ですか?
346デフォルトの名無しさん (ワッチョイ 2b10-8HLh)
2021/10/20(水) 03:46:34.01ID:gq1XFNWx0
はい
347デフォルトの名無しさん (ワッチョイ 65bb-WU2P)
2021/10/24(日) 12:07:05.65ID:xDtz/yW60
「Ruby」という商標についてなんですが
Rubyは同名の商標が多数登録されていますが、問題になった話を聞いたことがありません
他の言語も同様です
なぜ問題にならないんですか?
348デフォルトの名無しさん (ワッチョイ e910-pyCU)
2021/10/24(日) 12:08:05.01ID:vH+4cvxG0
はい
349デフォルトの名無しさん (オッペケ Sr11-y5oF)
2021/10/24(日) 15:50:39.91ID:TxsSkV/ar
区分が違うからだろ
350デフォルトの名無しさん (ワッチョイ 067c-WU2P)
2021/10/25(月) 21:56:04.74ID:b+7kI3n60
スクレイピングに興味があるのですがrobots.txtを守っていても訴えられる危険があるって本当ですか?
351デフォルトの名無しさん (ワッチョイ 8233-52BX)
2021/10/25(月) 23:56:18.76ID:1eqHtBhs0
訴えられる危険はいつでもどこでもある。
道を歩いていても、家の中にいても。
352デフォルトの名無しさん (ワッチョイ e910-m3Mz)
2021/10/26(火) 02:13:44.51ID:XIgoRovQ0
>>350
上級者になってからやらないと危険だよ
初心者がよくわからないままやるとサービス妨害になる可能性はまあまあある
353ハノン ◆QZaw55cn4c (ワッチョイ d347-jJ2N)
2021/10/29(金) 21:42:34.32ID:TYU6SVP40
>>352
サービス提供側に原因があるというのにサービス妨害とはこれいかに?
354デフォルトの名無しさん (ワッチョイ f535-Wpxk)
2021/11/06(土) 19:23:11.48ID:NiwSrOA00
>>297

リブラハック事件を念頭に置いて居るのだと思います。
法的リスクを回避する方法はありません。

事業を行うのであれば、あるいは人生を送る以上法的リスクは常にあります。

入門書に記載出来る話ではないです。

リブラハック事件は、不起訴処分となってますが、20日間の勾留となりました。

余談ですが、旧7帝大卒、上場企業所属の場合、余程のことがない限り法的リスクは回避できます。
355デフォルトの名無しさん (ワッチョイ f535-Wpxk)
2021/11/06(土) 19:27:41.07ID:NiwSrOA00
>>350

中小企業で知財を担当してますが、常に訴訟してます。
業務妨害罪で争ったことはありませんが、模造品による損害賠償事件はチョッ中です。
356デフォルトの名無しさん (ワッチョイ f535-Wpxk)
2021/11/06(土) 19:31:11.06ID:NiwSrOA00
>>355

ちなみに、事件ばかり担当すると会社の仕事は超楽です。
裁判期日は多くても2ヶ月に1回だからです。
社内では、暇なおじさんと思われてます。

だから、プログラミング好きには知財は天国です。
まあ、会社によるのかもしれません。
357デフォルトの名無しさん (ワッチョイ 062c-iAR7)
2021/11/19(金) 07:32:40.55ID:UZar/UR10
Ruby on Rails 製のGitLab の時価総額が、1.9 兆円だって!
358デフォルトの名無しさん (エムゾネ FF02-iUmB)
2021/11/19(金) 10:13:01.84ID:eyeX0xyMF
なるほどおめでとう
https://gitlab.com/libeigen/eigen
359デフォルトの名無しさん (ワッチョイ 9f01-Z6Z9)
2021/12/07(火) 11:50:44.28ID:sVKUttQ/0
ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか?
360デフォルトの名無しさん (ワッチョイ bcbb-zXcE)
2021/12/07(火) 15:28:09.99ID:m3nJJ9T10
waiteかければ十分だと思うよ
361デフォルトの名無しさん (ワッチョイ 9101-kiOO)
2021/12/07(火) 23:29:07.13ID:JKy0RWKD0
botからのアクセスはどこのサイトも来まくってるから、スクレイピングを気にするかは分からないけど、
waitを5秒とかいれとけば。

クレカ明細をスクレイピングしようとしてたら403になって数時間アクセス出来なくなったよ
362デフォルトの名無しさん (ワッチョイ be2c-TeJl)
2021/12/17(金) 21:31:46.70ID:tWB5K5S10
David Heinemeier Hansson(DHH), 2021/12/16

Rails 7: The Demo

@YouTube



もう、Rails 7.0.0.rc1 か。
Ruby 3.0.3
363デフォルトの名無しさん (オッペケ Sra9-Isz2)
2021/12/26(日) 19:54:32.13ID:gUkCfD0ur
Happy Christmas!!

Ruby 3.1.0 Released
https://www.ruby-lang.org/ja/news/2021/12/25/ruby-3-1-0-released/
364デフォルトの名無しさん (ワッチョイ df01-dXQO)
2022/01/09(日) 01:26:06.08ID:wKoMs7Y50
そいつは、>1 のテンプレをしょっちゅう改変している、テンプレ改変荒らし。
基本的に、ソースコードを書かない香具師は荒らし

「Ruby, Rails, クソチョン」などを、NGワード登録推奨とか、
自分が有利なように、いつもテンプレを改変する

荒らしがスレ主として、居座っているので、
まともな人がスレ立てして、テンプレも元に戻した方がよい

荒らしは必ず、短文で2回以上書き込む。
必ず、複数人がいるように見せかける
365デフォルトの名無しさん (ワッチョイ 7ff0-dXQO)
2022/01/10(月) 00:21:27.01ID:MINWORCd0
スレ立てるまでもない質問はここで 158匹目
http://2chb.net/r/tech/1635193843/538

ここに、YouTube で有名な、雑食系エンジニア・KENTA のサロンの、
Ruby on Rails 初心者用コースの内容を書いておいた

基本的に、Rails以外のフレームワークは、シェアが少ないのでおすすめしない。
学習環境も揃わないので、無理

Railsでは、Railsチュートリアル・Railsガイド・
黒田努の3冊の本・パーフェクト Ruby on Rails・Ruby on Rails 6 エンジニア養成読本とか、
Rubyでは、改訂2版 パーフェクトRuby・改訂2版 Ruby逆引きハンドブックなどの教科書が揃っている

これほど、良い教科書が揃っているフレームワークはない!

Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、
PHP自体がオワコンになってしまったw

日本のウェブ開発の将来は、ほぼKENTAが決めている。
Scala を滅ぼしたのも、KENTA
366デフォルトの名無しさん (ワッチョイ 7f2d-acmQ)
2022/01/13(木) 11:23:57.64ID:hewkBnV10
wxrubyのインストールができません。

gem install wxrubyコマンドで
ERROR: Could not find a valid gem 'wxruby' (>= 0) in any repository
と出てインストールできないです。

バージョンはruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x64-mingw-ucrt]
367デフォルトの名無しさん (ワッチョイ 5f7c-U5Rw)
2022/01/13(木) 12:13:19.79ID:/N9d9IBk0
% gem sources -l
*** CURRENT SOURCES ***

https://rubygems.org/

となる?
あとほんとにbundler経由でなくていいのか再考してみて
368デフォルトの名無しさん (ワッチョイ 7f2d-acmQ)
2022/01/13(木) 13:32:13.20ID:hewkBnV10
>>367
>となる?

なります。
369デフォルトの名無しさん (ワッチョイ 5f7c-U5Rw)
2022/01/13(木) 14:14:29.91ID:/N9d9IBk0
じゃあわからん
$ gem update --system
して更新がもしあれば治るかも
370デフォルトの名無しさん (ワッチョイ df84-WBrE)
2022/01/13(木) 15:06:21.76ID:ah8E1hap0
>>366
wxrubyがいつのRubyのときに開発されていたか調べましたか?
wxrubyがいまのRuby 3.1.0p0で動くと思いますか?
371デフォルトの名無しさん (ワッチョイ 7f2d-acmQ)
2022/01/13(木) 18:29:42.26ID:hewkBnV10
>>370

そうなんですか。
tk使います。
372デフォルトの名無しさん (ワッチョイ 7f33-hkTB)
2022/01/13(木) 18:36:09.58ID:Eko2QLhP0
知らんがな、っつー話やけどな。w
互換性のなさはなんとかならんのか。
373デフォルトの名無しさん (ワッチョイ df84-WBrE)
2022/01/13(木) 19:22:50.06ID:ah8E1hap0
主に使おうとする道具の状態を確認しないのですか?
切れないハサミで紙を切ろうとするのですか?

どうしてもwxrubyを使うなら、せめてrbenvでも良いのでwxrubyが確実に動きそうなruby環境(Ruby 1.9.xぐらい)を用意したほうが賢明です。
あるいは、自分でwxWidgetsをRuby 3.xで動くように頑張ってbindingするか。

ちなみに、わたしはメンドクサクなって、wxWidgetsのcoreなところをRuby 2.7ぐらいでportingしている途中で放置したままです。
374デフォルトの名無しさん (ワッチョイ dfcc-dXQO)
2022/01/15(土) 13:46:06.28ID:Bc4m3wjx0
nokogiriでスクレイピングしようとしていたら
逮捕されるかもしれないと言われましたが
本当でしょうか?
375デフォルトの名無しさん (オッペケ Srb3-VpI/)
2022/01/15(土) 13:51:05.48ID:lPS6H26+r
「かもしれない」という事であれば回答はYesでしょう
まあ質問自体馬鹿げてるが
376デフォルトの名無しさん (ワッチョイ df84-WBrE)
2022/01/15(土) 13:55:29.58ID:fqPeqqWL0
>>374
本当“かもしれない”ですね
377デフォルトの名無しさん (アウアウエー Sa52-6WVI)
2022/01/29(土) 18:54:02.82ID:NEea/ouUa
>>374
かつて 岡崎市立中央図書館事件 という悲劇があったのだよ
いまならこんなあほな事態は発声しないんじゃないかな、だったらいいな……
378デフォルトの名無しさん (アウアウエー Sa52-6WVI)
2022/02/01(火) 11:03:45.45ID:erVefguva
Webrick 1.7.0 でドキュメントと異なった動作と、RFCで推奨されない通信が行われた場合にIOタイムアウトまで動作停止する問題を
発見しました(対処方法も特定済み)

報告方法どなたかご存じでしょうか?
379デフォルトの名無しさん (アウアウウー Sa21-21ac)
2022/02/01(火) 15:03:45.59ID:nkHg0hKwa
>>374
スクレイピングに限らず、プログラムを動かす事による
アクセス回数と通信容量は気を付けたほうが良いよ

2chみたいにそれが多すぎたらしっかりとアク禁したり弾いたりしてくれるところはまだいいけど
無対策なサイトで管理人が対応できない人だったりすれば
プログラムによるアクセス制限の対応じゃなく法的な対応はありえる
380デフォルトの名無しさん (ワッチョイ e584-vAK8)
2022/02/01(火) 16:13:06.79ID:UfZW0QsA0
>>379
どこかの某県図書館だな
結局、アレは業者がアレだったな
381デフォルトの名無しさん (ワッチョイ fa33-5lIn)
2022/02/01(火) 17:31:37.91ID:zzLecfCS0
>>378
こんなとこで聞くことやないやろ!w

こういうとこのが?
https://www.ruby-lang.org/ja/community/mailing-lists/
382デフォルトの名無しさん (オッペケ Srbd-+Ul7)
2022/02/01(火) 20:03:07.20ID:TQ6+L4kbr
>>378
協力よろしくお願いします
https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReportJa
383デフォルトの名無しさん (テテンテンテン MM8f-QsY6)
2022/02/05(土) 20:00:16.41ID:lkKOvV4nM
[1,2,3].each{ |i|
next i>2
}
がエラーにならずなかなか原因がわからなかった
正解は
[1,2,3].each{ |i|
next if i>2
}
384デフォルトの名無しさん (アウアウエー Sadf-JWMU)
2022/02/06(日) 02:49:25.03ID:wRRLv8q1a
>>383
next(exit_value)
break(exit_value)
という構文があって、実行された時のブロックの戻り値が指定した引数の値になる

loop{ break }
=> nil

loop{ break 10 }
=> 10

[1,2,3,4].map do |num|
next 'even' if num.even?
num
end
=> [1, "even", 3, "even"]
385デフォルトの名無しさん (テテンテンテン MM8f-QsY6)
2022/02/07(月) 15:54:59.83ID:UFoAEHlFM
>>384
ありがとうございました、なるほどでした
nextに戻り値は想定外で、別の原因を探していました
386デフォルトの名無しさん (ワッチョイ bf8c-YRqB)
2022/02/08(火) 00:35:57.80ID:rEpsZFEq0
ほ~、知らんかった
387デフォルトの名無しさん (ワッチョイ d75c-z7Dg)
2022/02/11(金) 05:43:01.01ID:kL9RKZ580
nokogiriでhtmlパースをしようと触っているのですが、
DOMの子要素から絞り込みはできないのでしょうか

document.xpath('//div[@class="main"]').each |node|
node.css('div')
↑これだとclass=mainの子要素全体が取れるのですが

node.xpath('//div[@class="target"]')
↑これだとDOM全体から取ってきてしまいます

node.search('//div[@class="target"]')
↑これも同様でした
388デフォルトの名無しさん (オッペケ Sr0b-Hkqy)
2022/02/11(金) 07:45:27.90ID:3E0z2JyYr
>>387
node.xpath('.//div[@class="target"]')

node.search('.//div[@class="target"]')
389デフォルトの名無しさん (ワッチョイ 9fe0-yw1q)
2022/02/11(金) 07:51:20.39ID:tPFLgtIg0
XPathの仕様みるのが先やん
https://triple-underscore.github.io/XML/xpath10-ja.html#path-abbrev
390デフォルトの名無しさん (ワッチョイ d75c-z7Dg)
2022/02/11(金) 08:15:17.26ID:kL9RKZ580
>>388
取れました!ありがとうございます!
>>389
XMLパスという仕様書があるのですね
初めて知りました
リンク先まで教えていただきありがとうございます!
391デフォルトの名無しさん (ワッチョイ ff2c-2zGl)
2022/02/11(金) 15:10:34.09ID:901NTZe+0
一旦、ある要素を取得してから、その子孫要素に限定して、
さらに要素を取得していく事もできる

一旦、div.x を取得してから、その子孫内のdiv を取得する

doc = Nokogiri::HTML( <<EOT )
<html><body>
<div class="x"><div class="y"><div class="z"></div></div></div>
<div class="x"><div class="a"></div></div>
</body></html>
EOT

doc.xpath( '//div[@class="x"]' ).each do |x|
x.css( 'div' ).each do |div|
puts div.get_attribute( 'class' )
end
end

出力
y
z
a
392デフォルトの名無しさん (ワッチョイ 37d9-zD41)
2022/02/11(金) 15:21:30.61ID:fEekYUc10
あーあ、やっちゃったね
スクレイピングに手を出したら逮捕されるよ
nokogiriもアンインストールしたほうがいい
393391 (ワッチョイ ff2c-2zGl)
2022/02/11(金) 18:40:27.30ID:901NTZe+0
XPath よりも、CSS Selector の方が可読性も高く、簡単。
XPathを使う事は、ほぼ無い

ある属性を持った要素の親要素を取得するとか、かなり複雑なケースに限定される
394デフォルトの名無しさん (ワッチョイ 6b2c-bfGZ)
2022/03/08(火) 08:30:39.25ID:uRRrzdTb0
配列内の要素の出現回数を求める

ary = [ 1, "a", 2, "b", "a", 1, "a" ]

p results = ary.each_with_object( Hash.new( 0 ) ){ |elem, hash| hash[ elem ] += 1 }
#=> { 1=>2, "a"=>3, 2=>1, "b"=>1 }

Ruby には、下のPython のcollections.Counter みたいな関数がありますか?

import collections

l = ['a', 'a', 'a', 'a', 'b', 'c', 'c']

c = collections.Counter(l)
print(c)
#=> Counter({'a': 4, 'c': 2, 'b': 1})

Rubyで、誰かが作ったものはあるけど
https://gist.github.com/cielavenir/501c0cf491e10d905d4307bdeb2596ea
395デフォルトの名無しさん (オッペケ Sr4f-wzO4)
2022/03/08(火) 08:39:01.42ID:rK542qf7r
>>394
ない。
できてこんなもん。
ary.uniq.group_by{|i|ary.count i}
=> {2=>[1], 3=>["a"], 1=>[2, "b"]}
396デフォルトの名無しさん (ワッチョイ 1f08-i/qD)
2022/03/08(火) 11:58:05.39ID:yCGAKR370
愚直に書くと
ary.group_by(&:itself).transform_values(&:size)
=> {1=>2, "a"=>3, 2=>1, "b"=>1}
397デフォルトの名無しさん (ブーイモ MM7f-5+bU)
2022/03/08(火) 13:18:13.38ID:4udJjeRKM
each_with_objectのほうが少しシンプルだけど
他の言語だと使えないからreduce使ってる
uniqとかgroupbyはやや効率悪い気がする
398デフォルトの名無しさん (ワッチョイ fb5f-U5pU)
2022/03/09(水) 01:16:31.71ID:bFH5rQfw0
tally
https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/tally.html
399デフォルトの名無しさん (アウアウエー Sa3f-6iqn)
2022/03/09(水) 05:08:13.88ID:xyP8cJI4a
[1, "a", 2, "b", "a", 1, "a"].tally
=> {1=>2, "a"=>3, 2=>1, "b"=>1}

ほ~
400デフォルトの名無しさん (ワッチョイ 9f00-xKdJ)
2022/03/09(水) 06:45:20.85ID:ld7hWZ5w0
美しい
401デフォルトの名無しさん (スップ Sd7f-QrL3)
2022/05/01(日) 18:29:19.86ID:hArhlqjHd
rails6、ruby2.7を利用しています。
アクセスしてきたリクエストURLのパラメータに「#」が付いた際、paramsにパラメータが含まれてこないのですが、
この内容を取得するにはどうすれば良いでしょうか?
402デフォルトの名無しさん (ワッチョイ 5f33-NJdb)
2022/05/01(日) 21:32:54.31ID:hYMTL+9l0
ムリ。
サーバーには渡されない。
403デフォルトの名無しさん (ワッチョイ 67af-KWE8)
2022/05/01(日) 22:05:48.29ID:AIbUDPzi0
HTTPリクエストには乗らないけど
ブラウザ上のJSではハンドリングできるからそれで連携可
404デフォルトの名無しさん (スップ Sd7f-QrL3)
2022/05/02(月) 00:21:18.11ID:tduJ9vUQd
ありがとうございます!
ハッシュは取れないのですね…
JSでハンドリングしてみます。
405デフォルトの名無しさん (テテンテンテン MMe6-S2Xa)
2022/05/10(火) 02:36:19.66ID:lerz5rr1M
JavaScriptのようにPythonコードをHTML内に記述して実行できる「PyScript」 Anacondaがオープンソースで公開
https://www.itmedia.co.jp/news/articles/2205/09/news161.html

rbScriptも技術的に可能でしょう、だそうです
406デフォルトの名無しさん (オッペケ Sr33-RGfD)
2022/05/10(火) 07:09:23.20ID:4KKJ8JThr
可能も何も既存なんだが
407デフォルトの名無しさん (ワントンキン MM86-3X6i)
2022/05/25(水) 19:57:04.38ID:iXIMMJncM
rubyが1番初心者向け?
408デフォルトの名無しさん (スッップ Sdba-WhUL)
2022/05/25(水) 20:27:04.41ID:nspShIcld
JavaScriptだろうな
Rubyは人気急落中で既存のRailsアプリのメンテくらいにしか使われなくなっているから今から入るのはお勧めできない
409デフォルトの名無しさん (オッペケ Srbb-ILhR)
2022/05/27(金) 01:56:43.24ID:o8IZTGHvr
webアプリ初心者にはrailsがオススメな反面ruby自体は全く初心者にオススメできないクソ言語
410デフォルトの名無しさん (ワッチョイ 1b84-5xbs)
2022/05/27(金) 11:29:28.44ID:5IS2i0qw0
>>409
PythonとくにPython3よりも、Rubyのほうがええと思うけど?

といいつつも、仕事でTypeScriptばっかり、Railsもわずかにやっとるけど
411デフォルトの名無しさん (ワッチョイ 7966-W53T)
2022/05/29(日) 08:45:02.43ID:5LPeOORh0
JavaScriptって初心者にほんとに勧めて良いものだろうか。
412デフォルトの名無しさん (ワッチョイ d901-2OYr)
2022/05/29(日) 16:29:01.89ID:89z2cDQI0
フリーランス向けエージェント「クラウドテック」会員数8万人突破
~働きやすい環境構築のため、単価向上・全年齢の活躍の場創出・
地方企業のDX推進の取り組みを強化します~

フリーランスエンジニア専門の案件一括検索サイト「フリーランススタート」、
累計掲載案件数25万件突破!リモートワークの累計掲載案件数35,000件突破!

新規人材の80%がフルリモート希望! IT人材市況動向レポート2021年12月版を公開

人口移動報告 家賃高い、首都圏脱出 「コロナ禍、仕事フルリモート」

クラウドテック、地方企業向け『クラウドテックDX』を開始、
7万人を超えるDX人材が、地方の非IT企業のDX推進を支援

新潟県、移住してきたテレワーカー/フリーランスに最大50万円を支給

テレワークの一般化により、11月にはテレワーク可能案件83.7%へと増加。
2021年、フリーランスのトレンドは「移住&テレワーク」と予測
413デフォルトの名無しさん (ワッチョイ d901-2OYr)
2022/05/29(日) 16:29:25.82ID:89z2cDQI0
・フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、
“テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡
・リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、
 業務委託契約の求職者と企業をマッチング 
・1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の
 人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現!
・『ReWorks(リワークス)』リモートワーク特化型転職サイトとして 3月5日 リニューアル
・副業・兼業マッチングサービス「クラウドリンクス」登録者数2万人突破
 中小企業で進む副業人材の採用、96%が継続採用を希望
・フリーランスが活用できる「最大1,000~3,000万円・補助率50%~75%」の
『ものづくり・商業・サービス補助金』とは?概要や条件を解説
・茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金
・長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給
414デフォルトの名無しさん (ワッチョイ d901-2OYr)
2022/05/29(日) 16:30:01.42ID:89z2cDQI0
【根拠あり】フリーランスエンジニアは年収862万円取れて普通という話【高収入】

【こんな僕が】フリーランスエンジニアで月収100万円を達成した5つの方法

ITフリーランスエンジニアの年収|会社員との違いや独立後の案件の取り方

月収90万のITフリーランスプログラマー・SEが選んでる在宅案件はこんな案件です

フリーランスの年収は平均いくら?年収1000万円以上の割合とは

2021年最新版 エンジニアの平均年収はいくら?全体平均と比べて○○円も高い!

【高すぎると不利】もっともコスパの良い年収は?「最適年収」3パターンについて解説

オリコ、ITフリーランス専用ゴールドカード「techcareer EX GOLD for Biz Card」を発行
415デフォルトの名無しさん (ワッチョイ a136-v00t)
2022/05/30(月) 08:49:29.66ID:+82mqA6e0
Rubyのcase文にはwhenの代わりにinを使う場合がありますか?
バージョンによって違うのでしょうか?
416デフォルトの名無しさん (ブーイモ MM75-BW6z)
2022/05/30(月) 09:09:46.99ID:WMuSBVaoM
>>415
inはパターンマッチ
417415 (ワッチョイ a136-v00t)
2022/05/30(月) 12:21:37.52ID:+82mqA6e0
>>416
どうもありがとう!
あれから更に調べていたらRubyのcase文には2種類あると説明している
ドキュメントに出遭いました。
1つがelsifを持つif文の代用で、もう1つがパターンマッチ(?)らしいですね。
Rubyは内部的に===を使うんだそうです。
ただしその場合もwhenが使われていたように思います。inと違うのでしょうか。
418デフォルトの名無しさん (ワッチョイ 9363-9hOi)
2022/05/30(月) 13:10:50.78ID:4ToCs4sv0
caseのパターンマッチは3.0で本採用されたのにマニュアルになくって
変更履歴とRedmineみないとわからんのが残念
419デフォルトの名無しさん (ワッチョイ dbb7-uCuR)
2022/05/30(月) 18:55:58.59ID:Jfa9bHCo0
PythonてAI関係でデフォになってるのもあって持て囃されてるけど
初心者向きかというとインデントがあるのとかどうかなーとは思う
Rubyはそのへん柔軟でとっつきやすい感じはする

https://xtech.nikkei.com/atcl/nxt/column/18/00682/061100007/
420デフォルトの名無しさん (ワッチョイ 9363-9hOi)
2022/05/30(月) 20:11:00.95ID:4ToCs4sv0
コロン忘れるってテキストで構造化文書(というほど大層なもんでもない)書いたことないんか
見出しにアンダーライン引くみたいに行末にコロン置いて区切りを表現する
421デフォルトの名無しさん (ブーイモ MMab-BW6z)
2022/05/30(月) 21:52:06.42ID:PemXr08JM
>>418
日本語はメンテされてないの?
英語は普通にあるけど
https://docs.ruby-lang.org/en/master/syntax/pattern_matching_rdoc.html
422デフォルトの名無しさん (ワッチョイ 9363-9hOi)
2022/05/30(月) 22:30:52.60ID:4ToCs4sv0
英語はRDocからの自動生成なのか
メンテできないなら日本語マニュアルなんてやめて
英語版をベースに差し替えていけばええのに
423415, 417 (ワッチョイ a136-v00t)
2022/05/31(火) 16:06:11.83ID:V5m5I4Ku0
パターンマッチはRuby 2.7以降にサポートされたらしいということが
分かりました。どうもありがとうございました。
424デフォルトの名無しさん (アウアウエー Sa23-uCuR)
2022/06/01(水) 15:12:54.29ID:UUUQnP9Va
>>408
JavaScriptは基本が非同期なのが初心者向けではないと思うんだ
開発環境の充実という点では悪くないとは思うけどね
425デフォルトの名無しさん (ブーイモ MM05-1gLZ)
2022/06/01(水) 15:29:30.51ID:xCSInqB6M
同意しない
一般に、JSの入門者にとって非同期プログラミングが必要になるのはバックエンドとの通信が出てきたところから
そこまでくると仮にRubyだったら当然Rails前提になるわけで、フロントからDBまで揃えないと動かないRailsよりはHTMLファイル一つから始められるJSの方が遥かに敷居が低い
426デフォルトの名無しさん (ブーイモ MMab-BW6z)
2022/06/01(水) 17:11:02.82ID:P55vafmBM
>>425
JS始めるなら普通はWebのフロントエンドからなので非同期理解しないとまともなもの作れないよ
nodeでCLIから始める選択肢もあるがそっちもI/Oは非同期が基本だから同じこと
同期APIだけ学ばせるほうが効率悪い
427デフォルトの名無しさん (オッペケ Sr8d-HnzB)
2022/06/01(水) 18:34:53.07ID:brWfXIBXr
RubyもJavaScriptもどっちもやったらいいよ
対して難しくないんだし
428デフォルトの名無しさん (アウアウウー Sac5-kt8p)
2022/06/03(金) 09:08:23.67ID:7PIvgb9ja
確かに。
RubyとJSを組み合わせないとまともなページは作れないね。
両方知っておくのがいいと思う。
429デフォルトの名無しさん (スププ Sdb3-orLC)
2022/06/03(金) 11:01:26.75ID:GhzoCoaEd
マジレスするとJSだけでいいけどな。
RubyとPythonは極端に習得容易だな。長所はそれだけ。遅過ぎて何やっても使えない。
430デフォルトの名無しさん (オッペケ Sr8d-fnu9)
2022/06/03(金) 11:58:42.03ID:tLDIaWEDr
遅過ぎって20年前の話してる?
431デフォルトの名無しさん (スッププ Sdb3-1gLZ)
2022/06/03(金) 12:00:42.89ID:vLJB7iu5d
JSの方が圧倒的に速いのは事実よ
432デフォルトの名無しさん (ブーイモ MM75-BW6z)
2022/06/03(金) 12:10:21.65ID:DZf8XKyWM
>>429
じゃ極端に習得が容易なRubyやPythonのほうが初心者向けってことだよね
433デフォルトの名無しさん (ワッチョイ 4101-AtLV)
2022/06/03(金) 20:46:46.08ID:RZ3sCzwG0
習得が容易=初心者向きってのどうかと思うけどね
434デフォルトの名無しさん (ワッチョイ 2bbb-AiA7)
2022/06/03(金) 21:11:53.38ID:lhb1THTB0
特にPythonなんか、学位勝負みたいな言語だし
435デフォルトの名無しさん (オッペケ Sr8d-HnzB)
2022/06/03(金) 21:23:41.93ID:KQZoslqJr
じゃあ間を取ってLISPをやろう
436デフォルトの名無しさん (ワッチョイ 5110-/szq)
2022/06/03(金) 21:26:35.99ID:NgQ/T7i/0
イエス!
437デフォルトの名無しさん (ワッチョイ 1300-SnXX)
2022/06/03(金) 21:59:02.39ID:vpEWwdrG0
lispは間にならんだろ。これだけはrubyやperlやPythonに比べて異世界の言語って気がする。
438デフォルトの名無しさん (ワッチョイ 2b2c-QrQl)
2022/06/03(金) 23:17:41.84ID:gxOeTsOz0
YouTube で有名な、雑食系エンジニア・KENTA が言ってる。
初心者が、PHP のLaravel, Python のDjango をやっても転職できない

どの企業も適材適所だから、
Web サービスで、Rails ではなく、Laravel, Djangoを選んだ相当な理由がないと、
単なる調べる能力がない、自走力のない香具師とみなされるだけ

だから、Pythonで企業を圧倒するには、
大学院数学科とか、AWS Certified Machine Learning - Specialty・機械学習の資格がいる

一方、Railsは文系でもOK。
AWS Solutions Architect など、アソシエイト3冠を持っていれば最高峰。
米国年収で、最高同士の組合せ

PHPは、KENTAがオワコン認定したから終わった。
AWS Lambda のデフォルト言語にも採用されていない。
Rust, Elixir も採用されていないけど

デフォルトでは、Java, Go, Node.js, Python, Ruby
PowerShell, C# だけ

YouTube で有名な、くろかわこうへいのAWS 入門書も出ている。
サロン内の数十人で書いたみたい
439デフォルトの名無しさん (ワッチョイ 06bb-TkOU)
2022/06/04(土) 13:15:30.73ID:rp2igMRS0
もう、Rubyは高卒を騙して金を巻き上げるだけの言語になっちまったな
440デフォルトの名無しさん (ワッチョイ 06bb-TkOU)
2022/06/04(土) 13:16:10.83ID:rp2igMRS0
もう、Rubyは高卒を騙して金を巻き上げるだけの言語になっちまったな
441デフォルトの名無しさん (ワッチョイ 236e-fUg7)
2022/06/21(火) 23:37:08.26ID:ZyOv9ngt0
rubyそのものについてでなくて申し訳ないのですが質問させてください
業務系の書類まみれに疲れ果ててウェブの世界に飛び込むことを検討しています。C++だのC#だのばかりでウェブの経験が無いのでブートキャンプでも受けようかと調べました
すると割とrubyの採用率が高いように思われます。rubyをお使いの皆様としても今後将来性はあると実感されてますでしょうか
442デフォルトの名無しさん (ワッチョイ 1317-UFQF)
2022/06/21(火) 23:59:31.51ID:Hg0PvelR0
フレームワークのRailsはプロトタイピングに優れてるからスタートアップ向きだけど
まじめに保守するならカッチリした言語・フレームワークに乗り換えることになる
そう割り切ってつかうならあり
443デフォルトの名無しさん (ワッチョイ 1a02-KtZt)
2022/06/22(水) 10:46:53.26ID:nSoHuNgQ0
実際に作ってみて、運用してみないと
分からない問題点があるからね
最初にかっちり決めてしまうと
修正するのがほぼ不可能になる
444デフォルトの名無しさん (ワントンキン MM8a-RVGA)
2022/06/22(水) 13:41:40.26ID:Mthm9vIkM
なんとなくだが>>441は概ね答えわかってて聞いてる気がする
445デフォルトの名無しさん (ワッチョイ 5a00-hdAH)
2022/06/22(水) 14:01:02.66ID:HANAT9N20
なら、そのなんとなく分かってる答えを答えてみて
446デフォルトの名無しさん (ワントンキン MM8a-RVGA)
2022/06/22(水) 14:10:12.91ID:wWAsFcPvM
無しで
447デフォルトの名無しさん (テテンテンテン MMb6-++HC)
2022/06/22(水) 14:53:28.86ID:RB9PJOboM
女のどう思う?はもう答えてほしい事が決まっていると言うからなw
448デフォルトの名無しさん (オッペケ Sr3b-BknV)
2022/06/22(水) 18:45:23.01ID:iF6LFzOMr
449デフォルトの名無しさん (ワッチョイ 7333-LMZa)
2022/06/22(水) 19:54:36.81ID:JTF7oH6k0
将来性に期待して今から始めるんはナシやろ。
最悪捨てることになっても可、つうことならアリ。
450デフォルトの名無しさん (ワッチョイ 236e-fUg7)
2022/06/22(水) 20:05:40.08ID:s8G+2Dhi0
色々参考になりました。
とりあえず仮に通うにしても就職先では別の言語を使う可能性が高いと考えておきます
451デフォルトの名無しさん (ブーイモ MM4f-gTzl)
2022/06/25(土) 15:23:21.02ID:bxGPQhaPM
開発言語で縛らないほうが良い採用できる感ある
452デフォルトの名無しさん (ワッチョイ 3f00-rGwN)
2022/06/25(土) 15:36:14.60ID:Y7867/mY0
それでもrubyがすきなんだもん
453438 (ワッチョイ 7f2c-Qhs/)
2022/06/26(日) 07:19:32.50ID:xs6E9gSx0
時価総額1兆円までは、Ruby on Rails で大丈夫

時価総額1兆円以上のGithub は、Go へ移行する。
一方、2兆円のGitlab は、Go へ移行せず、Railsを継続する

外人の動画で、2千社の取引先で、2億レコードあるけど問題ないと外人が言ってた

>>438
にも書いたけど、KENTA のYouTube 動画も一杯ある。
初心者は、月千円のKENTAのRailsサロンへ入れば良い。
日本6位の3千人。1位はキングコング西野の数万人

文系のキャリアパスは、Rails → Go のみ。
普及のキャズムを越えたのは、Goだけ。
Rust, Elixir は越えなかった
454デフォルトの名無しさん (ワッチョイ 9ebb-rOZM)
2022/07/03(日) 17:05:47.29ID:Ev2/54rw0
高卒から金を巻き上げるスクール商売ばっか目立ってるって、入会する側もおかしいと思わないのかねえ
455デフォルトの名無しさん (ワッチョイ 0a02-QBhF)
2022/07/03(日) 19:39:32.50ID:eTauYkOJ0
自力でやろうとしても
やる気になれない
何をどういう順番でやればいいか分からない
とかだと
スクールに頼ることになるんではないだろうか
456デフォルトの名無しさん (オイコラミネオ MM0b-auNL)
2022/07/03(日) 20:24:13.10ID:V6sTTCaHM
ハロワの職業訓練とかでもあるかもよ
457デフォルトの名無しさん (ワッチョイ 03e6-eBoN)
2022/07/03(日) 22:20:51.19ID:TGRiVvjp0
ひたすら写経してブリブリ動かせばなんとなく掴めると思うんだけどな~ 体系立った理解は後回しでも良いと思う
458デフォルトの名無しさん (オイコラミネオ MM0b-TI0+)
2022/07/03(日) 22:46:38.56ID:23Hh1xfmM
専門学校みたいなもんやと思えばそんなもんやろ。
相場を知らないんやから、しゃあない。
459438 (ワッチョイ 1e2c-Pt+j)
2022/07/04(月) 00:01:17.58ID:IXhz+xx30
KENTA のサロンは月千円

KENTAが批判しているマコなりは、実教室があるから80万円。
RUNTEQ は40万円。
東京フリーランスは10万円

KENTAがぼったくりと書いて、訴えられた所は200万円。
KENTAを訴えると、会社の知名度が上がるから訴える
460デフォルトの名無しさん (ブーイモ MMc6-eBoN)
2022/07/04(月) 20:07:00.68ID:+qSzy/GMM
小橋健太ってオンラインサロンやってんのか
461デフォルトの名無しさん (アウアウアー Sa2b-p0Nn)
2022/07/12(火) 04:04:17.82ID:Jv7vF0i4a
Ruby技術者認定試験制度の対象バージョンが2.1.xなの古くない?

Rails技術者認定試験もRails 4対象だし、公式Twitterは2018年が最終ツイート、さらに公式Facebookは削除されてる。
462デフォルトの名無しさん (オッペケ Sra1-KYHT)
2022/07/13(水) 15:41:39.70ID:deFlrBOmr
このスレでWordPress、PHP、SQLの質問をしたら、親切な達人プログラマーが懇切丁寧に教えてくれますか?
463デフォルトの名無しさん (アウアウウー Sa09-/dRU)
2022/07/14(木) 22:05:19.36ID:pbUBVD7Qa
>>462
Ruby でサイト管理を自動化するとか、DBにアクセスするという話ならお返事あるんじゃない?
464デフォルトの名無しさん (ワッチョイ f584-h+9Z)
2022/07/14(木) 22:07:45.69ID:0DIHPMC40
>>462
WordPress, PHP, SQLそれぞれのスレでご質問願います
465デフォルトの名無しさん (ワッチョイ 9b01-KYHT)
2022/07/14(木) 22:30:07.21ID:sv4BKnoc0
>>463-464
やはり、そうですよね。
他のスレでRubyスレに誘導されたので確認してみました。
ご回答ありがとうございます。
466438 (ワッチョイ 762c-lpz1)
2022/07/16(土) 21:11:15.96ID:2WLM14wy0
Word Press のコーディングの本はない。
デザインの本しかないので、プログラミングを学べない

Ruby on Rails では黒田努の3冊の本とか、パーフェクト Ruby on Rails、
ウェブサイトではRails ガイド・Rails チュートリアル、
Dean の動画とか、コーディングの教材が多い

>>438
にも書いたけど、
PHP は、KENTAがオワコン認定したから終わった

AWS Lambda のデフォルト言語にも採用されていない。
Go は採用されたが、PHPは採用されなかった。その理由を考えてみ

漏れの結論としては、PHPでは勉強を続けることは無理。
教育環境が無さすぎる

Laravel を使っているZOZO とか、良い開発者が集まらなくて、困ると思う
467デフォルトの名無しさん (ワッチョイ ee01-Gdun)
2022/07/17(日) 08:18:24.34ID:Fj+O5aYq0
>>466
KENTAはRubyも否定してますが、Rubyを推す理由ありますか?

RubyやPHPを選択する理由が薄くなった

@YouTube


GoのみがSランク、それ以外は全てCランク

@YouTube



最も、いいね少なすぎてKENTAの動画に信頼を置く理由が不明ですが
468デフォルトの名無しさん (オッペケ Sr75-7h84)
2022/07/17(日) 08:39:05.88ID:l4tNS2gQr
たいした学習コストじゃないんだし悩んでるくらいなら全部やればいい
469438 (ワッチョイ 762c-cIkS)
2022/07/17(日) 20:09:18.60ID:885G8LEt0
未経験からのエンジニア転職の必須教養【技術知識編】

@YouTube


KENTA が勧めるキャリアパスは、Ruby on Rails → Go のみ。
Laravel, Django を選ばないように言ってる

もしポートフォリオに、Laravel, Django を選ぶと、
Railsではなく、それらを選んだ理由を聞かれて困る

技術選定・適材適所の失敗。
つまり、情報収集能力や自走力がないので採用されない

皆がRailsで勝負しているのに、なぜ君は奇をてらったのか?
正攻法を避けた理由を説明できない

もし自分が面接官なら、
Laravel, Django のポートフォリオを持ってきても、そもそも見ない。
何で、Railsで作らないの? と思うのが普通
470デフォルトの名無しさん (ワッチョイ 9de6-+Ps4)
2022/07/17(日) 22:48:10.27ID:PExlSXjI0
経験言語そのものより良いコード書いてて配属先の技術スタック吸い込んでくれる人のほうが嬉しいかな
471デフォルトの名無しさん (ワッチョイ ee01-Gdun)
2022/07/18(月) 00:31:46.62ID:kJA0H2Nq0
>>469
いいね300低度の動画を鵜呑みにしちゃうのね
472438 (ワッチョイ 762c-cIkS)
2022/07/18(月) 12:26:25.64ID:J9TOF8GR0
ここ数年、Ruby はオワコンと言ってる香具師が多いけど、
結局、千人の素人が言うことよりも、1人のプロが言うことの方が正しい

例えば、Rubyで求人検索すると、5件しかないからオワコンだとか書いているサイトが多い

他にも、KENTAの天敵がSES のモローで、
2年前は、Railsはオワコンで、KENTAがRailsを勧めるのは、
ポートフォリオ制作で、サロンの滞在を長引かせて儲けるためで、
Java, PHP の方が稼げると勧めていた

【2022年版】Ruby on Railsの将来性

ところが最近の、YouTube のこの動画では、
Rails一色で、キャリア相談まで始めたw
Java, PHPのSESは、どうなったの?w

一方、RailsチュートリアルのYassLab は、Rubyはオワコンと言われているけど、
Railsチュートリアルは筑波大学にも採用されて、
毎年増加しているので、本当にオワコンなのか? と言ってた

プロの方が、正確な情報を持っている
473デフォルトの名無しさん (アウアウウー Sa39-Iu6f)
2022/07/18(月) 16:48:18.59ID:B6r4rodKa
最終的に負荷の問題でgoに移植ってパターンが
二度手間だから最初からgoでやれ
なんて言われてるが
ほとんどの場合、問題になるほど流行らんて
474438 (ワッチョイ 762c-cIkS)
2022/07/18(月) 18:59:57.47ID:J9TOF8GR0
Github のコピーであるGitlab は、時価総額1兆円だけど、
Rails のままで、Go へ移行しないと宣言している

GithubはGoへ移行するけど
475438 (ワッチョイ 762c-cIkS)
2022/07/18(月) 19:05:12.74ID:J9TOF8GR0
米国人の動画を見ると、
2億レコード・2千社のデータがあるけど、Rails で大丈夫とか、

試作品をNode.js で8週間掛かったが、Railsでは2週間だった。
JavaScript はアホらしいとか
476デフォルトの名無しさん (ワッチョイ 9de6-+Ps4)
2022/07/18(月) 19:16:42.87ID:Bv+/UIkW0
大量レコード・マルチテナントなんて言語選定というより設計の問題じゃん プロトタイピングの速さについては同感ですが
477デフォルトの名無しさん (ワッチョイ a602-fT9o)
2022/07/30(土) 08:09:12.00ID:sN86R6p40
モルモン教言語のrubyも辛い立場だな
まつもとも娘に断食させたり痛いことしてたし
478デフォルトの名無しさん (アウアウウー Sa09-dSCr)
2022/07/31(日) 14:48:30.69ID:ted3Whyfa
RubyとAjaxについて勉強してるんですけど
WebページからAjaxでサーバー上のtest.cgiに文字列を渡し
そのtest.cgiで処理した戻り値をWebページ側に送るのはどうやって書けば良いんでしょうか?
479デフォルトの名無しさん (オッペケ Sr05-D2l6)
2022/07/31(日) 15:10:56.17ID:UGDLlV/Br
>>478
rails tutorialの最後の章にほぼそのままのあるからそれ見れば
てか今日日cgiってまだ現役なのか
480デフォルトの名無しさん (アウアウウー Sa09-dSCr)
2022/07/31(日) 17:46:52.91ID:ted3Whyfa
>>479
https://railstutorial.jp/chapters/beginning?version=6.0#cha-beginning
これですか?

ただフレームワークの機能じゃなく原始的なやり方を探しています
481デフォルトの名無しさん (ワッチョイ ede6-M+VK)
2022/07/31(日) 18:12:13.33ID:zWPrMXnN0
xhrなどのキーワードでググったほうがいいんじゃないですかね
482デフォルトの名無しさん (アウアウウー Sa09-eLho)
2022/07/31(日) 19:19:38.43ID:UDF11vvTa
>>478
cgiで処理できるんならcgiがjson返せばいいだけでは?
それともtest.cgiが
・あなたの作ったrubyプログラムとは別
・戻り値が出来るのに時間がかかり
サーバーサイドからイベント送信する必要がある
みたいな事情があるのでしょうか?
483デフォルトの名無しさん (アウアウウー Sa09-dSCr)
2022/07/31(日) 21:37:17.25ID:ted3Whyfa
>>482
やりたいことがまさにそれで、ruby側の記述がわからないというワケです
CGIオブジェクトのどの値を書き換えるとajax側に返すjsonになるんでしょうか?
484デフォルトの名無しさん (ワッチョイ ede6-M+VK)
2022/07/31(日) 21:58:10.14ID:zWPrMXnN0
標準出力にJSON.generateなどで生成したjson文字列書き込めばいいんじゃないの
485デフォルトの名無しさん (アウアウウー Sa09-dSCr)
2022/07/31(日) 22:57:24.00ID:ted3Whyfa
>>484
標準出力で良いんですね
というかjson以外でも受け取れました
ありがとうございます
486デフォルトの名無しさん (ワッチョイ ba89-1wwR)
2022/07/31(日) 23:33:55.72ID:OH2jY+Nl0
原始的なCGI使ったことあるのってもうジジイだけなのかな
487デフォルトの名無しさん (ワッチョイ ede6-M+VK)
2022/07/31(日) 23:44:05.27ID:zWPrMXnN0
根源的な理解をするにはCGIは良い教材だと思う
フレームワークの恩恵も感じやすいんじゃないかなあ
488デフォルトの名無しさん (ワッチョイ 9949-BIed)
2022/08/01(月) 16:40:55.75ID:9ms8u+Pj0
RailsってDBアクセスのコストが高いんですか?
489デフォルトの名無しさん (アウアウウー Sa09-eLho)
2022/08/02(火) 07:50:45.58ID:XcZjnJFMa
>>488
比較対象次第ではあるが
オブジェクト指向と実態のギャップを埋めるために
相応のコストは掛かってる

ただまぁこのコストが気になるレベルまで積み上がってるとしたら
(Twitterみたいな大規模プロジェクトは例外として)
何かミスか勉強不足があるかと疑いたくなる
490デフォルトの名無しさん (ワッチョイ ede6-M+VK)
2022/08/03(水) 13:21:34.21ID:62T0uWYS0
フレームワークのオーバーヘッド気にするようなケースなんてほとんど無い気が
491デフォルトの名無しさん (アウアウウー Sa55-woMg)
2022/08/06(土) 22:16:44.35ID:VFKE1n46a
フレームワークのコストよりもデータ構造の設計によって検索に処理時間かかったり、大きすぎる中間ファイルが出来たりというほうが
アカウント数が増えた時には問題になると思います
ファイルが大きくなったら何らかの形で分割しないといけないと思うのでボトルネックになるのは読み込むファイルのサイズになりそうな

ところでまた質問なんですが
配列の後ろから1つだけ任意の要素を削除する処理を書こうとしたら
rindexがnilを返したときにdelete_atがエラーになるんですが、rindexの戻り値を変数に格納して条件分岐入れるしかないですか?

ary=[1,2,3,4,1,2,3,4]
e = ary.rindex(2)
ary.delete_at(e)
p ary

# 一行にしたかったけどnilになるとエラー
# ary.delete_at(ary.rindex(9))
492デフォルトの名無しさん (オッペケ Sr5d-JRyS)
2022/08/06(土) 22:18:27.62ID:DL1SAF5+r
Array#.popじゃあかんのか
493デフォルトの名無しさん (オッペケ Sr5d-JRyS)
2022/08/06(土) 22:36:17.90ID:DL1SAF5+r
よく読んでなかったわ
可読性無視して1行に押し込みたいならこうするくらいしかないんじゃね
ary.delete_at(ary.rindex(9) || ary.size)
494デフォルトの名無しさん (ワッチョイ d3e0-uMN9)
2022/08/06(土) 23:29:41.52ID:Mg+PC+uR0
a.rindex(2)&.tap { a.delete_at(_1) }
ActiveSupportがあればtry!
495デフォルトの名無しさん (アウアウウー Sa55-woMg)
2022/08/07(日) 01:09:34.68ID:lN5DVOZra
>>493
大きいサイズ入れた時の動作仕様が今後も変わらなければいいですがちょっと不安です

>>494
おおっすごい
tapでselfの時のみdelete_at呼ばれる処理なら安全そうですね
参考にします
ありがとうございました
496デフォルトの名無しさん (ワッチョイ 71ac-bzAd)
2022/08/11(木) 21:29:44.05ID:RYWpV6Qn0
句点Rubyおじの居場所をこっちにも作ってあげてください
497デフォルトの名無しさん (テテンテンテン MM73-Uod3)
2022/08/12(金) 00:35:03.18ID:GtF4IhqdM
installしなくても使えるrubyを用意すれば、ユーザ増えないですかね
まず初心者にも簡単に使い始められるようにしてユーザ数を増やす
498デフォルトの名無しさん (スッップ Sd33-JIap)
2022/08/12(金) 01:10:01.38ID:icd+inSAd
インストールを嫌うのはWindowsユーザー特有の習慣なわけだけど、
RubyにおいてWindowsユーザーは嫌われ者だからあえてWindowsユーザーを増やすような施策はしないだろうねえ
せっかくWindowsならWSL使えで終わりにできる時代になったのだし、今更逆行させたくないだろう
499デフォルトの名無しさん (ブーイモ MM8b-NQKu)
2022/08/12(金) 01:22:47.32ID:Ec+72ko9M
dockerイメージでいいっしょ~
500デフォルトの名無しさん (ワッチョイ e184-uMN9)
2022/08/12(金) 01:54:30.94ID:F/Knq/Ex0
そもそもWindowsを使わければいい
501デフォルトの名無しさん (オッペケ Sr5d-JRyS)
2022/08/12(金) 01:58:27.77ID:3I6JE0fzr
逆にWSLじゃどこがいけないのか
502デフォルトの名無しさん (ワッチョイ 516e-Uod3)
2022/08/12(金) 19:29:04.08ID:Ly5UHJxV0
休日を機にrubyの勉強を始めた
もうSESで業務系・制御系客先常駐は嫌だウェブに行くんだ
503デフォルトの名無しさん (ブーイモ MM95-JIap)
2022/08/12(金) 20:34:34.61ID:EhKo6h0UM
Node.jsやGoにしときなよ
今更Rubyはじめましたなんて保守のクソ案件やらされるだけだぞ
504デフォルトの名無しさん (ワッチョイ 516e-Uod3)
2022/08/12(金) 20:37:25.73ID:Ly5UHJxV0
まじか。ブートキャンプなんかもチェックしてrubyを選択してるところが多かったから最初のチョイスにはいいのかと思ったんだけど
505デフォルトの名無しさん (オッペケ Sr5d-JRyS)
2022/08/12(金) 20:39:57.30ID:3I6JE0fzr
スタートアップでRubyも一時期に比べれば減ったけど全体として少なくはないと思うがなぁ
まあGoやれには同意
506デフォルトの名無しさん (ブーイモ MM95-JIap)
2022/08/12(金) 21:08:08.21ID:EhKo6h0UM
>>504のスキル次第かな
プログラミング教育ビジネスでRubyの採用が比較的多い理由はPHPと同じで、
技術スタックが固定されていてRoRの使い方さえ覚えれば一応仕事らしいことはできるから
一方でNodeやGoだとまずAWSやGCPでインフラを設計して、、となっちゃうから前提知識が多く、教える人にとっても難しいわけだね
504がどうかは知らないけど業務系の出身の人ってペチパー上がりのWeb系に比べりゃネットワークやDBなど基盤技術に強い人が多いから、
まずはAWS SAを取るくらいを目標にしたほうがモノになりやすいかもしれない
507デフォルトの名無しさん (ブーイモ MM8b-zDOG)
2022/08/12(金) 22:14:25.50ID:jxfg8mfTM
>>504
Webアプリについて学ぶならRubyからはじめるのは今でも一番効率いいよ
 
C#とかやってるならそのままASP.NET MVCやるといい
Javaの場合はSpringやSpring Bootやる前にRails一通り学んだ方が学習効率が高い
508デフォルトの名無しさん (ブーイモ MM26-Kw/U)
2022/08/13(土) 16:42:11.13ID:g83/7zbCM
のっけからフレームワークって学ぶ順番としてどうなんだろ
509デフォルトの名無しさん (ブーイモ MM26-n+Ky)
2022/08/13(土) 18:08:03.40ID:G/JCqKHoM
>>508
それなりの多くは、なっちゃってエンジニアだと思うんだけど、ほとんどコピペでフレームワークを学ぶ!?雰囲気で使っている感じやんね。
510デフォルトの名無しさん (ワッチョイ d2e8-n+Ky)
2022/08/13(土) 21:20:26.00ID:716PWe/D0
TCP/IPからやれとはいわんけど
変なブログの情報どまりじゃなくMDNをリファレンスにしてくれれば迷惑はかけないかな
511デフォルトの名無しさん (アウアウウー Saa5-5Ix7)
2022/08/16(火) 06:37:29.62ID:nv4Pd6maa
アプリ作ってるけど、Ruby選んだのにRubyは俄然200行程度に対してJSソースがその10倍の量になった事をご報告
512デフォルトの名無しさん (ワッチョイ 027c-5Ix7)
2022/08/19(金) 13:31:40.23ID:Gwz5c/EG0
Rubyガイジがこのスレに誘導しているみたいだけど
今更Rubyなんて流行らないし>>503でも指摘されているけど
新規案件でRubyやRailsなんて採用しないから初心者が勉強するだけ無駄だぞw
513882 (ブーイモ MMb6-pvC5)
2022/08/19(金) 22:25:12.76ID:2b9NNsS1M
色んなプログラ厶スレで
rubyスレ誘導はってる人がいるよね
514デフォルトの名無しさん (ワッチョイ 8984-JOlF)
2022/08/19(金) 22:36:16.14ID:kD1PYwgK0
せいぜいがんばってください
515デフォルトの名無しさん (ワッチョイ 829b-Ickp)
2022/09/02(金) 12:46:17.31ID:SPKoKVwi0
ブロックスコープを作って、そのスコープ内だけで使える変数を作るには
どうすればいいのでしょうか?

a = 1

{
let a
p a # nil
}

p a # 1
516デフォルトの名無しさん (ワッチョイ 4d7c-4HIO)
2022/09/02(金) 13:58:50.26ID:0IIX0tzu0
a = 1
->(a = nil) { p a }[]
p a

ただrubocop(linter)に怒られる
517デフォルトの名無しさん (ワッチョイ 829b-Ickp)
2022/09/02(金) 15:50:30.29ID:SPKoKVwi0
>>516
サンクス
518デフォルトの名無しさん (ワッチョイ bf66-nSSL)
2022/09/04(日) 11:03:45.79ID:d+yqMU9C0
thenも使えそう
a = 1
nil.then { |a| p a }
p a

そもそもメソッドじゃ駄目なんだろうか
519デフォルトの名無しさん (ワッチョイ c701-9TNW)
2022/09/04(日) 14:18:23.63ID:nDhKbeBy0
書式設定これが見通し良くない?
無駄な#が有効利用できるからな
採用していいぞ

n = 123
name = "山田太郎"
puts "#05d{ n }番目は#10s{ name }です"
520デフォルトの名無しさん (オイコラミネオ MM1b-366i)
2022/09/08(木) 11:42:53.80ID:KAp1CvD8M
今日から三日間開催されているRubykaigi(Ruby会議)にて、Wasm化の話が
議題になっているらしい。
521デフォルトの名無しさん (ワッチョイ 5f2c-HH83)
2022/09/08(木) 21:57:50.38ID:EF/qt7ve0
>>504
YouTube で有名な雑食系エンジニア・KENTA は、下の動画で、
未経験者はシェアが高い、Ruby on Rails でポートフォリオを作れと言ってる

Django, Laravel はダメ。
特にKENTAは、PHP, Scala をオワコン認定したので、使わない方がよい

未経験からのエンジニア転職の必須教養【技術知識編】

@YouTube


Railsは、KENTAのサロン以外にも、RUNTEQ、東京フリーランスのデイトラなど色々ある

Node.js など最悪。面倒くさすぎて勉強にならない。
Go も初心者向きじゃないので、
KENTAが勧めるキャリアパスは、Rails → Go のみ

KENTAのサロンのAWS 部で皆、AWSのくろかわこうへいのサロンへも入る。
くろかわのサロンの生徒、数十人で書いた本も出てる

以下がバックエンドの最短コース

Rails, Bootstrap, jQuery から始めて、
Linux, Docker, Heroku, AWS, CircleCI, Github Actions

猛者になると、Terraform, Kubernetes。
ここまで行けば、どの会社よりも上
522デフォルトの名無しさん (ワッチョイ 5f2c-HH83)
2022/09/08(木) 22:12:49.56ID:EF/qt7ve0
>>488
データベース(DB)に、2千社・2億レコードあるけど、全く問題ないと外人が言ってた

N+1 で一々、問い合わせをしたり、
多対多などで、索引なしで総当たりみたいな事をやっているとか?

DBの実行計画を見た方がよい

ミックの本も読んだ方がよい。
副問い合わせを、case に書き換えるとか、書いてあったような気がする。
よく覚えていないけど

データベース資格の問題を解くとか
523デフォルトの名無しさん (ワッチョイ 5f2c-HH83)
2022/09/08(木) 22:38:48.48ID:EF/qt7ve0
>>478
漏れが作った、webrick のデモならあった

require 'webrick/cgi'

class MyCGI < WEBrick::CGI
def do_GET(req, res)
res["content-type"] = "text/plain"
ret = "get\n"
res.body = ret
end

def do_POST(req, res)
res["content-type"] = "text/plain"
ret = "post\n"
res.body = ret
end
end

MyCGI.new.start()
524デフォルトの名無しさん (アウアウウー Sa8b-Iguz)
2022/09/09(金) 16:26:23.24ID:nscVoUcha
1か月よりも前なので解決してたりします
525デフォルトの名無しさん (アウアウウー Sa8b-Iguz)
2022/09/09(金) 16:40:11.60ID:nscVoUcha
ちょっと厄介な事かもしれないですが、配列にuniqやった時に
[1,2,3,4,2].uniq これで 一番後ろの2が削除されて[1,2,3,4]になるじゃないですか

uniqした後の結果を[1, 3, 4, 2]にしたい時は

[1,2,3,4,2].reverse.uniq.reverse

こう2回reverseやるしか無いでしょうか?
reverse消すのを試みていたんですが上手い方法が思いつきません
526デフォルトの名無しさん (ワッチョイ 27da-yFwy)
2022/09/09(金) 23:04:33.89ID:Un8DgV3E0
uniq後の順序に依存した実装って気持ち悪いけどドキュメント読んでみると一応保証はされてるのか
527デフォルトの名無しさん (アウアウウー Sa21-OdF3)
2022/09/11(日) 15:57:11.70ID:rzWFC1+la
ちょっと無理そうですね

データ構造のほうが逆順だったらreverse無しで良かったんですが
そっちはもう換えられないのでこのままにしときます
528デフォルトの名無しさん (ワッチョイ a64e-pqEy)
2022/09/11(日) 16:22:50.85ID:t3QuDbs+0
reverseをreverse_eachにしたら中間のArrayは無くせる
529デフォルトの名無しさん (ワッチョイ 136e-r4yT)
2022/09/26(月) 19:18:46.78ID:m/z6XQ/+0
scan.map.delete_if.delete_if.shuffle[1,20]
とかなっても意地で1行で書くのが真のプログラマなの?
530デフォルトの名無しさん (ワッチョイ 12ec-mIyF)
2022/09/26(月) 20:06:14.07ID:K2FDfZLG0
突然どうした
職場のグチか?
531デフォルトの名無しさん (ワッチョイ 9e66-Y+SS)
2022/09/27(火) 14:32:01.48ID:XLkjq+Re0
delete_ifが2つ続いてるとか
mapした後にdelete_ifとか
何か良くない匂いがするとは思う
532デフォルトの名無しさん (ブーイモ MM5b-Zs/L)
2022/09/27(火) 15:25:57.97ID:+SNgMDTOM
>>529
意図が伝わりやすければメソッドチェーンでつなげること自体は何の問題もない
ただ1行で書くかと言われれば普通は改行して読みやすくメンテしやすくする

1行でも許容できる内容かどうかは引数含めて書いてもらわないとなんとも言えない
533デフォルトの名無しさん (アウアウウー Sa43-tX/F)
2022/09/28(水) 17:10:39.21ID:BXnMv7Uva
最近メソッド10個くらい繋げたコード書いたけどごく当たり前のコーディング

真のPGはmethod_missingの魔術コード書ける人だよ
534デフォルトの名無しさん (アウアウウー Sa43-tX/F)
2022/09/28(水) 17:43:18.00ID:BXnMv7Uva
サーバー側のrubyバージョンが古い時にローカル実行用スクリプトで3.0機能使ったコード書いていいものか迷う
もしかしたらいつかサーバー側にコード持っていく可能性もある
書いてもいいのかな?
535デフォルトの名無しさん (ブーイモ MM32-UZRN)
2022/09/28(水) 18:23:25.60ID:FVicjk6YM
どうせコンテナで動かすんだからどうでもいいだろ
今時サーバーにグローバルにインストールされたRubyに依存してるような腐った運用してる環境なら、イキって変なことするのはやめておけ
536デフォルトの名無しさん (アウアウウー Sa43-tX/F)
2022/09/28(水) 18:40:33.30ID:BXnMv7Uva
コンテナ?

3日1回程度実行するスクリプトをこっちで行うかサーバーに持ってくかという話
こっちもpc常時起動してるわけじゃないから、正確に確実に実行するならサーバーで走らせ続けるほうが楽ではあるが
ここまで書いて気づいたけどサーバーのメモリ余計に使う事になるからやっぱやめる
537デフォルトの名無しさん (ワッチョイ e37c-mIyF)
2022/09/28(水) 19:07:17.74ID:fVRflvZP0
サーバの古いRubyコードをモジュールで使うわけじゃないなら
枯れたPerlで書けば解決
538デフォルトの名無しさん (アウアウウー Sa43-tX/F)
2022/09/28(水) 21:33:55.99ID:BXnMv7Uva
ん?いや古いモジュールとかじゃなくて、
ローカル実行でもサーバー実行でも良いコードを、どちらへもっていくか みたいな話
539デフォルトの名無しさん (ワッチョイ 5e2b-mIyF)
2022/09/28(水) 22:47:37.12ID:sYls8uor0
いまどきのRubyで書くと互換性の問題がでるなら
いっそPerlで書いたらという話
540デフォルトの名無しさん (オッペケ Sr47-RY4O)
2022/09/28(水) 22:59:32.60ID:7XofIB3Ar
>枯れたPerlで書けば解決
正しいこと言ってるのに何故だか寂しくなる
541デフォルトの名無しさん (アウアウウー Sa43-tX/F)
2022/09/28(水) 23:22:18.60ID:BXnMv7Uva
Perlはないかなー
3.0だと構築しやすい環境があって
それがサーバーバージョンだと構築できるか不明で、
Perlだと普段使ってないんで
Perlのどのバージョンでどのモジュールバージョンがインストール有効か全く知らないので、さらに構築できる可能性が薄い、、
542デフォルトの名無しさん (ワッチョイ 9e66-Y+SS)
2022/09/29(木) 09:14:41.01ID:S94uJYpZ0
こういうのもYAGNIって言うのかな?
543デフォルトの名無しさん (ワッチョイ 2333-W97T)
2022/10/02(日) 23:00:07.08ID:P9RAxpp00
Perlの互換性をあなどるな!
Rubyごときの常識では測れぬぞ!
544デフォルトの名無しさん (ワッチョイ 6f66-A5NB)
2022/10/03(月) 22:36:01.59ID:mZNxA8zN0
perlは28年メジャーバージョン変えてないだけだろw
変えたらモジュールが全く付いていかず
後付けで別言語だったことにされた始末w

7にすると言った後もスルスル詐欺。もう崩壊寸前。
545デフォルトの名無しさん (テテンテンテン MM1f-poG4)
2022/10/04(火) 10:04:15.06ID:bSK5XELIM
rubyも変えない基本機能だけ永年保証版をつくればいいか
546デフォルトの名無しさん (ワッチョイ e301-QOpt)
2022/10/04(火) 22:14:05.98ID:UryqQ3PG0
先がないって意味では似た者同士
547デフォルトの名無しさん (アウアウウー Sa27-pIDl)
2022/10/05(水) 08:09:51.42ID:I8FgU9ZAa
rubyで書かれたサイトはみんな死んでperlで書かれたmixiが生き残った
これも現実
548デフォルトの名無しさん (ワッチョイ 2333-W97T)
2022/10/05(水) 20:16:53.48ID:CqdeFZnf0
>>544
Perl7は、Perl5最終版をほぼそのまま引き継ぐんやろ。
せやから問題ないはず!
549デフォルトの名無しさん (アウアウウー Sa27-pIDl)
2022/10/05(水) 21:04:39.92ID:qbCtmsWUa
perlの省略記法が上手くrubyにくれば文句ないんだけどな
_1 ってところまでは来たけどあと少し
マジックナンバーも覚えちゃえば効率良い
550デフォルトの名無しさん (オッペケ Sr47-qKwZ)
2022/10/05(水) 21:34:32.70ID:2RK+LAqWr
perlの省略記法好きなんだけどプロジェクトだと使いづらいんだよな……
551デフォルトの名無しさん (ササクッテロレ Sp03-G7zZ)
2022/10/10(月) 21:33:09.97ID:mVWGK/1kp
教えてください。
redditのr/rubyを読んでいて、以下のようなサンプルコードを書く人がいました。

lambda do
p 1
p 2
p 3
end[]

lambda {
p 1
p 2
p 3
}[]

-> {
p 1
p 2
p 3
}[]

このサンプルを書いた人は、Procとか、lambdaを使った書き方の違いを説明したかったようなので
議論の本質から外れるのですが、
Endや}の後の[]は、どんな意味があるかお分かりになりますでしょうか。
552デフォルトの名無しさん (アウアウウー Sa2f-7MlB)
2022/10/10(月) 21:54:11.50ID:vcZFFA/Ea
https://docs.ruby-lang.org/ja/latest/method/Proc/i/=3d=3d=3d.html
lambdaメソッドで生成したProcオブジェクトの実行です
553デフォルトの名無しさん (オッペケ Sr03-mdlF)
2022/10/10(月) 22:15:52.59ID:DUxtIWo2r
callしてるんでしょ
554デフォルトの名無しさん (ワッチョイ 034f-iygP)
2022/10/11(火) 14:17:27.31ID:17+/w9Hg0
手続きオブジェクト・Proc は、
Proc.new, Kernel#proc, Kernel#lambda, -> 引数{ 処理 } で作れます。
Procを呼び出すには、Prco#call, Proc#[] を使う

g = -> x, y { x + y }

p g.call( 3, 4 )
p g.( 3, 4 )
p g[ 3, 4 ]

p -> x, y { x + y }[ 3, 4 ]

これらは全て、7 と出力される

最後のものは、JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいなものか?
定義されると同時に実行される
555デフォルトの名無しさん (ササクッテロレ Sp03-G7zZ)
2022/10/11(火) 21:55:19.45ID:bcaE1HrEp
>>552さん
>>553さん
>>554さん
教えていただき、ありがとうございます。
こういうcallの仕方があるって知りませんでした。
556デフォルトの名無しさん (ササクッテロレ Sp03-G7zZ)
2022/10/11(火) 21:57:33.74ID:bcaE1HrEp
>>554さん
p g.yield(3,4)もありますね。
557デフォルトの名無しさん (アウアウウー Sa2f-kHT+)
2022/10/12(水) 03:59:02.03ID:rjG+co3La
色々あるけどrubyは多種多様な人達がどれかを選択するためにあるっつうイメージだから
自分が使うものは限定したほうが良いよ
Proc.new proc lambdaも詳細動作ちげーし
558デフォルトの名無しさん (ワッチョイ db33-mUkZ)
2022/10/12(水) 23:19:24.53ID:liNTEmfl0
しかし、Perlの融通無碍さを罵倒してたんちゃううんかい!
559デフォルトの名無しさん (ワッチョイ 6714-M13Z)
2022/10/13(木) 17:18:00.56ID:YUGI7Erj0
Rubyっていまさら学ぶ価値ありますか?
560デフォルトの名無しさん (ワッチョイ def8-p76D)
2022/10/13(木) 18:39:16.26ID:2KzUsHD30
SQLで十分
561デフォルトの名無しさん (スップ Sdea-lDXs)
2022/10/13(木) 20:05:37.13ID:nAMqCzQ7d
あるかないかで言えばもちろんある
他のメジャーな選択肢と比較すれば価値が低いだけ
562デフォルトの名無しさん (アウアウウー Sa2f-kHT+)
2022/10/13(木) 20:14:27.63ID:qa/FIGCma
目的設定してないなら何を学んでも時間の無駄
563デフォルトの名無しさん (ブーイモ MM27-N9Fb)
2022/10/13(木) 21:13:25.17ID:Tg7Fu5K4M
>>559
1. Webアプリの作り方を学びたい
2. オブジェクト指向を学びたい
3. プログラミングを学びたい

この3つのどれかなら今更でもRubyを学ぶ価値はある
1つの言語だけでやっていきたいみたいな考え方を持ってるならやめとけ
564デフォルトの名無しさん (オッペケ Sr03-mdlF)
2022/10/13(木) 21:14:57.72ID:pWIAiZmDr
>>563
正論
565デフォルトの名無しさん (ワッチョイ 034f-SUfT)
2022/10/14(金) 13:58:42.57ID:ljWa0xD50
YouTube で有名な雑食系エンジニア・KENTA の初心者向けRuby on Rails サロンが有名。
KENTA, Rails専門学校・RUNTEQ, Deanin の動画などを参照

KENTAが勧めるキャリアパスは、Rails → Go のみ

主に、未経験者のモダンな転職先がRails。
つまり、ベンチャーなどへのプロの転職用フレームワーク

でもアマチュア用に、CSV などファイル操作するだけでも、Rubyは簡単
566デフォルトの名無しさん (テテンテンテン MM86-M13Z)
2022/10/14(金) 14:07:02.47ID:r95QbhkqM
たくさんの言語を同時相互翻訳できるのに、
なぜプログラム言語はできないのだろう

言葉よりプログラム言語のほうが簡単そう
語彙は言葉の方が圧倒的に多いし、文法も複雑
プログラム言語はちょっとした違いがすぐエラーになる、ここをなんとかすれば
いいわけだが
567デフォルトの名無しさん (アウアウウー Sa2f-kHT+)
2022/10/14(金) 15:27:43.54ID:jrsxVe/4a
翻訳してコンパイル実行までいっぺんに考えるから作るの無理になるんじゃね
まず翻訳してコンパイルエラーとかは一旦無視したコード出力してから
別のロジック・プロジェクトとして整形するようにするとかさ
段階はあると思うよ
568デフォルトの名無しさん (アウアウウー Sa2f-7MlB)
2022/10/14(金) 15:51:50.20ID:oF5RKx5oa
>>566
結局、翻訳先にない機能をどうにかするために
・機械語じみた可読性0の長大なプログラムに翻訳する
・翻訳元の言語のインタプリタを翻訳先の言語で作ってしまう
みたいなことになるかと
python2->python3の翻訳も確かうまく行かなかったんじゃなかったか?
569デフォルトの名無しさん (ブーイモ MM86-N9Fb)
2022/10/14(金) 18:08:42.41ID:KzgOwgYoM
コンバージョンプログラムいろいろとあるよ
知らないだけじゃない?
Java to Kotlinとか
570デフォルトの名無しさん (オッペケ Sr03-mdlF)
2022/10/14(金) 18:48:07.45ID:ZVmcxfG6r
AltJS系も広義ではそうじゃないか
Opalとか
571デフォルトの名無しさん (アウアウウー Sa2f-kHT+)
2022/10/14(金) 20:28:18.73ID:jrsxVe/4a
そういう0か100%かってのじゃなく、AIプログラミングに繋がる話だと思うけどね
572デフォルトの名無しさん (ブーイモ MM27-N9Fb)
2022/10/14(金) 21:04:51.58ID:baXL7k1XM
AI翻訳を通さないと何言ってるのかわからないや
573デフォルトの名無しさん (テテンテンテン MM7f-NBC3)
2022/10/15(土) 00:31:52.18ID:IvRHkVgHM
>>566
プログラム言語に依るのだろう
RubyからPythonはできそうな気がするけど、C++からForthとかはあまりにも違いすぎて無理…
そう考えると、言葉よりもプログラム言語の方が違いが大きすぎるって事だな
574デフォルトの名無しさん (ワッチョイ 2b84-TyQf)
2022/10/15(土) 00:37:52.24ID:1cOZHVrb0
>>566
> たくさんの言語を同時相互翻訳できるのに、
一般の言語で、完全に相互翻訳できるわけない
575デフォルトの名無しさん (テテンテンテン MM7f-WdpF)
2022/10/15(土) 11:11:10.80ID:7Qqe8Rg7M
slack の ruby-jp ってどこかに移転しました?
576デフォルトの名無しさん (ワッチョイ 4b33-CxPv)
2022/10/15(土) 18:11:06.95ID:INu/t1220
>>566
やればできないわけもないんやから、結局は需要がない、ということやろ。

人の言葉は意志疎通のための翻訳やからアリ。
しかし、コンピュータ言語の翻訳結果は再利用のためのリソースを期待されがちやけど、ほぼムリなんでナシ。

実際、再利用でない実行のための変換なら、多用されとる。
コンパイラもそうやし、WebAssemblyなんかそのためやろし。
577デフォルトの名無しさん (ワッチョイ 2b4f-spri)
2022/10/15(土) 18:26:46.60ID:49IRcNny0
Haxeは、JavaScript(JS)、C++、C#、Java、JVM、Python、Lua、PHPを対象とする、
クロスプラットフォームアプリケーションを構築可能で、

各プラットフォームのネイティブ機能にアクセスできる、
オブジェクト指向のプログラミング言語

主に、HTML, JS ゲーム用で、Adobe Flash の後継。
Ruby には対応していない
578デフォルトの名無しさん (ワッチョイ 2b4f-KWxC)
2022/10/18(火) 13:36:19.02ID:fjjhfMGv0
「改訂2版 Ruby逆引きハンドブック」の「文字列を分割する」の所で、
split で構造体を定義するのは参考になる

Struct_Fields = %i(a b c) # フィールド名のシンボル配列
Foo = Struct.new( *Struct_Fields ) # 配列展開

input_data = ":x::y:" # コロン区切り

# ["", "x", "", "y"] 内の ["", "x", "y"] を取り出す
p tmp_ary = input_data.split( ":" ).values_at( 0, 1, 3 )

p obj = Foo.new( *tmp_ary )
#=> <struct Foo a="", b="x", c="y">
579デフォルトの名無しさん (オッペケ Sr0f-e84p)
2022/10/18(火) 20:49:59.26ID:gz5lMMWOr
書き捨てのコードならいいけど微妙じゃね
580デフォルトの名無しさん (ワッチョイ ef66-9m+h)
2022/10/19(水) 21:20:50.39ID:Lu+vrvAs0
values_atが便利だなと
581578 (ワッチョイ 2b4f-KWxC)
2022/10/20(木) 13:24:43.57ID:zGrDbuOl0
values_at に、range も渡せる

# ["", "x", "", "y"] 内の ["y", "", "x"] を取り出す
p tmp_ary = input_data.split( ":" ).values_at( 3, 0..1 )

下のinput_1 の出力が、なぜ、
["", "", "y", ""] にならなかったのだろう

冒頭のコロンの前には、"" があるのに、
末尾のコロンの後ろには、"" がない

# コロン区切り
input_1 = "::y:"
input_2 = "::y:a"

p input_1.split( ":" )
p input_2.split( ":" )

出力
["", "", "y"]
["", "", "y", "a"]
582デフォルトの名無しさん (ワッチョイ 1fe8-TyQf)
2022/10/20(木) 14:02:28.80ID:fK+SugQF0
https://docs.ruby-lang.org/ja/latest/method/String/i/split.html
ドキュメントに書いてるが
limit < 0
で末尾も残る
なぜかは知らんがなにか他の挙動にあわせたんだろう
583578 (ワッチョイ 2b4f-KWxC)
2022/10/20(木) 18:34:41.93ID:zGrDbuOl0
ありがとう。そういうオプションがあったのか

# コロン区切り
input_1 = "::y:"

p input_1.split( ":" )
p input_1.split( ":", -1 )

出力
["", "", "y"]
["", "", "y", ""]
584デフォルトの名無しさん (テテンテンテン MM4b-EHNx)
2022/11/15(火) 15:14:40.66ID:BxxcZFiKM
NSA、可能な限りメモリ安全なプログラミング言語を使うことを推奨
https://developers.srad.jp/story/22/11/13/042218/

C#・Go・Java・Ruby・Rust・Swiftなど
python脱落
585デフォルトの名無しさん (ワッチョイ c533-lk8c)
2022/11/15(火) 20:50:38.98ID:u4oN4nv30
たしかに、TMをつけてまでRubyを挙げるのに、Pythonを挙げないのは意味がわからんな。w
伝統と信頼のPerlを入れろよ!とも思うし。
586デフォルトの名無しさん (ワッチョイ 05e0-spp/)
2022/11/15(火) 21:03:39.07ID:8tiGCKxN0
VMもそこらの拡張もそこまで安全に書けてると思えんが
587デフォルトの名無しさん (ワッチョイ ad7d-qdwE)
2022/11/15(火) 22:17:37.16ID:9MQlhJri0
Python は字数の多さが敗因だろうな
588デフォルトの名無しさん (ワッチョイ 738f-DE9r)
2022/12/28(水) 13:12:25.93ID:+yyf2wj20
Ruby 初心者が最初に絶対に身に着けないといけない常識って
ユーザーグループのキモい人達への無条件の敬意と忠誠(を払ってるフリ)じゃね
589デフォルトの名無しさん (ワッチョイ 7f00-ysto)
2022/12/28(水) 13:30:38.49ID:xff+tzRk0
何言ってんだ、こいつ?
590デフォルトの名無しさん (オッペケ Sr65-QX6b)
2022/12/28(水) 22:34:40.01ID:SmTZmVnPr
rails slackはそんな雰囲気ではないが何のこと言ってるんだか
591デフォルトの名無しさん (オッペケ Sr65-QX6b)
2022/12/28(水) 22:34:54.53ID:SmTZmVnPr
railsじゃなくてruby-jpか
592デフォルトの名無しさん (ワッチョイ a37d-hX/W)
2022/12/31(土) 14:21:30.95ID:MXKHIln50
Rubyの静的型ってみんな使ってんの?
593デフォルトの名無しさん (ワッチョイ 6301-+9kW)
2023/01/01(日) 10:40:08.74ID:ZyLRd4DP0
http://2chb.net/r/hp/1439005423/331
から誘導されて来ました。
JavaScriptで日付が変わると自動で音が鳴るというものを作るにはどうしたらいいですか?
594デフォルトの名無しさん (ワッチョイ f6e8-U0ia)
2023/01/01(日) 13:19:44.80ID:TB0Q4LnJ0
スレタイみて誘導がイタズラだと思わんかったん?
595デフォルトの名無しさん (ワッチョイ 6301-uB4A)
2023/01/01(日) 13:40:43.56ID:SpXTBx4O0
JavaScriptで日付が変わると自動で音が鳴るというものを作るにはどうしたらいいですか?
596デフォルトの名無しさん (ワッチョイ df10-+64g)
2023/01/01(日) 16:55:07.16ID:oLAa0eV20
perl好き
ruby嫌い
crystal好きだが
crystalもパッケージ増えていくとぐちゃぐちゃになるんだろうな
597デフォルトの名無しさん (アウアウウー Sa85-DWwd)
2023/01/12(木) 17:09:40.21ID:qeO58bDma
#! ruby

# -*- coding: UTF-8 -*-


require 'libev_scheduler'

Fiber.set_scheduler(Libev::Scheduler.new)


puts "Go to sleep!"

Fiber.schedule do

puts "Going to sleep"

sleep(1)

puts "I slept well"

end

puts "Wakey-wakey, sleepyhead"


exit
598デフォルトの名無しさん (アウアウウー Sa85-DWwd)
2023/01/12(木) 17:16:55.61ID:qeO58bDma
途中で送信した

https://docs.ruby-lang.org/en/3.0/Fiber.html
のサンプルを試してみたのだが、


Go to sleep!
Going to sleep
Wakey-wakey, sleepyhead
I slept well

と表示されるはずが、何故か実際に実行すると

Go to sleep!
Wakey-wakey, sleepyhead
Going to sleep
I slept well

と表示されてしまう
Fiber,schedule は、Fiber を新規作成して即時実行のはずなので、ドキュメントの通り Going to sleep が先に動くはずなのに何故順番が逆になっているのかさっぱりわからない?
どういうことだろう??
599デフォルトの名無しさん (ワッチョイ 7110-9O0i)
2023/01/12(木) 17:42:17.84ID:k/txfnyN0
今どき2行目が必要な環境ってある?
コードは全部ASCIIだし脳死で書いてない?

>Fiber,schedule は、Fiber を新規作成して即時実行のはず
これを信用するとしてputsもI/Oだからとか(しらんけど)
配列pushなんかに変えてみて最後に出力してみては
600デフォルトの名無しさん (ワッチョイ 8610-wtyD)
2023/01/14(土) 16:20:53.55ID:XG+wNT9X0
irb 1.6.2(ruby 3.2.0付属)について質問です。

文字入力時には自動補完せず、タブキーを押したときに自動補完させるにはどうすればよいでしょうか?

入力時の自動補完だと入力の邪魔になってしまうので任意のタイミングで自動補完させたい、という意図です。

.irbrcに IRB.conf[:USE_AUTOCOMPLETE] = false (あるいは --noautocomplete で起動)
とした場合、タブキーで補完候補が一気に出力されてしまい補完候補の選択ができませんでした。
601デフォルトの名無しさん (アウアウウー Sa91-wtyD)
2023/01/14(土) 23:55:35.78ID:v+aDVA7Ga
Stack Overflow 2023年の年収。高中低

Ruby, Elixir : 9.3 万ドル
Go : 8.9
Rust : 8.7

Python : 7.1
TypeScript, C# : 7
Kotlin : 6.9
C++ : 6.8
C : 6.7
JavaScript : 6.6
Java : 6.5
HTML/CSS : 6:4
VBA : 6:2

PHP : 5
Dart : 4.4
602デフォルトの名無しさん (アウアウウー Sa91-wtyD)
2023/01/15(日) 03:00:28.41ID:6m68H/Iaa
確かに、puts もI/O だから、表示される順番は確定しないのかも
603デフォルトの名無しさん (アウアウウー Sa91-wtyD)
2023/01/15(日) 03:04:07.46ID:6m68H/Iaa
>>600
irb よりも、VSCode の拡張機能・Code Runner を使えば?

右クリックメニューから、ファイル全体または選択したコード片を実行できる
604デフォルトの名無しさん (アウアウウー Sa91-w88e)
2023/01/15(日) 16:50:45.07ID:aMclAZtfa
>>599
なるほど、と試した結果

r=[]
r << "Go to sleep!"
Fiber.schedule do
r << "Going to sleep"
sleep(1)
r << "I slept well"
p r
end
r << "Wakey-wakey, sleepyhead"
p r
exit

# ["Go to sleep!", "Wakey-wakey, sleepyhead"]
# ["Go to sleep!", "Wakey-wakey, sleepyhead", "Going to sleep", "I slept well"]

ドキュメントには即時実行とあるけど、メインの最後まで実行してから動き始めているように見えますね
Fiber.schedule do
に与えたブロック同士では想定通りの実行切り替えはされるようですが、ドキュメント通りの動きには何故かなっていない模様……
605デフォルトの名無しさん (アウアウウー Sa91-w88e)
2023/01/15(日) 16:52:49.17ID:aMclAZtfa
一行目がexitの前の出力で、2行目が Fiberのブロックからの出力です
606デフォルトの名無しさん (ワッチョイ 4310-Jpma)
2023/01/22(日) 21:54:06.16ID:mu8Nl5mu0
RubyのBigdecimalの最大桁数っていくつ?

puts (BigDecimal("2",1000) ** ((BigDecimal("2",1000) ** (BigDecimal("1031",1000) - BigDecimal("1",1000))) - BigDecimal("1",1000))) * (BigDecimal("2",1000) - (BigDecimal("2",1000) ** BigDecimal("-3705346855594118253554271520278013051304639509300498049262642688253220148476920",1000)))

が計算できない。

https://ideone.com/jyxgVq
607デフォルトの名無しさん (アウアウウー Sa93-qdck)
2023/02/06(月) 12:23:28.94ID:t0SsOUx4a
パソコンのメモリサイズが大きければ、大きくなるのかも。
Bigdecimal の最大桁数の設定は無いの?

Elixir では、130GB メモリで、
1秒間に、5千万の小プロセスを起動できたという記事を見た
608デフォルトの名無しさん (ワッチョイ 0d5f-FP2p)
2023/02/23(木) 19:35:23.59ID:bE7hCXJI0
公式サイトの日本語ドキュメントって内容ものすごく古いままなんだな
例えばC API一覧にrb_compile_cstrが載っているが2.7.7や3.2.1のヘッダファイルにはこの関数は無い(他にも無い関数が多数ある)
WebArchiveから1.8のソースを入手してみたら存在したわ
少なくともC APIを使おうと思ったら英語版ドキュメントを参照しないとだめだな
609デフォルトの名無しさん (ワッチョイ 0d5f-FP2p)
2023/02/23(木) 20:04:10.36ID:bE7hCXJI0
英語ドキュメント読んだらあっさりできましたわ
日本語ドキュメントには「1.xの頃のまま更新していません。最新版は英語版を見てね」と注記しておくべきだと思った
そりゃ「まだまだ書き直しが必要です」と書いてあるけどそんな古いままとか思わんやん

// rubyスクリプトで定義した関数fをCから呼び出す
#include <ruby.h>
int main()
{
ruby_init();
VALUE v = rb_eval_string("def f\np 'Hello'\nend");
rb_funcall(v, rb_intern("f"), 0, 0);
ruby_cleanup(0);
return 0;
}
610デフォルトの名無しさん (ワッチョイ 23a5-veW0)
2023/02/24(金) 13:11:19.67ID:lmfpmsq50
やる気見せんかーい
611デフォルトの名無しさん (ワッチョイ 0d5f-FP2p)
2023/02/24(金) 20:23:01.89ID:esYaZE7H0
ごめんなさい609のコードだとVisual Studioではruby_initでクラッシュするみたい
正しい初期化は下記の模様
linuxだと609のコードでも何故か動いてしまったけど

// rubyスクリプトで定義した関数fをCから呼び出す
#include <ruby.h>
int main(int argc, char *argv[])
{
ruby_sysinit(&argc, &argv);
RUBY_INIT_STACK
ruby_init();
ruby_init_loadpath();
VALUE v = rb_eval_string("def f\np 'Hello'\nend");
rb_funcall(v, rb_intern("f"), 0, 0);
ruby_cleanup(0);
return 0;
}
612デフォルトの名無しさん (ワッチョイ 05da-C2qO)
2023/03/02(木) 01:01:19.02ID:C78KeSuO0
手動でgem installしたものって

> gem list | grep -v default:
debase (0.2.5.beta2)
debase-ruby_core_source (3.2.0)
debug (1.7.1)
matrix (0.4.2)
minitest (5.17.0, 5.16.3)
...
をメモっておけば別PCでも同じ環境を再現できますか?
613デフォルトの名無しさん (ワッチョイ 1a70-XXd9)
2023/03/03(金) 01:21:26.43ID:kpW9zhd70
railsチュートリアルやってるけどminitest難しいなあ
実際の現場も使ってるんですか?それともRspec?
どちらも難しいのかね
614デフォルトの名無しさん (エアペラ SD25-PLJR)
2023/03/04(土) 19:37:33.36ID:ggY8eI1VD
まず、gem のダウンロード時に、ドキュメントをダウンロードしたくなければ、
各ユーザーのホームディレクトリに、.gemrc ファイルを作って、以下の2行を書いておく

install: --no-document
update: --no-document

既にダウンロードしたドキュメントも全て削除する

次に、gemでbundler をダウンロードする。
その後は各プロジェクト毎に、gemではなく、
複数のモジュールの依存関係を解決する、bundlerを使えばよい

Gemfile/Gemfile.lock ファイルは、
JavaScript のpackage.json/package-lock.json/yarn.lock ファイルと同じ

お勧めは、irb を使わず、
VSCode で拡張機能・Code Runner を使う。
これは右クリックメニューから、ファイル全体または選択したコード片を実行できる

さらにRuby on Rails なら、WSL2, Linux, Docker Desktop も使う

多言語バージョンマネージャーは、
日本人が作ったanyenv で、rbenv, nodenv なども使える。
asdf もある

Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv
615デフォルトの名無しさん (アウアウウー Sa1d-IOBr)
2023/03/05(日) 08:30:53.03ID:eEwP+0xWa
Code Runnerを気軽に勧める人おるが
アレわりと邪悪な拡張だと思うんだよなぁ

ちゃんと環境作ったほうがいいし
簡易ですませる場合もコンソール使った方がよくない?
616デフォルトの名無しさん (アウアウウー Sa1d-IOBr)
2023/03/05(日) 08:36:16.49ID:TCOo6fxCa
邪悪というと、語弊があるか
…邪道もしくは害悪あたり


アレがファイルではなくコードを実行してるあたりを認識せずにハマってる初学者何人か見た
617614 (アウアウウー Sa1d-3zFX)
2023/03/07(火) 01:04:58.17ID:oFQklhQHa
山田祥寛のRuby 3 の本でも、MSYS2 のRuby Installer を使っているけど、
VSCode の拡張機能・Code Runner を使っている

Code Runner では、この設定をチェックしておくと良い。
Code-runner: File Directory As Cwd
Whether to use the directory of the file to be executed as the working directory.

そうすると実行時にcd で、そのファイルがある場所へカレントディレクトリを移動してから、
ruby "絶対パス/ファイル名.rb"
又は、ruby "絶対パス/tempCodeRunnerFile.rb"
で、そのファイルを実行する

tempCodeRunnerFile.rb は、Rubyのコード片をコピーした一時的なファイル

設定項目、executorMap には、多くの言語の実行コマンドが書いてある。
"code-runner.executorMap": {

"javascript": "node",

"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

"python": "python -u",
"ruby": "ruby",
618デフォルトの名無しさん (ワッチョイ 6984-iJGe)
2023/03/07(火) 02:03:47.62ID:vk4APYnr0
そもそもWindowsを使うべきでないし、
MSYS2も使うべきでないし、
Code Runnerなんか使うべきでない
619デフォルトの名無しさん (ワッチョイ 8b40-oEU1)
2023/03/07(火) 08:33:17.73ID:eOMIe0zX0
 Progateというプログラミング学習サイトのRuby on Rails5の開発環境を用意しようコースで、rubyのバージョン確認、SQLのインストール、Railsのインストールまではスムーズ行えたんだけど、その次のRailsアプリケーションという所でコマンドプロンプトを使って《rails new ファイル名 -G》のコマンドを入力すると、下の方に下記のようなエラーが複数出てきてその後の《rails server -G》のサーバー起動の時にも同じエラーが出て上手くいかない。
どうすれば良いんですか?エラー内容を見ても分からない。

それぞれのバージョンは
【Ruby】ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [x64-mingw32]
【Rails】Rails 7.0.4.2
【PC】64 ビット オペレーティング システム、x64 ベース プロセッサ

エラーは
C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:50:in `match?': invalid byte sequence in UTF-8 (ArgumentError)
from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:50:in `chop_basename'
from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:374:in `plus'
from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:354:in `+'
from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:420:in `join'
from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/settings.rb:444:in `global_config_file'
from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/settings.rb:93:in `initialize'
from C:/Ruby30-x64/lib/ruby/3.0.0/bundler.rb:331:in `new'
from C:/Ruby30-x64/lib/ruby/3.0.0/bundler.rb:331:in `settings'
from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/env.rb:20:in `report'
from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:72:in `request_issue_report_for'
from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:50:in `log_error'
from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:109:in `rescue in with_friendly_errors'
from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:101:in `with_friendly_errors'
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/bundler-2.2.33/libexec/bundle:37:in `<main>'
620デフォルトの名無しさん (ワッチョイ 8b40-oEU1)
2023/03/07(火) 10:07:23.72ID:eOMIe0zX0
OSはWindows11 home 22H2です
621デフォルトの名無しさん (ワッチョイ 7b66-NHSw)
2023/03/07(火) 10:44:28.93ID:0yJrO03Z0
VisualStudioCodeでRailsの環境構築が上手くできません
https://ja.stackoverflow.com/questions/92611/visualstudiocode%E3%81%A7rails%E3%81%AE%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E3%81%8C%E4%B8%8A%E6%89%8B%E3%81%8F%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93

ここにあるのと同じハマり方してるなら、ユーザー名が日本語になってて
ハマってるパターンかなあ。

自分ならとりあえず指示通りにC:\TempとC:\Homeフォルダを作ってコマンドプロンプトで
set TMP=C:\Temp
set HOME=C:\Home
して試してみるかな。

駄目なら次は新しくアルファベットのみでユーザー作って試す。
途中で再インストールも辞さない構え。
622デフォルトの名無しさん (ワッチョイ 7b66-NHSw)
2023/03/07(火) 10:49:58.83ID:0yJrO03Z0
どうしても解決できないがRailsに触ってみたいなら
Railsチュートリアルに従ってCloud9上でやるか(多分クレカが必要)
WSLの導入を検討するかかなあ。


昔もフォルダ名にスペースが含まれたり日本語が含まれてて
動かんとかよくあったけどいまだにあるんだなあ。
623デフォルトの名無しさん (ワッチョイ 8b40-oEU1)
2023/03/07(火) 11:38:27.82ID:eOMIe0zX0
>>621
 ユーザー名は日本語ですねwひらがな2文字です。
それがそんなに影響してるんすね
624デフォルトの名無しさん (ワッチョイ 8b40-oEU1)
2023/03/07(火) 12:50:55.71ID:eOMIe0zX0
>>621
 とりあえずユーザー名を変えて試してみたらいいんですかね?
625デフォルトの名無しさん (ワッチョイ 7b66-NHSw)
2023/03/07(火) 14:06:24.57ID:0yJrO03Z0
>>624
多分単純にユーザー名変えるだけだとフォルダ名は変わらないから駄目なんじゃないかな。
新しくアルファベットのみのユーザー作って、そのユーザーでログインしないと。


ただ、それをすると今のユーザーの設定は引き継がれないし
Rails使う時だけそのユーザーにログインしないといけなくなるのでちょっとめんどくさいかも。
626デフォルトの名無しさん (ワッチョイ 6984-iJGe)
2023/03/07(火) 14:10:48.58ID:vk4APYnr0
だから、初心者ほど、あれほどWindowsを使うなと言っているわけで
627デフォルトの名無しさん (ワッチョイ 7b66-NHSw)
2023/03/07(火) 14:22:52.66ID:0yJrO03Z0
RailsチュートリアルでCloud9をわざわざ使ってるのも環境統一できるからだしなあ。
自分がどうしてもWindowsマシン1台でやれって言われたらWSLでUbuntu入れて
そこでやる。
628デフォルトの名無しさん (ワッチョイ 8b40-oEU1)
2023/03/07(火) 14:23:46.47ID:eOMIe0zX0
>>625
 ユーザー名を変えた後にrubyをアンインストールして入れ直したりしても無理なんですかね?
629デフォルトの名無しさん (ワッチョイ 5310-AVBr)
2023/03/07(火) 14:40:43.15ID:msqWHE5U0
Windows固有の問題も聞かないと解決できないんだし
WSL2でやるのがまちがいないよ
このあともネイティブ拡張や外部プログラムに依存してるgemで絶対ハマる
630デフォルトの名無しさん (ワッチョイ 8b40-oEU1)
2023/03/07(火) 14:51:13.04ID:eOMIe0zX0
>>625
 rails使う時だけで良いですね、指示通りにできなくてどうしてもやりたくてモヤモヤしてるだけなんで。
なんなら新しいユーザーをrailsにしようとおもいます
631デフォルトの名無しさん (ワッチョイ 7b66-NHSw)
2023/03/07(火) 15:00:44.35ID:0yJrO03Z0
>>630
やってみて、できたら報告してくれるとうれしい。


それでも駄目ならWSLについて調べてそっちでやれば割とすんなり行くんじゃないか。
ググるかqiita調べれば記事いっぱいでてくるだろう。
632デフォルトの名無しさん (アウアウエー Sae3-4fLd)
2023/03/07(火) 15:58:28.99ID:CdvGJ9oAa
>初心者ほど、あれほどWindowsを使うな

Rubyに関しては同意
っていうかRubyもうオワコンで良くね
633デフォルトの名無しさん (ワッチョイ 8b40-oEU1)
2023/03/07(火) 15:59:29.31ID:eOMIe0zX0
よく分かんないんすけどWindowsでrubyを触ること自体あまり良くないんすか?
634デフォルトの名無しさん (ササクッテロロ Sp45-Ip/m)
2023/03/07(火) 16:12:13.76ID:09h4aa1hp
Rubyとjava選べるならどっちやるよ?
635デフォルトの名無しさん (ワッチョイ 1302-W5Lg)
2023/03/07(火) 19:56:32.42ID:cliNPotC0
そもそもWindows上でプログラミングすることがあんまり推奨できない
パスとか漢字コードとか引っかかるところ大杉
636デフォルトの名無しさん (ワッチョイ eb01-oEU1)
2023/03/07(火) 20:15:30.84ID:uRhwCRx20
>>635
 じゃあMacとかが良いんですかね?
637614 (アウアウウー Sa1d-3zFX)
2023/03/07(火) 20:27:30.71ID:wbYp+Qgwa
>C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:50:in `match?'
: invalid byte sequence in UTF-8 (ArgumentError)

ウェブ系では全言語で、Windows の日本語・CP932(shift-jis), UTF-16 がダメ。
それで、MSYS2 でバグる

日本語のユーザー名やファイルパス、
C:\Program Files などのファイルパス中の半角空白もヤバイ

\ もダメだから、例えばPython では、
C:\Users\Owner\Desktop を、C:\\Users\\Owner\\Desktop みたいに書いている。
Rubyでは、C:/Users/Owner/Desktop と書ける

でも、全言語の入門書ではLinux ではなく、MSYS2を使う。
理由は、初心者がLinuxの勉強するのを避けるため

そこで、日本語でバグらないように一計を案じたのが、
irb ではなく、VSCode の拡張機能・Code Runner を使う方法

本当はRails のローカル開発なら、
WSL2, Linux, Docker Desktop, Windows Terminal を使う。
YouTube のDeanin の動画を参照

これは、ハイパーバイザーでLinuxも起動するから、
メモリ8GB ぐらいのパソコンでもキツイ
638デフォルトの名無しさん (ワッチョイ fb66-oEU1)
2023/03/07(火) 20:50:01.17ID:PDMeVJPD0
シェア大きいデスクトップOSから小さいOSに行っても仕方がない。
個人のスクリプトなんて殆どはデスクトップのちょっとした自動化やツール作成に過ぎんしWebでもRubyは落ちていくだけなんだから。

プログラミング言語やそのライブラリが不出来なのが原因で
自分のOS乗り換えるとか馬鹿げすぎてる。
殆どの人にとって本末転倒。
639デフォルトの名無しさん (ワッチョイ eb01-oEU1)
2023/03/07(火) 21:18:43.59ID:uRhwCRx20
 皆さん本当にありがとうございます!なんかよく分からないけど解決しましたわ!

 変えたのは新しいユーザー名でローカルアカウントを管理者で追加しただけっす。
まさかこれだけが原因だとは思ってもいなかった、名前変えただけで解決するとは。
数日のモヤモヤが消し飛んだ!よく眠れそう!!
これでどういうアプリケーション作ろうか考えながら日々を過ごせるデュフフ!
助かった!!!


Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚
640デフォルトの名無しさん (ワッチョイ 6984-iJGe)
2023/03/07(火) 21:45:18.69ID:vk4APYnr0
>>638
それは違うな
WindowsのOS自体が不出来なのが原因
641デフォルトの名無しさん (ワッチョイ 5310-AVBr)
2023/03/07(火) 22:39:47.28ID:msqWHE5U0
不出来なんて書くから荒れる
PythonやUnityと違って元々Windows想定してないだけで
無理やりポーティングした連中が周辺含めて面倒みきれてないのが悪い
642614 (アウアウウー Sa1d-3zFX)
2023/03/07(火) 22:44:38.18ID:uM/T9lOBa
黒田努の3冊が分かりやすい

改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9
Ruby 2.5.1, Rails 5.2 の本

Ruby on Rails 6 実践ガイド、黒田努、2019/12
Ruby on Rails 6 実践ガイド[機能拡張編]、黒田努、2020/5

基礎 Ruby on Rails を読んだら、
確か、Rails チュートリアルのRails 5 なら無料で見れる

昔は皆、Cloud 9, Heroku で作っていたけど、
Herokuの無料枠が無くなったのか?

YouTube で有名な雑食系エンジニア・KENTA の初心者向けRailsサロンなら、月千円。
他には、Rails専業のRUNTEQ、東京フリーランスのデイトラなど

MSYS2 では、またデータベースでバグったりする。
基本的に、CP932 で動くようなモジュールは無い。
CP932の事を知っている外人は、どこにもいない!
643デフォルトの名無しさん (アウアウウー Sa1d-IOBr)
2023/03/07(火) 23:30:51.04ID:ezUrq35ga
WindowsとUnix互換の違いを理解していないと
RubyをWindowsで使った際に発生するトラブルに対処するのは難しい
それだけよ
644デフォルトの名無しさん (ブーイモ MM33-YseW)
2023/03/08(水) 01:55:42.14ID:qj+ABtmuM
>>641
Pythonが元々Windows想定してる?
ご冗談を
645デフォルトの名無しさん (ワッチョイ 6984-iJGe)
2023/03/08(水) 03:21:16.01ID:nSIfG2D90
とにかく、WindowsでWSL以外のUnix系環境は、一切入れないぐらい決め込んで、Windowsと付き合うぐらいのほうがいい
WSL以外に、CygwinとかMSYSとか入れるべきでない
(もちろん、分かっているならば、共存できるが、無駄以外の何ものでもない)

>>641
それを言うなら、Pythonもひどい
646デフォルトの名無しさん (ブーイモ MM33-QoLb)
2023/03/08(水) 07:16:52.80ID:USFtIbBoM
WSLあるし今はあんま流行ってないけどvirtualboxでvagrant環境とかね
そういえばVagrantfileはrubyで書かれてたんだっけ
647デフォルトの名無しさん (アウアウエー Sae3-4fLd)
2023/03/09(木) 14:33:04.41ID:lc0skjdva
>>637
シレっと嘘を描くな
おまえ KENYA 信者か本人だろ
648デフォルトの名無しさん (ワッチョイ a110-epgM)
2023/03/21(火) 08:40:41.77ID:HajkMPAQ0
Windows版ではじめたんですがirbのヘルプ機能やriで反応がなくなって困ってます
確実に再現できる手順はこんな感じ

1. irb を起動して Stri まで打ってタブ補完
2. ドキュメントの先頭が表示されたら Alt+d で全体表示
3. ヘルプのページャーを抜ける(lessを使ってるのでqを入力)
4. 画面がページャーから戻るがキーへの反応なし

ヘルプを活用したいのですが付き合い方を教えてください
649デフォルトの名無しさん (ワッチョイ c95f-ab+x)
2023/03/21(火) 18:26:48.47ID:C2q9ydgP0
#include <ruby.h>したプログラムでfcloseを呼び出したらrb_w32_fcloseという関数が呼び出されてその中でエラーになる現象に出くわした
rb_w32_fcloseでぐぐったらずばりruby.hから#includeされているwin32/win32.h中で「#define fclose(f) rb_w32_fclose(f)」されているのが原因と解説しているサイトがあった

しかしこの解説は14年前の記事だよ!?ruby 3.2.1でもこの#defineが残っていて同じ問題が起きるよ!?
標準ライブラリ関数であるfcloseを#defineするなどという行儀の悪いことをしたばかりか3.2.1でもまだ直っていないとはどういうことであろう
650デフォルトの名無しさん (ワッチョイ c95f-ab+x)
2023/03/21(火) 18:33:52.65ID:C2q9ydgP0
>>648
vcpkgでビルド(vcpkg rubyでぐぐって最初に出て来るページの方法)したRuby 3.2.1のirbだと再現しなかった
インストール方法とバージョンを書いた方が答えが来るかも
651デフォルトの名無しさん (ワッチョイ a110-epgM)
2023/03/21(火) 21:33:33.03ID:HajkMPAQ0
ありがとう。
rubyinstaller-3.2.1-1-x64.7z を C:\Ruby32-x64 に展開して
C:\Ruby32-x64\bin にパスを通しました。
ruby 3.2.1 (2023-02-08 revision 31819e82c8) [x64-mingw-ucrt] を
Windows11 上の Windows ターミナル バージョン: 1.16.10262.0 で使ってます。

確実に再現するわけではないようで、ページャーから戻って反応したら
バックスペースで Stri に戻してタブ補完、Alt+d を何度か繰り返すと発現します。
652デフォルトの名無しさん (ササクッテロラ Sp9d-2rW7)
2023/03/21(火) 21:56:12.11ID:j1wCLUw7p
スクールでRubyやってるんだが仕事でc#やれることになって辛すぎる
653デフォルトの名無しさん (ワッチョイ c95f-aodc)
2023/03/21(火) 22:00:08.53ID:lol8+tHB0
>>651
mingwやなくてVCビルドと書いてんのに試さないんだ?
Win連携するならしゃーないけど
そうでないならWSL2で動かすのがまちがいないよ
654デフォルトの名無しさん (ワッチョイ a110-epgM)
2023/03/21(火) 22:39:27.58ID:HajkMPAQ0
発現したりしなかったりってのが気になったので
思い付きでaffinityを指定して使うコアを1個だけ指定したら発現しなくなりました。
めんどくさいんでもうこれで解決ってことで
655デフォルトの名無しさん (ワッチョイ c95f-ab+x)
2023/03/21(火) 23:09:01.49ID:C2q9ydgP0
vcpkgとは別にrubyinstaller-3.2.1-1-x64.7zを解凍したやつあるからちょっと試してみた
Windows10だしWindowsターミナル入ってないからpowershellでやってみたけど再現しないな
656614 (アウアウウー Sa95-jnF6)
2023/03/21(火) 23:50:54.71ID:0fmXlD4Ba
>>637
に書いたように、MSYS2/MinGW, irb はダメ!
データベースや日本語でバグル

書き忘れたけど、WSL2, Linux では、
日本人が作った多言語バージョンマネージャーのanyenv がお勧め。
同様のツールに、asdf もある

対応言語
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv
657デフォルトの名無しさん (ワッチョイ d2bd-+msU)
2023/03/26(日) 05:01:39.43ID:OlOn0nrS0
言語開発って続いてるの?
教科書でもPython でしょ
国が採択しない言語開発してどうするの?
負けを認めろよ
658デフォルトの名無しさん (ワッチョイ aebb-vk7m)
2023/03/26(日) 15:33:29.61ID:kD3idY+R0
Rubyはほんと、教材商法・スクール商法で見るだけのものになっちまった
659デフォルトの名無しさん (ワッチョイ dd5f-2p+o)
2023/03/26(日) 15:41:43.95ID:7zNZ7K4O0
Rails以外にも案外Ruby製のツールがあって
依存してるところまだまだ多いと思うよ
個人的にはまったく困らないけど
660デフォルトの名無しさん (アウアウウー Saa5-jS6D)
2023/03/26(日) 23:47:43.21ID:84pulk9Sa
HiPro Tech 2022 によると、

バックエンドエンジニア : 80万円
Ruby : 90
Python, Go : 85

レガシー
C#.NET, ASP.NET, Java : 80
C : 70
661デフォルトの名無しさん (ブーイモ MMb6-8ZL+)
2023/03/27(月) 06:46:21.42ID:Zms4zMZFM
自分のいる会社だとJava(とかKotlinでAndroid)案件は50人規模とかあるけどRuby/Rails案件は4,5人規模が多い
個人的には圧倒的にRubyが好きだけど
662デフォルトの名無しさん (ワッチョイ 4910-uhGV)
2023/03/28(火) 23:20:14.76ID:TltQQt7h0
irbでAlt+dのフルヘルプ表示の後で固まる件だけど
第12世代のCore i7そのまま(論理CPU20個)だとそこそこ起こる
Start-Process 'ruby' '-S irb' -NoNewWindow -Wait -PassThru | % { $_.ProcessorAffinity = 1 }
とかして論理CPU1個に指定すると起きない
古い第3世代のCore i7そのまま(論理CPU8個)だと起きない
微妙な競合が起きてる雰囲気だけどRubyを信じて使っていいのか不安になってきた
663デフォルトの名無しさん (ワッチョイ a9b1-VgrF)
2023/04/12(水) 23:29:31.69ID:CI3e3lhQ0
この前久しぶりに覗いてみたんだけどRubyがミニツクって死んだの?
664デフォルトの名無しさん (ワッチョイ 41f0-yO2X)
2023/04/13(木) 11:58:31.89ID:mRtRmWEi0
BFFアーキテクチャ嫌い
665614 (アウアウウー Sa05-cPl8)
2023/04/13(木) 13:37:33.70ID:locxrLlCa
PowerShell のStart-Process の事?

>>637
に書いたように、MSYS2/MinGW, irb はダメ!
データベースや日本語でバグル
666デフォルトの名無しさん (ワッチョイ 41f0-yO2X)
2023/04/13(木) 15:27:38.87ID:mRtRmWEi0
Dockerでいいだろ
667デフォルトの名無しさん (ワッチョイ bd5f-JuRI)
2023/04/13(木) 15:35:08.69ID:EltVqAhD0
ターゲットがLinuxやなくホストOSだったら?
Webアプリ化できる範囲ならいいけど
668デフォルトの名無しさん (アウアウウー Sac3-ixN4)
2023/05/07(日) 20:19:34.43ID:QZNbJigga
最大値が複数ある場合に、該当する全てのインデックスを取り出すには、どうする?
漏れのやり方は、

ary = [ 5, 4, 5 ]
p max = ary.max #=> 5

p result = ary.each_with_index.select { |num, idx| num == max }.
map { |ary| ary[ 1 ] }

#=> [0, 2]
669デフォルトの名無しさん (ブーイモ MM27-ahoE)
2023/05/21(日) 22:49:59.52ID:ZMxA9gJ3M
fedoraです

libruby.so.3.1 に依存してて
require open-uri
が失敗するようです。
3.2では動くようになりませんでしょうか?
670デフォルトの名無しさん (ワッチョイ 6f5f-kgJw)
2023/05/22(月) 15:32:59.23ID:sAlsu4+P0
環境隠すしエラーそのまま貼らないからエスパー必至
自前ならビルドに失敗してる
解決できないならDockerコンテナ使ったほうがいい
671デフォルトの名無しさん (ブーイモ MM7f-kzDK)
2023/05/28(日) 05:56:00.24ID:Ie6k1/AyM
最近は出来るだけRubyは使わない方向としてる。理由は依存関係が複雑過ぎるからトラブル時に解決が困難なこと。texliveみたいなのあってもいいんじゃない?
マイナーなので症状でググっても、最近はヒットしないケースが殆んど。

既存でやむを得ないもの以外、外せるものは少しづつ外しているのが実情。
672デフォルトの名無しさん (アウアウウー Sa8f-AKtI)
2023/05/30(火) 05:23:38.77ID:hG6L19Sqa
そもそも、libruby.so.3.1 で、Ruby 3.2 が動くの?
バージョンが違うのに

漏れは、Windows 10, WSL2, Ubuntu 18.04 で、
日本人が作った、多言語バージョンマネージャーのanyenv で、
ruby, node.js を入れているけど、同様のツールに、asdf もある。
anyenvでは、nodenv, pyenv, rbenv などを使う

他には、Docker を使う

君は、どのバージョンマネージャーを使っている?

そもそも、fedora は素人向きじゃない。
テスト環境用。まともに動かないだろ

Ubuntuの安定版、20.04/22.04 を使いな。
あまり新しいのにすると、各モジュールが動かないかも
673デフォルトの名無しさん (ブーイモ MMb9-fG05)
2023/06/09(金) 20:19:39.14ID:2LAkUH9UM
どっちも so.3 にシンボリックリンクされてるな
674デフォルトの名無しさん (ワッチョイ cf05-IPSQ)
2023/08/01(火) 17:59:14.06ID:gmCvkwam0
独学の初心者です
どのクラスでも使う汎用的なメソッドを作りたいんですが
こういう時ってクラス外で定義して関数にするのか
それともモジュールにするのとどちらが良いのでしょうか?
というかモジュールの使い処がいまいち理解できていません
675デフォルトの名無しさん (アウアウウー Sa1f-dFKk)
2023/08/01(火) 19:15:09.38ID:0t0I81Pra
理想的にはMathやFileUtilsを参考にmodule_function

クラス名を名前空間的に使ったクラスメソッドなんかも悪くはない
676デフォルトの名無しさん (アウアウウー Sa1f-IPSQ)
2023/08/02(水) 09:23:39.40ID:4pI1Wfnva
mix-in
677デフォルトの名無しさん (ワッチョイ cf05-IPSQ)
2023/08/03(木) 00:48:30.43ID:xJtx41VE0
ありがとうございます
どちらも試しましたが取りあえずmix-inの方でやっていく事にしました
678デフォルトの名無しさん (ワッチョイ e348-7tt+)
2023/09/02(土) 00:26:36.73ID:z/gB7JNN0
rubyで、あるファイルのファイル名を取得したいとき、
そのファイル名がUTF-8-MACの場合どうすればいいですか?
679デフォルトの名無しさん (ワッチョイ b35f-3GEm)
2023/09/02(土) 09:19:28.34ID:B59+Sgxx0
脳内ではつながってるんだろうけど質問になってない
680デフォルトの名無しさん (アウアウウー Sae7-fXI3)
2023/09/02(土) 14:46:55.42ID:mCX3wjBNa
どうもしなくて良いのでは
681デフォルトの名無しさん (アウアウウー Sae7-w3JM)
2023/09/03(日) 01:52:14.83ID:wudKI+s6a
「ruby UTF-8-MAC」で検索!

Macのファイル名に使われる、NFDなUTF-8(通称UTF-8-MAC)を、通常のUTF-8に変換する。
UTF8-MAC、アップルによって修正された、
Normalization Form D(NFD・分解済み)という形式のUTF-8です。
濁音や半濁音が2文字扱いになる

String#encode を使って

filename_utf_8 = filename_utf_8_mac.encode(Encoding::UTF_8, Encoding::UTF8_MAC)
682デフォルトの名無しさん (ワッチョイ a37d-+GqY)
2023/09/03(日) 04:30:11.51ID:viellF9f0
MAC からその他の環境であれば String#unicode_normalize() で NFC に変換しても良いでしょうけど
MAC から MAC であればそのまま何もしない方が良いと思う
683デフォルトの名無しさん (ワッチョイ dee6-dtHc)
2023/09/23(土) 00:31:38.96ID:aQUNS12d0
rubyでOCRAを使って感動していましたが、
最近はOCRAでもエラーばかりです。

exe化の良い方法を教えてください。(教えて君ではなくおじいさんになってしまった。)
684デフォルトの名無しさん (ワッチョイ 6384-O3vA)
2023/09/23(土) 00:54:25.92ID:1rf3sz5t0
>>683
Neriでも使えばよいのでは?
685デフォルトの名無しさん (ワッチョイ 6de6-lHjV)
2023/10/09(月) 08:07:49.09ID:2tIVtmSa0
Rubyって面白そうなのに
日経ソフトウェアで一度も特集されませんね。
686デフォルトの名無しさん (ワッチョイ 6de6-lHjV)
2023/10/09(月) 08:09:27.02ID:2tIVtmSa0
今からRubyを勉強するぞ・・・
止めるなら今のうちだ。

それとも負けずに教えてください。
目標は欲しいツールを自分で作れるようになることです。
687デフォルトの名無しさん (ワッチョイ 6de6-lHjV)
2023/10/09(月) 08:11:52.40ID:2tIVtmSa0
たのしいRubyと独習Rubyを購入

5chのこれ、アクセスできなかった。
>>Rubyist Magazine - るびま
>>http://jp.rubyist.net/magazine/
正しくは、これかな、「https://magazine.rubyist.net/
688デフォルトの名無しさん (ワッチョイ 0a7a-lHjV)
2023/10/09(月) 10:53:42.22ID:5XBl3KCR0
>>686
ええやん!
応援するよ
689デフォルトの名無しさん (ワッチョイ 0a7a-lHjV)
2023/10/09(月) 11:15:26.24ID:5XBl3KCR0
しかしこのスレではあまり話もできないわ
なんせエロCMで気が散ってしまうものw
690デフォルトの名無しさん (ワッチョイ 6de6-lHjV)
2023/10/09(月) 12:12:55.62ID:2tIVtmSa0
>>688
ありがとう。

とりあえず、ひたすらコードを入力してみます。
よいサイトや書籍があったら教えてください。
691デフォルトの名無しさん (ワッチョイ 5ada-STj1)
2023/10/10(火) 05:48:38.93ID:1udEdqxq0
日経ソフトウェアは、ホビーっぽい

Ruby, Java はバックエンド技術者だから、プロや転職情報。
Linux, AWS を使う。
Ruby on Rails は、モダンなスタートアップ企業でフルリモート

一方、Javaは、SIer で客先、インターネット禁止。
中抜き・多重請負構造の土方。
家電量販店のバイトまでさせられる、イメージ

たのしいRuby・独習Rubyの次は、マネーフォワードの逆引きを読めばよい。
改訂2版 パーフェクトRubyもある

それ以降は、Railsになる。
筑波大学も使っている、Railsチュートリアル日本語版の古いRails 5 なら、無料で読める

これをスラスラ読むために、有名YouTuber が習得技術ロードマップを作っている。
雑食系エンジニア・KENTA とか、Rails専門学校・RUNTEQ の菊本とか。
Deanin はRailsの第一人者

最初はファイル・文字列処理と、
プログラミングのお題みたいな、ちょっとしたパズルを解くのが良い

Enumerable のメソッドは、よく見ておいた方が良い。
パズルに使えるから
692デフォルトの名無しさん (ワッチョイ 5ada-STj1)
2023/10/10(火) 05:49:02.13ID:1udEdqxq0
日経ソフトウェアは、ホビーっぽい

Ruby, Java はバックエンド技術者だから、プロや転職情報。
Linux, AWS を使う。
Ruby on Rails は、モダンなスタートアップ企業でフルリモート

一方、Javaは、SIer で客先、インターネット禁止。
中抜き・多重請負構造の土方。
家電量販店のバイトまでさせられる、イメージ

たのしいRuby・独習Rubyの次は、マネーフォワードの逆引きを読めばよい。
改訂2版 パーフェクトRubyもある

それ以降は、Railsになる。
筑波大学も使っている、Railsチュートリアル日本語版の古いRails 5 なら、無料で読める

これをスラスラ読むために、有名YouTuber が習得技術ロードマップを作っている。
雑食系エンジニア・KENTA とか、Rails専門学校・RUNTEQ の菊本とか。
Deanin はRailsの第一人者

最初はファイル・文字列処理と、
プログラミングのお題みたいな、ちょっとしたパズルを解くのが良い

Enumerable のメソッドは、よく見ておいた方が良い。
パズルに使えるから
693691 (ワッチョイ 5ada-STj1)
2023/10/10(火) 05:55:23.51ID:1udEdqxq0
05:48:38.93
05:49:02.13

1クリックで2回も書き込んで、23秒もずれるなんて、
サーバー時間が狂いすぎ。めちゃめちゃ
694デフォルトの名無しさん (ワッチョイ b671-lHjV)
2023/10/10(火) 07:23:24.95ID:BDsbHemP0
>>690
ワイはRubyでスレ読みすることにしたわ
695691 (ワッチョイ 09fd-STj1)
2023/10/10(火) 13:14:18.71ID:tBEWn+zw0
データを取得してから、

ERB で、<% ~ %>, <%= ~ %> を使って、
または、Nokogiri を使って、HTML を作るとか、

Selenium Webdriver で、ブラウザを自動操作するなども出来る
696デフォルトの名無しさん (JP 0H66-HrfX)
2023/11/23(木) 14:41:35.50ID:3EANAdRCH
プログラミング入門にピッタリなビジュアル言語「Pickcode」が登場
https://gigazine.net/news/20231122-pickcode/

PickRubyを作って利用者を増やそう
697デフォルトの名無しさん (ワッチョイ 87da-zwhO)
2024/01/23(火) 06:17:44.25ID:bl4lyV110
まっつん意外と趣味いいな
特にCAにはかなりこだわりがあるようだ

女性セレクト指示書

・松本の要望
ユニクロ
マクドナルド
スタバ店員
中学高校教師
弁護士
広報女性
人妻(子供なし)
CA(ANA、JAL)

・松本のNG
茶髪
モデル
飲み屋
美容師
アパレル
CA(LCC)
698デフォルトの名無しさん (ワッチョイ ff13-MO48)
2024/02/04(日) 01:31:48.29ID:yc8BToGx0
The Odin Project
https://www.theodinproject.com

High quality coding education maintained by an open source community.

ウェブ開発者用で、無料のRuby on Rails, React コースなどもあるけど、これらはどうでしょう?
699デフォルトの名無しさん (ワッチョイ 65cb-0PBQ)
2024/03/31(日) 10:31:26.61ID:WiLTOmZx0
Rubyって海外でもオワコンの雰囲気なのか
https://opers-kaigaihanno.com/post-323/

結局、Railsしかヒットしなかった言語って感じ
700デフォルトの名無しさん (ワッチョイ 6531-snun)
2024/04/01(月) 16:21:53.67ID:K9bDc1jK0
ツール類で使われてたりする
最近のはPython/JS/Go/Rust製が大半だけども
701デフォルトの名無しさん (ワッチョイ 0d52-3Rlo)
2024/04/02(火) 18:22:15.63ID:X7j2yPVL0
インフラ系のツールは一昔前はRuby製多かったよね
最近ではその辺はみんなからGoかRustに行っちゃって絶滅危惧種だけど
702デフォルトの名無しさん (ワッチョイ 656c-0PBQ)
2024/04/03(水) 15:58:20.98ID:eNgZCM350
RubyはWeb開発だとしばらくは使われると思うけど、そのうち消えていくんだろうなあ。
Pythonの文法はあまり好きではないけど、一度主流になるとなかなかなくならない。
703デフォルトの名無しさん (ワッチョイ 0db7-uvhZ)
2024/04/05(金) 00:26:53.75ID:zfuNjquS0
The Ruby on Rails Resurgence - DevOps.com
BY: JIM REMSIK ON APRIL 2, 2024
https://devops.com/the-ruby-on-rails-resurgence/
704デフォルトの名無しさん (JP 0H8f-cRB4)
2024/04/18(木) 12:30:57.95ID:ZlKVVvZaH
a=",,,,".split(".")

a=",,,, ".split(".")

a[0]が違うのがやりにくい
705デフォルトの名無しさん (ワッチョイ 578b-EG7K)
2024/04/18(木) 14:22:14.91ID:KvlRtiX30
https://docs.ruby-lang.org/ja/latest/method/String/i/split.html
limit == 0 分割個数制限はなしで、配列末尾の空文字列を取り除く
limit < 0 分割個数の制限はなし

アホな仕様やな
706デフォルトの名無しさん (ワッチョイ 7701-ynB1)
2024/04/18(木) 14:38:53.85ID:+9RZR0TW0
>>704
違う文字列だしsplitされないんだから結果も違って当然では?
707デフォルトの名無しさん (ワッチョイ 093a-hIEc)
2024/08/17(土) 08:14:57.02ID:9Uz9N2V10
誰か、以下の間違いを文書係に伝えてください!
漏れは、やり方がわからないので

class CSV::Row - Ruby 3.3
https://docs.ruby-lang.org/ja/latest/class/CSV=3a=3aRow.html

field, delete の引数は、
header_or_index, minimum_index = 0
なのに、

self[header_or_index] = value
self[header, offset] = value
の引数は、なぜ2つに分けたのか?

self[header_or_index, minimum_index = 0] = value
と書けば良かったのでは?

それと、
self[header, offset] = value
のコード例が、
self[header_or_index] = value
の所に書いてあるのも間違い

それと、
fields(*headers_and_or_indices) -> Array
push(*args) -> self
のコード例に、Copy ボタンが無い
708デフォルトの名無しさん (ワッチョイ c195-Xp5Y)
2024/08/17(土) 11:44:54.96ID:xfy35KhQ0
>>707
https://github.com/rurema/doctree/wiki/HowToContribute
709707 (ワッチョイ 1fba-CjR1)
2024/08/20(火) 03:22:49.15ID:c93yCXJ/0
fields(*headers_and_or_indices) -> Array
values_at(*headers_and_or_indices) -> Array
与えられた引数に対応する値の、配列を返します。

要素の探索に、CSV::Row.field を使用しています。

[PARAM] headers_and_or_indices:
ヘッダの名前かインデックスか、Range のインスタンスか、
第 1 要素がヘッダの名前で、第 2 要素がオフセットになっている、
2 要素の配列をいくつでも指定します。
混在することができます。
[RETURN]
引数を与えなかった場合は、全ての要素を返します。

これも、オフセットを指定した場合は、
このインデックスより後で、ヘッダの名前を探します。
重複しているヘッダがある場合に便利です。
みたいに書くべきでは?

require "csv"

csv = CSV.new( "a,b,a,a\n1,2,3,4", headers: true )
table = csv.read
row_3 = table.first
p row_3.values_at( ["a", 3], "a", 1, ["a", 1], 3..4 )
# => ["4", "1", "2", "3", "4", nil]

>>708
誰か、漏れの代わりに文書係に伝えてください!
710デフォルトの名無しさん (ワッチョイ 7f17-b/nf)
2024/08/24(土) 07:53:23.51ID:Jdsx7bDK0
コードのドキュメントを作るとき選択肢はRDocかYRADだけど、
どっちもデザインがいけてないしそもそも見づらくない?
YARDはテンプレートで変えられるみたいだけど公開されてるのが全然見つからないし
何とかならんのか
711デフォルトの名無しさん (ワッチョイ 82f6-EMgm)
2024/08/30(金) 15:15:25.99ID:bL2sRbri0
漏れは、YARD を使っている

RDoc は古いから
712デフォルトの名無しさん (ワッチョイ c67f-zLmf)
2024/09/24(火) 00:09:46.32ID:GmU0hAi20
perlは作り直したからダメになったんじゃねーよw
自然言語の性質をより多く取り込もうとしてパンクしたんだよ
メクラ
713デフォルトの名無しさん (アウアウエー Sa3f-mL/d)
2024/10/16(水) 16:27:37.73ID:KmdrWIoqa
Ruby の仕様に、破壊的な変更が、2.0 以降、入っていないのは、
Python・Perlの言語開発者による独善的な?変更での失敗に学んで
いる から、だと思います。)

https://qiita.com/asip2k25/items/729d3426c1efa802f336
714デフォルトの名無しさん (ワッチョイ 4f3b-C5qv)
2024/10/16(水) 18:15:17.46ID:Ied0HKdA0
噛み合って無いね
わかってないだろうけど
715デフォルトの名無しさん (ワッチョイ 9f8c-lB4s)
2024/10/16(水) 19:22:38.15ID:c9nG6uvq0
何かをオワコンって言う奴は10年前の知識で話していて最新情報を追ってないのは確か
今までの経験では100%そうで、追ってる人や俺が話すと驚くかむすっと黙る
716デフォルトの名無しさん (ワッチョイ 8bda-KVDU)
2024/10/17(木) 01:03:41.63ID:WrCN832N0
>>713
それを言うならRuby1.8 -> Ruby1.9の時に互換性ぶっ壊す言語仕様の変更した闇歴史を反省したんでしょ。

前向きに捉えるなら、Maz氏がこの時の変更で満足した。
717デフォルトの名無しさん (ワッチョイ 4f92-C5qv)
2024/10/17(木) 14:45:08.02ID:jj0dHZW60
>>715
浅さ優先で喋るからな
ITエンジニアは
文化なら仕方あるまい
718デフォルトの名無しさん (ワッチョイ fbb4-8XhU)
2024/10/17(木) 14:51:09.32ID:Bk2Ct1mh0
>>717
計算機科学(computer science)相当の博士課程を修了していないITエンジニアは論外
そんなITエンジニアとやりとりや取引なんかやるだけ無駄
719デフォルトの名無しさん (ワッチョイ 4fb2-C5qv)
2024/10/18(金) 11:48:33.77ID:HiJ5KVmO0
ITエンジニアが文化面語る時はかなり眉唾ではある
720デフォルトの名無しさん (スフッ Sdbf-l2+s)
2024/10/18(金) 21:19:11.55ID:jHxEOeuid
今年が2024年だということも判らなくなった痴呆老人なんだろう
721デフォルトの名無しさん (ワッチョイ 8bda-KVDU)
2024/10/18(金) 22:15:03.40ID:VQpP6XIE0
計算機科学とかは詳しくないが、そういう意味じゃRuby技術者認定試験とか暗記中心であれ持っててもプログラマーとして優秀とは言えないんだよなぁ。
言語仕様オタクを欲しいわけじゃないんだっての。

まだ基本情報技術者試験の方がプログラミング能力を測ってる。
722デフォルトの名無しさん (アウアウエー Sa3f-mL/d)
2024/10/19(土) 05:06:07.35ID:pGZZ/Z6Da
応用は?
723デフォルトの名無しさん (ワッチョイ 2101-mxqR)
2024/10/23(水) 21:40:40.15ID:eLjuv7c90
文系は応用のほうが受かる
724デフォルトの名無しさん (ワッチョイ 13de-0KS1)
2024/10/28(月) 00:35:24.93ID:7/XJVIz/0
>>716
奇数バージョンはちょっと……

lud20250118104347
このスレへの固定リンク: http://5chb.net/r/tech/1608837867/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚 」を見た人も見ています:
Ruby 初心者スレッド Part 66
Ruby 初心者スレッド Part 63
Ruby 初心者スレッド Part 64
Ruby 初心者スレッド Part 60
Ruby 初心者スレッド Part 61
超 超 初心者スレッド
アセンブラ初心者スレッド 2
Hackintosh初心者スレッド
MacOSX86初心者スレッド Part6
MacOSX86初心者スレッド Part6
【信長の野望Online】初心者スレッド59
★模型塗装初心者スレッド88 ガンプラからスケールまで★
[PUBG] PLAYERUNKNOWN'S BATTLEGROUNDS 初心者スレ7
[PUBG] PLAYERUNKNOWN'S BATTLEGROUNDS初心者スレ16
Youtube超初心者スレ質問大歓迎スレ&本田圭佑も応援するスレ
Lenovo ZUK シリーズ 初心者スレ Part.4
サマナーズウォー: Sky Arena☆初心者スレ14 &copy;2ch.net
【Switch】大乱闘スマッシュブラザーズ SPECIAL 初心者スレ24 【質問/雑談】
【Switch】大乱闘スマッシュブラザーズ SPECIAL 初心者スレ10【質問/雑談】
【Switch】大乱闘スマッシュブラザーズ SPECIAL 初心者スレ5 【質問/雑談】
Elona初心者質問スレッド その103
Elona初心者質問スレッド その111
Blender 初心者質問スレッド Part30
Blender 初心者質問スレッド Part36
Blender 初心者質問スレッド Part42
ヤフオク初心者質問スレッド #826
Blender 初心者質問スレッド Part31
Blender 初心者質問スレッド Part32
Blender 初心者質問スレッド Part25
Blender 初心者質問スレッド Part52
Blender 初心者質問スレッド Part29
Blender 初心者質問スレッド Part29
【投資一般板】 初心者質問スレッド Part48
初心者もOK! FreeBSD質問スレッド その122
パソコン初心者総合質問スレッド Part2048
Blender 初心者質問スレッド Part32(ワッチョイ有)
パソコン初心者総合質問スレッド Part2056
★☆時計板の初心者総合質問スレッド Part83★
バイク初心者のためのバイク購入相談スレッド 6
バイク初心者のためのバイク購入相談スレッド 10
【UE4】Unreal Engine 4 初心者質問スレッド part3
★☆時計板の初心者総合質問スレッド Part93(修正)
【UE4】Unreal Engine 4 初心者質問スレッド part6
【PC】 ドラゴンクエスト モンスターパレード 初心者・無課金者・質問スレッド Part1
Cubaseシリーズ 初心者質問スレ Part21
FX初心者スレ(退避所)
初心者スレ立て練習
鉄拳初心者スレ 79
FX初心者スレ 207pips
FX初心者スレ 414pips
FX初心者スレ 383pips
FX初心者スレ Part94
POPダンス初心者スレ
冬山初心者スレ その76
FX初心者スレ 312pips
FX初心者スレ 380pips
FX初心者スレ 307pips
FX初心者スレ 310pips
FX初心者スレ 214pips
FX初心者スレ 240pips
FX初心者スレ Part117
FX初心者スレ Part133
FX初心者スレ 195pips
FX初心者スレ 202pips
FX初心者スレ Part138
FX初心者スレ 161pips
14:04:53 up 51 days, 15:03, 0 users, load average: 7.19, 7.42, 7.68

in 1.0540149211884 sec @1.0540149211884@0b7 on 060803