プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 66
https://mevius.5ch.net/test/read.cgi/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
Ruby 初心者スレッド Part 67
1デフォルトの名無しさん (ワッチョイ b72c-yePO)
2020/12/25(金) 04:24:27.68ID:aa9Khe9z0128デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/23(金) 20:21:10.93ID:v3P9E6mR0 >>127
jsonをパースして変数に入れてbidが持つ値を出力したいのですがnilが返ってきます
jsonをパースして変数に入れてbidが持つ値を出力したいのですがnilが返ってきます
129デフォルトの名無しさん (ワッチョイ 6333-gjMA)
2021/04/23(金) 20:36:39.90ID:7NT1P8pu0130デフォルトの名無しさん (ワッチョイ 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について理解しました。重ねてありがとうございました。
大変申し訳ありません。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")
{"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")
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:+DYpagDZ0138デフォルトの名無しさん (ワッチョイ 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:M6swdTrH0141デフォルトの名無しさん (ワッチョイ 972c-1bRV)
2021/04/25(日) 13:55:29.69ID:oFpMkyEJ0 初心者は、dot install, progate などをやれば?
142デフォルトの名無しさん (ワッチョイ b206-rqav)
2021/04/25(日) 15:44:12.74ID:EAdTvuiP0143デフォルトの名無しさん (オッペケ Sr72-R0M4)
2021/04/25(日) 15:53:02.64ID:I4PgyU7Gr マニュアル読めと言うのは初心者には酷か?
https://docs.ruby-lang.org/ja/latest/doc/index.html
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 じゃないの?
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を使用して作成したいのですが、どのようにすればよいでしょうか?
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:oFpMkyEJ0147デフォルトの名無しさん (ワッチョイ 6333-gjMA)
2021/04/25(日) 18:37:11.77ID:nrx375qK0 >>145
「オンライン」とは?サーバーでということか?Windows?
Excelはxlsx?csvなら難しくはないが。。。
など、あぶなっかしいところが多すぎ。
初心者がやるにはたいへんやな。w
やめといたら?
「オンライン」とは?サーバーでということか?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/"]
入出力の部分は、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
次へ続く
文字列を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
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
}
: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:RYaLTPlL0154デフォルトの名無しさん (オッペケ Sr72-R0M4)
2021/04/26(月) 23:31:12.51ID:rfpJ92nWr >>153
おう、がんばれ
おう、がんばれ
155デフォルトの名無しさん (ワッチョイ 6333-gjMA)
2021/04/27(火) 00:08:05.54ID:6stPm5Ss0156デフォルトの名無しさん
2021/04/27(火) 16:05:13.93157デフォルトの名無しさん
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 } }
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化したいなら微妙
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
キャッシュなしフロッピーディスク💾を使ってるのかな?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倍弱の差が出ました。
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]です
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'は既にバックスペースに使われていた。
> ベル文字は、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言語由来のエスケープシーケンス
バックスラッシュ記法で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:acqsmkid0170デフォルトの名無しさん (ワッチョイ 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 ...")
みたいな形で呼び出します
まとレスにて失礼します
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"'
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
すごく短くまとまってるから、一度公式のリファレンス読んだ方がいいよ
https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#string
173デフォルトの名無しさん (ワッチョイ dbb7-08Bm)
2021/06/02(水) 20:29:52.62ID:92rWXivp0174デフォルトの名無しさん (ワッチョイ 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のダウンロードが上手くいかず色々見ながらやってきたので余計な事をしてしまったのではないかと心配です
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:peqY6uPj0176デフォルトの名無しさん (ワッチョイ 8961-szig)
2021/06/05(土) 14:54:45.98ID:uC9Joojh0 Rubyで、syntax error 的なものが生じていても、そのまま実行が続けられている
ように見える現象が時々起きる。
これは何が起きている?
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>'
と出るが、そのまま実行が続けられてしまう。
例えば、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:B1fTG1Q6r181デフォルトの名無しさん (ワッチョイ 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:1amPE6il0184デフォルトの名無しさん (オッペケ Sred-1bbd)
2021/06/06(日) 17:44:51.53ID:B1fTG1Q6r そうであれば我々にはわかりえない。
まあどっかでrequireをオーバーライドしてるとかじゃないの。
まあどっかでrequireをオーバーライドしてるとかじゃないの。
185デフォルトの名無しさん (ワッチョイ 8961-szig)
2021/06/06(日) 18:17:08.76ID:1amPE6il0186デフォルトの名無しさん (ワッチョイ 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つを使える
コマンドプロンプトでも普通に、/ を使える。
これで実行できる
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に飛ばずに死ぬの何なの?
Ctrl-C押した時at_exitに飛ばずに死ぬの何なの?
194デフォルトの名無しさん (ワッチョイ 152c-3tT5)
2021/06/08(火) 11:47:19.54ID:dOMi6vvz0 そのアプリが、SIG-INT・中断をキャッチしない場合は、
SIG-KILL・強制終了されるのだろう
強制終了は、受け身が取れない。
たぶん、デフォルトの挙動は、そうなのだろう
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は実行されない
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できたわ
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でググるってなんだかな
rubyの挙動を調べるためにpythonでググるってなんだかな
201デフォルトの名無しさん (オッペケ Sred-1bbd)
2021/06/08(火) 20:59:45.11ID:7WqSN2WLr そういやパイプ周りの不具合がなんかあったな
202デフォルトの名無しさん (オッペケ Sred-1bbd)
2021/06/08(火) 21:13:49.57ID:7WqSN2WLr203デフォルトの名無しさん (ワッチョイ 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を実行?
家で使用するのでセキュリティーとかは気にしません
ただ台数が多いため一台ごとにソースを変えるのは回避したいです
なので理想は起動時に最新のソースに自動で更新です
このようなことをしたいときはどのようにするのが一番簡単でしょうか?
rubyでサーバーから最新のソースをコピーしたあとにrubyとpythonを実行?
家で使用するのでセキュリティーとかは気にしません
205デフォルトの名無しさん (ワッチョイ 0a01-UPQK)
2021/06/10(木) 22:40:14.97ID:t0oieqtV0 >>204
rsyncすれば?
rsyncすれば?
206デフォルトの名無しさん (ブーイモ MM67-bi/t)
2021/06/18(金) 09:43:06.27ID:Jo75oGSbM207デフォルトの名無しさん (アウアウウー Sa47-565v)
2021/06/23(水) 23:47:46.99ID:vtN99wcma ライブラリのopenのように、
open() do |f|
・・・
end
と書いてもよく、
f= open()
・・・
f.close
と書いてもいいというクラスor メソッドは
どうやって作ればいいのでしょうか。
yieldを使うとイテレータのみになってしまうし、
returnすると下の例だけになってしまいます。
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/fGgxp0210デフォルトの名無しさん (ワッチョイ 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メソッド実行
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:+4IsK47J0212デフォルトの名無しさん (ワッチョイ a75f-5d62)
2021/06/24(木) 10:36:21.12ID:5MDZvZ/d0 >>210
close漏れを警戒するのであれば、openにそのままブロックを渡した方がいい
openはブロックの実行結果を返し、ブロック脱出時に勝手にcloseします
まぁ、どうせclose漏れしてもそのうちGCに回収されるかプロセス終了時にcloseされる
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}
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対象が暗黙的すぎてちょっとな・・・です。
やっぱりそれしかないかな。
ブロック付きで渡すのはオブジェクト指向ではない
コードになりやすく、今回は考えてないです。
また、全体をensureで囲うのは、
さすがにensure対象が暗黙的すぎてちょっとな・・・です。
215デフォルトの名無しさん (ワッチョイ db33-l/cN)
2021/06/24(木) 13:25:07.89ID:+4IsK47J0216デフォルトの名無しさん (ワッチョイ 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が入るだけで編集可能になってしまいます。
具体的には
<%= 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 すれば値の送信が行われる
HTML の <input> 要素には disabled と readonly 属性が存在します
disabled : コントロールが無効化され、フォームを Submit しても、値の送信が行われない
readonly : 値の変更は行えないが、コントロールは有効なので、
フォームを Submit すれば値の送信が行われる
220218 (ワッチョイ 552c-0PSu)
2021/07/17(土) 11:15:24.94ID:xmQE+uIu0 変更不可のフィールドなら、
<input> 要素などを使わずに、単にテキストを表示すれば?
<input> 要素などを使わずに、単にテキストを表示すれば?
221デフォルトの名無しさん (ワッチョイ 615f-SRm2)
2021/07/17(土) 13:56:18.38ID:EBHVYdQH0222デフォルトの名無しさん (ワッチョイ 9dbb-yayT)
2021/07/17(土) 14:27:31.06ID:7kNL/q5q0 >>221
ではどうすればいいでしょうか
ではどうすればいいでしょうか
223デフォルトの名無しさん (ワッチョイ da33-FmTf)
2021/07/17(土) 16:20:51.36ID:CYR4F+Ue0224218 (ワッチョイ 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千人入っている、虎の穴
更新できる列を、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')
とか書いてます。
あと、ブロックはネストするからなあ。
ブロックで書くとテストコードが書きづらくないですか?
最近はテストコードのことを考えて、普通に、
file = open(file,'r')
とか書いてます。
あと、ブロックはネストするからなあ。
226デフォルトの名無しさん (ワッチョイ 615f-SRm2)
2021/07/18(日) 15:19:50.46ID:WDHzAXg40 >>222
何がしたいのか次第
'hoge'で固定するのであればformで入力させる必要はないですし
なんらかの方法で生成するのであれば生成するタイミングを考えます
入力フォーム表示前に生成し固定する必要があるのであれば
ActiveSupport::MessageVerifier
ActiveSupport::MessageEncrypter
session
などを使う
何がしたいのか次第
'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 かな?
ユーザーの入力値により、条件判断して、
条件1 の場合には、列A だけを更新して、
条件2 の場合には、列B だけを更新する
と言うのは、どのように書くの?
モデルのcallback かな?
レスを投稿する
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 自閉症が「んなっしょい」と連呼するお🏡
- 【画像】エロい一般漫画はなぜこんなに抜けるのか
- 日本人の海外旅行したきのマナーよくなったのはいつから
- BTSのバラエティ面白すぎワロタ
- 寝癖ってどうしたらつかなくなるんや?
