[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/23 09:39 / Filesize : 287 KB / Number-of Response : 1031
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 62



1 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 00:35:29.31 ID:rLZHdQ3Q.net]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

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

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

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

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

809 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 11:58:14.59 ID:OLqFO2yC.net]
[1, 2, 3, 4, 5, 6, 7].slice_before(4).to_a
=> [[1, 2, 3], [4, 5, 6, 7]]


(to_aはEnumeratorをそのまま使うようにすれば不要)

810 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 12:22:26.69 ID:caIICGcE.net]
これからRuby on RAILS勉強するんですけど
なんかいい参考書とかHPありますか?

811 名前:781 mailto:sage [2018/02/25(日) 12:57:24.51 ID:pcyqC+jB.net]
>>787
(1..7).slice_before(4).to_a
=> [[1, 2, 3], [4, 5, 6, 7]]

[1,2,4,5,4,6].slice_before(4).to_a
=> [[1, 2], [4, 5], [4, 6]]

slice_before だと、探している数字が複数回あると、
そこから新たに、グルーピングが始まる

>>788
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015
実践Ruby on Rails 4: 現場のプロから学ぶ本格Webプログラミング、黒田努、2014

黒田の本は、わかりやすい。
ただし、他の著者で、Rails 5 の本も出ているかも

812 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 13:36:01.35 ID:OLqFO2yC.net]
> slice_before だと、探している数字が複数回あると、
> そこから新たに、グルーピングが始まる

仕様どおりだろ

813 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 16:15:39.63 ID:shVfNcyg.net]
erbとかのテンプレートを元に画像を生成するgemってありませんか?
thinreportsでpdfではなくbmp,pngなどの画像を出力する感じです

814 名前:デフォルトの名無しさん [2018/02/27(火) 21:18:11.05 ID:PLAOSS1/.net]
「selenium webdriver screenshot」で検索!

Electron でも出来る

815 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 21:25:08.90 ID:+EUBPr3t.net]
inline_svg とか?

816 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 00:12:23.88 ID:mWE0Cmql.net]
>>784
AsciiDoc/Asciidoctor

817 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 19:08:53.94 ID:acVWAXbg.net]
シェルコマンドでimagemagick呼べばいいよ
gemすら使わずに一瞬でできる



818 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 21:12:02.76 ID:mIXPiXOq.net]
TSVデータを処理したいんですが
末尾の空白文字(タブ)がいつの間にか消えてしまいます

splitが自動削除するのは分かったけど他でも消えてる様です
この暗黙の空白削除現象を検索しても引っかからないんですがいい検索単語はないですか?
あと勝手に削除する理由はなんなんでしょう

819 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 21:36:50.04 ID:bddDF+sp.net]
https://docs.ruby-lang.org/ja/latest/class/String.html#I_SPLIT

820 名前:796 mailto:sage [2018/02/28(水) 22:18:52.36 ID:mIXPiXOq.net]
原因分からなかったけど解決しました

ループ内で毎回Hashに加えていくのを一旦stringにまとめてから
ループ後のHashに加えるようにしたら"\txxxxx\t\n"の後ろのタブが消えなくなりました

821 名前:796 mailto:sage [2018/02/28(水) 22:22:19.89 ID:mIXPiXOq.net]
前に壊したデータ読み直してました

822 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 00:03:53.83 ID:7c4/pzB6.net]
windows環境でrRubyinstaller2でインストールしてruby.exeのパスに非アスキー文字が含まれていると
requireしたときに$LOAD_PATHの非アスキー部分が文字化けしてload errorが起きるんですけど何か対処法はありませんでしょうか?
その場的に今はUTF-8で書いたコードの中で$LOAD_PATHに対応するパスを挿入して動かしてるんですが。。。
諸事情によりrubyはアスキー文字配下にインストールできないものとします

823 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 03:54:56.19 ID:QlU5Q+B8.net]
今すぐアンインストールしてWSLを入れよう

824 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 05:39:12.36 ID:xypD9Mi9.net]
>>800
バグ報告してくるんだ

825 名前:デフォルトの名無しさん [2018/03/02(金) 07:54:43.19 ID:mIGjbFX+.net]
Windows のirb でも、ascii 以外は正常に動かないから、
irb を使う時だけ、WSL・Ubuntu の方を使っている

UTF-8 では、cp932(shift-jis)が読めないのだろう

起動時オプションで、cp932 を指定すれば、読めるかも知れないけど、
逆にRuby 内部で、cp932 はヤバイのじゃないか?

UTF-8以外を使うと、他のアプリと通信できないとか、バグりそう

とにかく、PC のユーザー名・パス名などに、半角英数字以外を使うと、
多くのアプリでバグる

826 名前:803 mailto:sage [2018/03/02(金) 11:51:22.61 ID:mIGjbFX+.net]
Windows のPowerShell から、Ruby の1-liner を実行すると、ファイル名だけが\x 表示された。
PowerShellのデフォルト文字コードが、UTF-8 だから、フォルダ名は正常に表示された

> ruby -rfileutils -e "puts FileUtils.pwd"
C:/Users/Owner/Documents/あいう

> ruby -e "p Dir.glob('*')"
["\x{8345}\x{8343}\x{838B}\x{8358}.txt", "\x{8376}\x{838D}\x{834F}\x{838C}.txt"]

> ruby -E :shift_jis -e "p Dir.glob('*')"
起動オプションに、外部エンコーディングをUTF-8のままで指定せず、
内部エンコーディングだけをshift_jis に指定すると、正常に表示された
["ウイルス.txt", "プログレ.txt"]

漏れは一々、起動時やファイル内に、文字コードを指定するのが面倒なので、
Windowsのユーザー環境変数に、RUBYOPT を追加して、--encoding=UTF-8 を設定している。
ただし、こうすると、irb が動かなくなるので、Windows10 のWSL・Ubuntu のirb を使っている

一方、WSL・Ubuntu・bash から、上記を実行すると、
デフォルトで、どちらも正常に表示された

Windows で実行する場合は、PowerShellはUTF-8、コマンドプロンプトはCP932 がデフォルトだから、
これらのシェルの文字コードか、Ruby側の文字コードを指定する

まあ、shift_jis の処理は、危険だと思う。
@などのWindows独自のCP932文字(環境依存文字)があって、
shift_jis・CP932は微妙に異なるから、どこまで正常に動くか分からない

827 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 12:00:42.65 ID:OCKmRFPd.net]
なにをごちゃごちゃやってんだ?

こういうのは変換すべきレイヤーで変換するだけの話だろ
Rubyのスクリプト(に限らないが)は
どこでも同じように動かすんだから
ソースコードも内部も UTF-8だ
画面への入出力時に変換させればいいだけ

コマンドプロンプトをUTF-8に変換するって手もある
海外じゃCP932という日本専用の文字コード使ってないことぐらいわかるだろ?



828 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 12:39:35.62 ID:vnF4MMGw.net]
元々はwindowsのワイド文字をうまくutf8に変換してやってこうという方針だったのに
nobuがロケールに変換させまくって動かないだけ
まあ誰もバグ報告しないのも悪いけど

829 名前:803 mailto:sage [2018/03/02(金) 13:14:57.35 ID:mIGjbFX+.net]
Rubyist は、RubyでGem を作れるけど、C で低レベルなI/O を書けるわけじゃない

また、Linux・Windows の両方に対応させるのは、難しい

830 名前:803 mailto:sage [2018/03/02(金) 16:17:45.17 ID:mIGjbFX+.net]
library irb/input-method
https://docs.ruby-lang.org/ja/latest/library/irb=2finput=2dmethod.html

class IRB::ReadlineInputMethod のソースコードを見れば良いの?
それとも、GNU Readline のソースコードかな?

Windows のirb で、日本語がバグるのは、
根本的に、GNU Readline が、Windowsの日本語を考慮していないからじゃないの?

831 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 16:40:11.45 ID:ypGJ9h8+.net]
というかrubyコミュニティがwindowsを考慮してない。
むしろ怨み、蔑み、嫌っている。昔から。

832 名前:デフォルトの名無しさん [2018/03/02(金) 17:18:20.26 ID:0lL3/u0V.net]
>>809
そだねー

833 名前:803 mailto:sage [2018/03/02(金) 17:55:40.44 ID:mIGjbFX+.net]
console.log("あ");

Windows で、node (REPL)を実行したけど、
日本語を入力しても、PowerShell・コマンドプロンプトの両方で、正常に動く

834 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 23:07:42.42 ID:wSJnGqkk.net]
RubyはLinuxで動かすようにすればいいよ
WindowsでちょこっとしたやりたいことがあるならC#使え、と
どうせ仕事でやってるRubyはLinuxで動くんだからさ

Windowsマシンでの開発ならVMかDocker使えばすべて解決

835 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 01:14:23.68 ID:vdurK0jv.net]
ありがとうございました
ググってみたら結構前から報告されていたバグみたいなので諦めることにします

836 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 01:19:41.29 ID:GGmAMA7z.net]
>>800
$LOAD_PATHをforce_encoding()で環境に適応したエンコーディングを設定したら?
あるいは、バイナリに設定して、むりやりそれっぽいバイトデータをつっこむとか?

837 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 01:21:46.51 ID:GGmAMA7z.net]
>>808
chcp 65001とかしてもダメかね?



838 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 15:41:40.19 ID:VQ/a88pK.net]
cmd で chcp 65001 するくらいなら
git for windows インスコして git bash (mintty) 使うと幸せになれるぞ

839 名前:デフォルトの名無しさん [2018/03/03(土) 15:43:54.56 ID:x/6oRrTp.net]
65001 は右端とか折り返し表示がバグるね

840 名前:803 [2018/03/03(土) 15:49:49.91 ID:HcfLoqAp.net]
Ruby の起動オプションに、外部・内部エンコーディングか、RUBYOPT で指定できる。
ファイル内でも指定できる

それと、PowerShell・コマンドプロンプト、WSL・Ubuntu・bash で指定できる

これらの組み合わせの中で、文字化けしない組み合わせを探す

または、$LOAD_PATH の辺りで、指定するとか

841 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 17:58:14.02 ID:URsJSGy/.net]
Rubyの2.5.0p2をRubyインストーラーでインストールしたらRubyの2.5.0p0だった・・・

842 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 18:17:52.81 ID:A+Ivs8ru.net]
patchlevelはもう無いよ

843 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 18:26:46.78 ID:VQ/a88pK.net]
>>818
そんな試行錯誤は一番あかんやつや

844 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 21:39:09.27 ID:rw2aiDdk.net]
そうそう。結局 Rubyやirb に問題が有るんじゃなくて
単に >>803 が理解してないだけ

845 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 21:55:10.06 ID:GRjh9/QH.net]
そういうことだから理解できない初心者は間違ってもrubyなんか使おうと思わないようにね。
初心者や子供にruby勧めてくるのは例外なくマウント取りたいだけのクズだぞ。

846 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 21:56:04.27 ID:ETPjeMg1.net]
書籍のサンプルコードの一部です
この@memoという変数はいわゆる辞書形式のデータ構造で
[remain, pre]は辞書のキー(複合キー?)という理解でいいんでしょうか
ちなみに@を付けないとどうなりますか
変数名に記号が付くのが凄く気になります

@memo = {}
# 計算結果をメモする
@memo[[remain, pre]] = cnt

847 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 22:30:11.11 ID:gHPIEkfR.net]
>>824
[remain, pre]は辞書のキーって理解であってる
irb等のREPLで試すとすぐ分かる
@はインスタンス変数に付けるプレフィクス



848 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 00:30:02.17 ID:99M3BGnn.net]
>>825
ありがとうございました

849 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 02:42:13.82 ID:Oz1ASWrr.net]
キーに配列が使えるのか・・・

850 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 04:12:18.75 ID:aAfADGFK.net]
オブジェクトはなんでもイケるんじゃなかったっけ?
ハッシュ値さえちゃんと返せば。

851 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 11:33:10.30 ID:7gUy2hud.net]
キーにした配列を変化させた時はrehashしないとキーが一致しなくなる
文字列のキーは変化させても、キーはセットしたときのまま

852 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 11:34:10.89 ID:Oz1ASWrr.net]
なるほどね。先入観として[a,b]ってかいたら毎回newされて、
キーとしては未定義値のnil固定か、別オブジェクト扱いで不定になるか、と思えた

853 名前:デフォルトの名無しさん [2018/03/05(月) 16:37:38.89 ID:62GuhFZ7.net]
str = <<'EOT'
str = << 'EOT'

here doc で、下のように、<< の後ろに半角空白があると、文法エラーになる

それと、WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理すると、

改行コードが異なるから、不正な形式のファイルと言われる。
改行コードを、LF だけに変えると、正しく処理できる

854 名前:デフォルトの名無しさん [2018/03/05(月) 22:15:57.90 ID:xs+Qg6beE]
便乗して報告するよ。
exp()の前後でxの正負が逆転します。
たぶん、Cで書き換えてからだと思う。

$ irb
irb(main):001:0> require "bigdecimal"
=> true
irb(main):002:0> x = BigDecimal("-50")
=> -0.5e2
irb(main):003:0> BigMath.exp(x, 50)
=> 0.19287498479639177830173428165270125747528326512303e-21
irb(main):004:0> x
=> 0.5e2

855 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 17:53:15.03 ID:aK37pZ+C.net]
mode: 'rt'
で読み込めばいいじゃん

856 名前:831 mailto:sage [2018/03/05(月) 19:10:41.11 ID:62GuhFZ7.net]
options に行区切りを指定したら、

WSL のUbuntu 側にインストールしたRuby で、
Windows 側にあるCSV ファイルを処理できた

row_sep: "\r\n" では出来たが、
row_sep: :auto では、エラーになる

857 名前:デフォルトの名無しさん [2018/03/05(月) 21:53:10.11 ID:K/Y9LwEe.net]
require ‘pry’
def foo;@a = 1;end
binding.pry

このコードを実行し、出て来たプロンプトで
> cd Object
> instance_methods(false)
=> [:to_yaml, :to_yaml_properties, :pry, :__binding__, :psych_to_yaml]

と出ました。fooメソッドが見つかりません。
トップレベルで定義したfooメソッドはObjectのメソッドに成るのでは?

ちなみにコマンドラインでpryとタイプして
[1] pry(main)> def foo;@a=0;end
=> :foo
[2] pry(main)> cd Object
[3] pry(Object):1> instance_methods(false)
=> [:to_yaml, :to_yaml_properties, :pry, :__binding__, :psych_to_yaml, :foo]
[4] pry(Object):1>
ちゃんとfooが見えます。



858 名前:デフォルトの名無しさん [2018/03/05(月) 22:05:54.92 ID:K/Y9LwEe.net]
自己解決しました。
[1] pry(main)> self.private_methods(false)
とすれば見えました。

859 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 14:39:13.23 ID:veKfJdlp.net]
1

860 名前:デフォルトの名無しさん [2018/03/15(木) 18:29:02.24 ID:5enxwtKu.net]
RubyからDB扱うときって皆は何のライブラリ使ってるの?

861 名前:デフォルトの名無しさん mailto:sage [2018/03/15(木) 19:28:59.60 ID:tIXtXy4E.net]
RubyでDBを扱う場合、プロダクションで使われているのは世界で唯一ActiveRecordのみ

862 名前:デフォルトの名無しさん mailto:sage [2018/03/15(木) 21:18:59.56 ID:OYGfq7D7.net]
インターフェースじゃん。
バックでmysqlとか動いてるぞ。
いいからちゃんと勉強しろよ。

863 名前:デフォルトの名無しさん mailto:sage [2018/03/15(木) 21:31:02.48 ID:rmXeLovx.net]
>>840
ライブラリで答えてください

864 名前:デフォルトの名無しさん mailto:sage [2018/03/15(木) 23:24:57.24 ID:xG9lbsTH.net]
>>838
ActiveRecordが大半なのは間違いない

ORMを求めてるならsequel、rom、hanami等
素のDBライブラリならmysql2, sqlite3-ruby, ruby-pg
ArelでSQLを構築してDBライブラリ使ってSQL実行してもいい

865 名前:デフォルトの名無しさん [2018/03/16(金) 15:24:05.43 ID:3ma6aQHv.net]
sqlite3

866 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 18:23:28.28 ID:2Gd98HT2.net]
>>840
Rails屋がSQLすら書けなさそうに見えて腹立つのは分からんでもないけど、今はDBインターフェースの話しかしてないぞ

867 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 23:22:04.16 ID:yiSYhWxU.net]
「Node.js超入門、掌田津耶乃、2017」を読んでいるけど、JavaScript の基本は、Ruby

Ruby のSinatra, JS のNode.js を、full scratch で書くと、ほぼ同じ

Rails, JSのExpress + Bookshelf が、ほぼ同じ



868 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 23:24:51.12 ID:3NuYtiCt.net]
掌田津耶乃ってダメな本じゃなかったか?

869 名前:844 mailto:sage [2018/03/17(土) 00:05:48.37 ID:nxO/ldT7.net]
プログラミング本では、掌田が第一人者。
Unity, UE4 などのゲームエンジンから、最近は、Python, Node.js にも進出

売れる・成長する分野には、必ず掌田が参入してくる。
業界の風見鶏

「Node.js超入門、掌田津耶乃、2017」
この本で、Sinatra, Rails を学ぶ方が簡単。
20時間ほどで読める

後は、YouTube の動画で、OK

870 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 00:10:02.58 ID:6ii9LbbD.net]
やっぱ掌田津耶乃ってだめな人だった
調べたらわかったよ

871 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 00:34:45.99 ID:4Xu/HAYS.net]
今の時代、開発速度が速すぎて誰も良い本なんか書けないよ
それを書き終わる頃には時代遅れになってるんだから

872 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 00:38:04.22 ID:6ii9LbbD.net]
いや掌田がとりわけレベル低いだけ

873 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 01:55:30.84 ID:+wQGtQt+.net]
掌田津耶乃はだめな本
山田 祥寛は良い本

という評価が一般的
掌田津耶乃は何冊か読んでいるけど、
見比べてみるとたしかにダメダメなんだなぁ。

874 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 02:08:55.36 ID:6ii9LbbD.net]
山田 祥寛もダメだろ

875 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 05:35:09.75 ID:77P/HBnW.net]
掌田津耶乃はHyoerTalkなまりのコード

876 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 09:18:19.49 ID:nxO/ldT7.net]
最近は、Python にも、なでしこの作者・クジラ飛行机、
大津真、掌田も、乗り込んできた

この辺は、売れ筋には参入してくる著者

中でも掌田は、ゲームエンジン・言語・Javaのフレームワーク・Node.js など万能

877 名前:デフォルトの名無しさん [2018/03/17(土) 12:59:20.73 ID:OC0Ef+g3.net]
またあらぶっとるんか糞荒らし
はやくRubyコミュで発言しろよ屑



878 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 14:32:15.41 ID:+wQGtQt+.net]
要はね
掌田の出版本を見てみるとわかるが、
初心者を食い物にしている
初心者専用の作者なわけよ、

だからレビューとかで
表面だけかじって書いたかのような本とか
書かれちゃうわけよ。

深く知りもしないであれだけの数の本を書けるわけないよね。
だから掌田はおすすめできないんだわ。

初心者にはいいかもしれないよ?
初心者向けの本ばかり何冊も何年も書き続けているから。

879 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 15:47:30.97 ID:uAf5LbgY.net]
商売としては全然アリだね
とっかかりが欲しい初心者いるだろうし

880 名前:デフォルトの名無しさん [2018/03/17(土) 16:43:12.02 ID:cWw1OMJa.net]
>>856
ほんそれ

881 名前:844 mailto:sage [2018/03/17(土) 19:43:45.96 ID:nxO ]
[ここ壊れてます]

882 名前:/ldT7.net mailto: デザインもカラフルで、図解してあるから、すごくわかりやすい。
売れるから、こういう外注予算が大きい

オライリーでは、図解・デザインは無いから、読むのに時間が掛かる。
図解は視覚だから、瞬時に理解できるけど、
言葉の説明だと、それを図に置き換えて、考えないといけないから大変

掌田の本は、ものすごく短時間で理解できるから、効率的。
すごく消化・吸収に良いし、
時間も節約できるから、時給換算すれば大得

漏れには、時間が掛かる・細かい・理解できない、100の知識はいらない。
短時間で、よくわかる、50の基礎知識がさえ有ればよい。
あとは動画を見て、応用するから

「Node.js超入門、掌田津耶乃、2017」
この本で、Sinatra, Rails が分かる

「10日でおぼえる jQuery 入門教室 第2版、山田祥寛(よしひろ)、2013」
この本で、Nokogiri が分かるのと同じ

本が出ていない場合とか、難しい本しかない場合に、非常に役に立つし、速い
[]
[ここ壊れてます]

883 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 09:45:02.22 ID:JzaiKxSG.net]
>>856
食い物とか、被害妄想凄いな。
お前さんがもっとマシな解説ブログでも開いたら?w

884 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 12:36:10.41 ID:Gg1K6bSi.net]
>>860
頭使ってる?
掌田津耶乃が何冊初心者用の本を出しているか知っている?
ちょっと考えれば、
英語、ドイツ語、フランス語の言語学習の本を書いたとしたら
その言語のことをどこまで知っていて本を書いているんだろうとか気にならないの?
もし気にならないんだったら、表面的な知識だけで満足しているお前とは合わないのでバイバイ ノシ

Amazon.co.jp: 掌田 津耶乃:作品一覧、著者略歴
https://www.amazon.co.jp/%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/e/B004L5AED8/ref=sr_tc_2_0?qid=1521344021&sr=8-2-ent
掌田津耶乃(しょうだつやの)。ほぼ男性。テクニカルライター兼3流プログラマ。

自分でも3流プログラマと認めているのに、まったく信者って奴は・・・

885 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 12:52:44.19 ID:QAeUSVF3.net]
こんなスレがあったで

掌田津耶乃って何者? (Late 2012)
https://anago.5ch.net/test/read.cgi/mac/1349360916

886 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 12:55:57.40 ID:QAeUSVF3.net]
基本的に流行ってるものを、ざっと調べてまとめただけなんだろうな
だから初心者レベルのところまでしか書けない
概要を知るところまでで、あれを参考にしてコードを書いてはいけない

887 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 16:36:38.11 ID:Aq9RvNC1.net]
HypaerCardの本も出してたから もう30年以上初心者向けの本出してるベテラン 



888 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 19:04:35.10 ID:Pu83I0V3.net]
Amazonのレビューでよく思うけど、海外の人は褒めるのが上手。いい面を見てる
日本人は100点じゃなきゃ糞みたいな心の狭い人が多い
初心者向けの本なんかにケチつけなくてもいいだろうに
今は公式サイトのドキュメントが充実してる時代なんだから、ほぼ公式くらいのことしか書かんだろうよ

889 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 19:43:48.34 ID:Gg1K6bSi.net]
そうだな、ネイティブと喋れない、英検準2級、TOEIC500点ぐらいの人が教えているって感じ。
そんなイメージが掌田津耶乃さん。

890 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 20:16:15.41 ID:i3culXas.net]
ご尊顔
interview-bookscan.s3-ap-northeast-1.amazonaws.com/newimg/interview_178_index.png

891 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 21:55:23.04 ID:JzaiKxSG.net]
>>861
いや長文必死にならなくても、お前さんが自分で解説するだけの知力すら無いってのは分かったから。

892 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 21:59:08.72 ID:QAeUSVF3.net]
なんで作者本人が自分で三流ですって言ってるのに、
他人が三流であると解説する必要があるんだ?

893 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 23:16:11.58 ID:Gg1K6bSi.net]
>>868
自己紹介乙

894 名前:デフォルトの名無しさん [2018/03/18(日) 23:24:43.53 ID:JFJ3EKTR.net]
Java, Ruby のフレームワークを書ける人は、少ない。
山田祥寛(よしひろ)、掌田津耶乃、宮本信二、黒田努など

山田は会社向けの、1日4万円の講座などを開いている

一方、掌田は初心者向け。
Unity, UE4 などのゲームエンジン、
Python などの売れ筋言語、
Spring などのJavaのフレームワーク、
Node.js + Express などのJavaScript のフレームワークなど、万能

山田は会社員、掌田は初心者と、ターゲットが異なる。
もし、同じターゲットなら、両雄並び立たずで、共倒れするから

895 名前:デフォルトの名無しさん [2018/03/18(日) 23:54:42.62 ID:3ZuC3w8U.net]
自演注意
自演注意
自演注意

896 名前:デフォルトの名無しさん mailto:sage [2018/03/19(月) 04:32:11.24 ID:csFbH6Mx.net]
File.open('test.txt', 'r+') do |io|
text = io.read
io.rewind

io.write 'あ'
p io.pos #=> 3

io.truncate io.pos
end

読み書き両用ファイルの、ファイルサイズを減らして、上書きできた

io.rewind で、ファイルポインタを先頭に巻き戻す。
io.truncate io.pos で、現在のファイルポインタの位置で、ファイルを切り詰める

897 名前:デフォルトの名無しさん mailto:sage [2018/03/20(火) 23:14:51.84 ID:QfE06Qcj.net]
>>870
反論すら出来ない奴は、つまらんね。



898 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 00:56:42.17 ID:p8DsWgGG.net]
変なこと聞くけどさ、rspecでさ、まあ適当にサンプル書くけど

describe "hoge do
 before do
  ・・・
 end

 context do
  let(:a) { 1 }
  ・・・
  it 'hage' do
   expect(a).to be 1
  end
 end
end

コレに限った話じゃなくて、rspecの使い方で内側のブロック(例えばitの中)から
外側のブロック(例えばcontextの中)の状態(例えば変数)を
書き換えるのを禁止にしても何の問題もないよね?もちろん参照するのはOK。
テストはどう有るべきかを考えたら、むしろそうした方が良いぐらいじゃないかって思うんだけどどうかな?

899 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 01:22:34.72 ID:qUqb4QSc.net]
ネストしたcontextで
内側のcontextが外側のcontextで設定した状態を
書き換えるような形でテストを書いても別にいいと思うけどな

900 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 01:57:04.18 ID:p8DsWgGG.net]
>>876
でもそうするとテストケース一つとか実行した時におかしくならない?

901 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 04:11:05.87 ID:rJLoGwxo.net]
>>874
自己紹介乙

902 名前:デフォルトの名無しさん [2018/03/21(水) 07:02:14.53 ID:wxFTzoek.net]
外部への依存が少なければ、個々のテストの独立性が高いから、
バグが減るし、テストを並行実行できる

それが理想だけど、実現するのは難しそう

903 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 16:09:18.41 ID:qUqb4QSc.net]
>>877
おかしくならないよ
let(:a) { 2 }とかで上書きしてみればわかるでしょ

904 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 16:22:28.39 ID:p8DsWgGG.net]
>>880
上書き?
letは新たにローカル関数を作るようなもので
親ブロックのaを上書きなんかしてないよ

905 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 16:24:44.94 ID:qUqb4QSc.net]
>>881
それ分かってるんなら
何がおかしくなると思ってるの?

906 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 16:47:19.64 ID:p8DsWgGG.net]
>>882
内側のブロックで外側のブロックの変数に値を入れた場合だよ

907 名前:デフォルトの名無しさん [2018/03/30(金) 15:22:33.47 ID:87KFZNYL.net]
Chrome 65 になったら、selenium webdriver が動かなくなったので、
chrome driver 2.37 を、ダウンロードしてみた

これで動くかどうかは、まだ試してないけど



908 名前:883 mailto:sage [2018/03/30(金) 20:31:06.53 ID:87KFZNYL.net]
新しいバージョンの、chrome driver にしたら動いた

909 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 16:44:40.27 ID:0KaYXtgi.net]
すみません、質問があります。
他人様の書いたコードを読んで写経しながら勉強していた所、
begin
#何らかの処理A(特に例外を出しそうな処理ではない)
end until hoge

という記述があったのですが、この書式の意味というか意図がいまいちつかめなくて困っています。
自分でコードを書いて試してみた所、この記述はhogeがtrueでもfalseでも処理Aを実行しており、
特に「until hoge」の部分で何を制御したいのかがわかりません。

(begin
#処理
end) until hoge

例えば、↑の書き方だと単純なuntil文の後置修飾になるので意味がわかるのですが、
上述のような書式で書く理由や、こう書くとどういうメリットがあるかを教えていただけますと嬉しいです。
よろしくお願いいたします。

910 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 16:51:30.58 ID:1KgD14Zs.net]
(と)の二文字省略できる

911 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 17:15:27.40 ID:9myXjpPz.net]
>>886
下のAとBは同じことをするんだけど、Aだと1行目と4行目が同じでもやっとするのでBのように書いているのでは
個人的にはbegin〜endをメソッドにしてこうは書かないけど
begin〜end untilのほかにもbegin〜end whileも同様

# A
i = Time.now.sec
until i % 3 == 0
p i
i = Time.now.sec
end

# B
begin
i = Time.now.sec
p i
end until i % 3 == 0

912 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 17:18:46.83 ID:9myXjpPz.net]
訂正

# A
i = Time.now.sec
p i
until i % 3 == 0
i = Time.now.sec
p i
end

# B
begin
i = Time.now.sec
p i
end until i % 3 == 0

913 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 17:32:20.95 ID:0KaYXtgi.net]
>>888-889
ご回答頂きどうもありがとうございます。
なるほど、この書式だとbegin~end内の処理が1回は必ず実行されて、
その後に条件文で判定されるようになるので、同じ処理(例だと代入処理)を2度書かなくて済むようになるんですね。

とても勉強になりました。

個人的にはコード行数が増えたり同じ処理が連続するよりも、
ひと目で意図する処理が他人に伝わらないのはちょっと嫌なのでこの書き方は真似しないようにします……。

914 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 17:40:44.12 ID:KXX7rc47.net]
いや、それはおかしい。
リトライやリドゥーみたいな処理で、必要であれば、ためらわずそう書くべき。多少わかりにくくても。
いずれ慣れるから。

なんなら、先頭にコメントをつけとけば。

915 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 17:57:12.31 ID://EuH1G7.net]
絶対的なルールではないけどこんなものもあるんで参考までに

ruby-style-guide
>後判定ループの場合、begin/end/untilやbegin/end/whileより、
>break付きのKernel#loopを使いましょう。
https://github.com/fortissimo1997/ruby-style-guide/blob/japanese/README.ja.md#user-content-loop-with-break

916 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:00:28.18 ID:ZcGM330i.net]
(なにかしら).method

do
なにかしら
end メソッド


みたいなもんだからRuby規則に沿っているだろ

917 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:17:17.82 ID:A31P7FUz.net]
>>892
後判定ループを行うのにbegin-end-while/untilが好ましくない理由を俺に教えて欲しい



918 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:21:45.55 ID:hwmab9Mq.net]
>>894
英語的にキモいからだろ
end until ってさすがに非ネイティブの俺でも不自然に感じるぞ

919 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:27:29.70 ID:Aa3HndXz.net]
英語的な自然さを求めるなら、loopをendのエイリアスということにして loop while/until かな
VBがそんな感じだったはず
まあジャップ製言語だから仕方ないね

920 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:31:46.49 ID://EuH1G7.net]
>>894
beginの中が長いと上から読んでてループするんだかrescueするんだかわかりにくいからじゃない?


921 名前:ruby-style-guideはコメントを極力書かないで済むようにするのが目的の一つだから
まあ個人的には首肯しかねるルールもいくつかあるけどね
[]
[ここ壊れてます]

922 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 18:43:23.68 ID:hwmab9Mq.net]
>>897
それもあるね
日本人からすると「〜〜(長い長い手続き)〜〜をループさせろ」は自然な流れだけど、
向こうの人からすると「結論から話せやファッキンジャップ」だろうな

923 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 21:03:13.03 ID:A31P7FUz.net]
>>897
ああ、なるほど
そういう観点だったのね
ありがとう

924 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 12:57:38.84 ID:g/2XFKpH.net]
ブロッキング条件なら後に来るの自然に感じる
長過ぎるとってのはどんなブロックでも同じ

925 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 13:03:59.66 ID:KugB3K+A.net]
SV
これは第一文型なんだから
文章.method
SをVするで普通の英語じゃん?

926 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 13:11:22.76 ID:6hj+x7xd.net]
おいおい…
「を」は対格を作る格助詞だぞ。
記号で書くとV(=verb=動詞)O(=object=目的語)だ。
SVは
S(=subject=主語)V(=verb=動詞)で、
S「が」Vする、だ。

927 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 13:22:58.60 ID:g/2XFKpH.net]
自然言語なんて例外だらけなんだからどうでもいい



928 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 13:41:31.43 ID:eDlvSPE1.net]
sendを使う度にモヤモヤした気持ちになる

929 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 14:10:59.70 ID:HZoT/r0A.net]
それより>>895だろうな
begin〜end系言語で結びにend whileなんて書くのrubyくらいじゃないか?
たいてい>>896みたいにendを別の単語に変えてる

930 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 18:13:06.38 ID:TBzY9DYT.net]
そりゃそもそもend書かせる主流言語が少ないし

931 名前:デフォルトの名無しさん [2018/04/03(火) 03:47:06.97 ID:hZewAlsv.net]
>>890
同じ処理を、別の場所に2回書くと、

修正時に、2か所とも修正しないといけないから、
どちらかを修正し忘れる事があるので、危険

932 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 04:10:23.05 ID:8HWTUUN8.net]
Donot
Repeat
Yourself

933 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 23:32:43.51 ID:q2DveEBR.net]
Do
Repaet
Yourself

934 名前:デフォルトの名無しさん [2018/04/04(水) 02:02:25.22 ID:h2UR4/YM.net]
Reuse
Reduce
Recycle
Ruby

935 名前:デフォルトの名無しさん [2018/04/05(木) 14:25:03.13 ID:eFdDptlj.net]
selenium-webdriver で、Chrome のHeadless mode で、
5ch の投稿者名・書き込み内容を、抜き出してみた

driver.navigate.to "https://mao.5ch.net/test/read.cgi/linux/1479499953/8-9"

elements = driver.find_elements(:css, 'div[data-id]')

elements.each do |elem|
str = elem.attribute('data-id') + ' 投稿者 :'

# CSS では、コンテキストの直下を表現できないので、xpath を使う
# str += elem.find_element(:css, '> div.meta > span.name').text
str += elem.find_element(:xpath => "div[@class='meta']/span[@class='name']").text
puts str

str = '内容 :'
str += elem.find_element(:xpath => "div[@class='message']/span").text
puts str
end

936 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 05:31:34.17 ID:Cc4pa2fK.net]
三ヶ月在れば一つのプログラム言語を習得しアプリケーションを作ることが出来るw
https://mevius.5ch.net/test/read.cgi/win/1504394535/9

おいらは習作はしない、他愛ないことはやらないのだ
https://mevius.5ch.net/test/read.cgi/win/1503735829/881-883

C#なんてのはVZの開発環境にないwww
https://mevius.5ch.net/test/read.cgi/win/1520923324/913

ワロタ、ワロタ
https://echo.5ch.net/test/read.cgi/win/1467974448/129-132

937 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 14:20:42.12 ID:JYaIVkeP.net]
10年以上前に学校でスクリプト言語を勉強してたときはPH



938 名前:Pが流行ってて
Perlもあったけど少し古いかなって感じ。ただとにかくJAVAが騒がれててJSP+tomcatなんかもやったな。
Rubyはあったけどそんなに話題にならず。
で最近、またスクライピングがやりたくて色々調べたら
もうPHPも下火?でRubyとpythonとかいう言語が主流みたいですね。
[]
[ここ壊れてます]

939 名前:デフォルトの名無しさん [2018/04/08(日) 15:16:13.15 ID:nkM5b3tX.net]
Rubyは主流じゃない

940 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 16:26:08.93 ID:ikNNlzZg.net]
PHPが下火でRubyが主流がねーわ。
人気を捏造しないと好きな言語も恥ずかしくて使えないのか軟弱者め。
たとえ世界の全てが使わなくても自分だけはRubyを使い続けるという気概を持てよ情けない奴

941 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 17:41:41.41 ID:mE+8rAwy.net]
2ch/5chでは、日本人が作ったというだけで、だめ扱いする書き込みがあるから
注意すべし。どこかぞの国から書き込まれている事がある。

942 名前:デフォルトの名無しさん [2018/04/09(月) 11:49:58.15 ID:M/BmQ9Z1.net]
以下の半角空白区切りの行から、稼働時間を求めるには、どうやるの?
夜、24:00 以上の数字もあります

2018/09/09 09:45-24:00
2018/10/10 23:00-27:15

943 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 12:21:03.03 ID:2h6IFanV.net]
>>917

date = "2018/09/09 09:45-24:00"
m = date.match(/(\d\d):(\d\d)-(\d\d):(\d\d)/)[1, 4].map(&:to_i)
min = (m[2] - m[0])*60 + m[3] - m[1]
p "%d:%d" % min.divmod(60) # => "14:15"

944 名前:916 mailto:sage [2018/04/09(月) 13:15:44.73 ID:M/BmQ9Z1.net]
ありがとう

Date, DateTime, Time などの形で、引算で求められませんか?

945 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 13:42:09.51 ID:2h6IFanV.net]
date = "2018/09/09 09:45-24:00"
m = date.match(%r!\A(?<year>\d{4})/(?<month>\d\d)/(?<day>\d\d) (?<begh>\d\d):(?<begm>\d\d)-(?<finh>\d\d):(?<finm>\d\d)\z!)
beg = Time.new(m[:year], m[:month], m[:day], m[:begh], m[:begm])
fin = Time.new(m[:year], m[:month], m[:day], m[:finh], m[:finm])
min = (fin - beg)/60
p "%d:%d" % min.divmod(60) # => "14:15"

946 名前:916 mailto:sage [2018/04/09(月) 14:17:26.06 ID:M/BmQ9Z1.net]
ありがとう

24:00 では、Time インスタンスを作れるけど、
27:15 では、エラーで作れなかった

回避策を考えてみます

947 名前:デフォルトの名無しさん [2018/04/09(月) 14:23:48.18 ID:GdkyYm9A.net]
pythonスレにマルチするのやめれ



948 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 14:39:12.15 ID:2h6IFanV.net]
>>921

date = [
"2018/09/09 09:45-24:00",
"2018/10/10 23:00-27:15"
]
begfin = lambda do |m|
d = Time.new(m[:year], m[:month], m[:day])
[[m[:begh], m[:begm]], [m[:finh], m[:finm]]].map { |hour, min|
3600 * hour.to_i + 60 * min.to_i
}
end
date.each do |d|
m = d.match(%r!\A(?<year>\d{4})/(?<month>\d\d)/(?<day>\d\d) (?<begh>\d\d):(?<begm>\d\d)-(?<finh>\d\d):(?<finm>\d\d)\z!)
beg, fin = begfin[m]
min = (fin - beg)/60
puts "%d:%d" % min.divmod(60) # => "14:15"
end
# =>
14:15
4:15

ってマルチかい

949 名前:916 mailto:sage [2018/04/09(月) 15:24:13.18 ID:M/BmQ9Z1.net]
python スレの書き込みとは別人。
ID も異なるはず

その書き込みを見て、Ruby ではどうプログラミングするべきか、考えてみたが難しかった

950 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 15:46:38.36 ID:aj6Oy7j8.net]
「ruby 24」検索

Ruby で 24 時超えの時間を楽ちんにパースする方法 - Qiita
https://qiita.com/ruzia/items/5e2cae142479b8a5c364

951 名前:916 mailto:sage [2018/04/09(月) 16:17:52.99 ID:M/BmQ9Z1.net]
d = Time.new(m[:year], m[:month], m[:day])
d_next = d + 60 * 60 * 24

24時以上の場合は、hour から24を引いて、1日足すけど、これはややこしい

952 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 21:36:13.46 ID:0VIzl/J9.net]
クソコードばっかりだなw

953 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 22:04:45.24 ID:cXk52I1j.net]
25以上の数字の入力を許している次点でクソコード。

954 名前:916 [2018/04/10(火) 00:28:34.01 ID:oEQHPFsL.net]
表計算ソフトなどで、時間管理していると、こういう表記もある。
2018/10/10 23:00-27:15

上を一旦、変換して
2018/10/10 23:00-24:00
2018/10/11 00:00-03:15

これも、1日足すのも結構、難しい。
Date, DateTime に変換してから、1日足さないと、月末・うるう年などで、バグる

>>926
>d_next = d + 60 * 60 * 24
これで1日足すのも、うるう秒の時が、どうなるか不安

955 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 00:34:12.01 ID:PJbB3F/q.net]
時刻じゃなくて時間を表すクラスが欲しくなるな

956 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 01:03:05.44 ID:TtMX4ea2.net]
24,60,60進法による演算ということね

957 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 03:53:20.97 ID:gEpzqPRo.net]
時間は最重要項目なんだから
完璧なライブラリとか無いのかな?



958 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 08:52:25.96 ID:OCO/nUgk.net]
RubyのDateTimeは充分以上だよ。
日付を増減するときは、それ時分秒の値はさわらずに、めんどくさくても日の値を変更すればいい。

959 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 08:58:36.32 ID:wPoJQnkn.net]
じゃあエポックタイムで十分だな。めんどくさくても計算すればいい。

960 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 09:31:38.98 ID:Pta2sQP4.net]
DateTimeは完璧なライブラリだから24時以降はRangeErrorになる
完璧な仕様だ

961 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 09:55:10.36 ID:wPoJQnkn.net]
rubyの不便はいい不便

962 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 17:47:37.08 ID:yDOt+2aU.net]
rubyに不便なんてないぞ
何を言ってんだ

963 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 18:25:57.56 ID:6CkCb20Q.net]
えーっ、そんなこといちいち書かなきゃいけないのw?rubyなら組込メソッドで一発だよwww
「時間は?」
       ____
    /      \
   /  ─    ─\
 /    (●) (●) \ 必要ない。計算すればいい
 |       (__人__)    |
 \     ` ⌒´   /
,,.....イ.ヽヽ、___ ーーノ゙-、.
:   |  '; \_____ ノ.| ヽ i
    |  \/゙(__)\,|  i |
    >   ヽ. ハ  |   ||

964 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 18:40:12.63 ID:+90qRIYS.net]
RubyはUNIX文化だから、時刻はUNIXタイムスタンプを生で扱うのが基本
MRIのコアの連中自身が使ってないから改善されないんだろう

965 名前:デフォルトの名無しさん [2018/04/11(水) 00:12:29.76 ID:5V3NvSPI.net]
rubyなら日本の休日祝日にも対応してるはず

966 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 07:23:56.00 ID:jfPKheqL.net]
【短命に終わった】国民の祝日.csvをパースして変換するRubyプログラムとコード解説
https://youtu.be/h0WlWPfQ0Sw

伊藤淳一の動画ある

967 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 22:47:53.01 ID:Hxh7hpmx.net]
Windowsの文字エンコードはどうなってんだよ呪われてるな。



968 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 22:56:58.03 ID:AzlDcdDn.net]
Windowsの文字エンコードはLinux/Unixよりも対応の幅が広い。

まずNT系は古くからUnicode(UTF-16)に対応
Unicode対応アプリであれば全世界で共通に使える

それでいて9x系との互換性のために、Unicodeに対応してないアプリは
それぞれの国のエンコード設定が使用される

その設定はコントロールパネルから変更できるのだが
その変更できる文字コードがLinux/Unixよりも遥かに多い
しかもANSIと互換性がない文字コードでも使用可能

969 名前:デフォルトの名無しさん [2018/04/14(土) 03:27:42.04 ID:lnTeyTPJ.net]
chcp 65001 バグ治してから言え

970 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 03:48:53.88 ID:6pCy057f.net]
>>944
それはどちらかと言えばコマンドプロンプトの問題なんだが、
WSL対応関係で強化されて、めだった

971 名前:s具合なくなってるよ []
[ここ壊れてます]

972 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:31:41.02 ID:r1bqrkta.net]
OneDriveでコード管理していたのだけど、
久しぶりにコーディング(エディタはVSCode)してOneDrive上のRubyファイルを実行しようとしたら
[BUG] Segmentation fault
というエラーがでて、
puts 'A'
というコードさえ実行出来なくなっていた。

ローカルハードディスクに落としたら実行出来たんだけどどうしたものだろう。

973 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:49:45.43 ID:0NMpmKAm.net]
UTF-16とかじゃねーの?

974 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 22:51:17.13 ID:MhEmdnyU.net]
そっか。
ありがとうございます。

別にOneDriveをストレージにしても問題ないということだね。
試行錯誤してみます。

975 名前:デフォルトの名無しさん [2018/04/15(日) 23:30:04.01 ID:xpwShDOv.net]
WebDAVか

976 名前:945 mailto:sage [2018/04/16(月) 07:27:54.33 ID:1U+gAd+J.net]
GoogleDrive上のRubyファイルは動いた。

何か仕様変更があったのかしら。
ともかく、現状、GoogleDriveでコード管理することにします。

977 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 08:55:29.96 ID:PnJWHI/9.net]
なぜGitを使わないのか
BitBucketなら無料でプライベートリポジトリ持てるぞ



978 名前:デフォルトの名無しさん [2018/04/16(月) 09:47:03.26 ID:75OnkAat.net]
Azureで自前のgitとSSH鯖で桶

979 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 09:53:08.11 ID:PnJWHI/9.net]
AzureならGitはVSTS使うのが普通だろ
AWSならCodeCommit使えば完全無料だ
今時たかがGitのホスティングごときにサーバー運用の手間かけるとか頭悪すぎ

980 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:08:13.69 ID:pZQ1SPWZ.net]
じゃあ、これも
Google Cloud Platform でホストされている複数のプライベート Git レポジトリ
https://cloud.google.com/source-repositories/?hl=ja

5ユーザー、50GBストレージ、50GB通信量(下り)まで無料だから
個人用途なら無料で使えそうだね

981 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:10:23.68 ID:pZQ1SPWZ.net]
> AWSならCodeCommit使えば完全無料だ

AWSの方は完全無料なのか?って思ったら
やっぱり無料制限あるじゃんw
だいたい一緒みたいね

https://aws.amazon.com/jp/codecommit/pricing/
最初の 5 人のアクティブユーザー
50 GB のストレージ/月
10,000 回の Git リクエスト/月

982 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:31:35.04 ID:X9HGFo0K.net]
>>955
実働20日として一人あたり一日平均100コミット?
これ超過できる超人いるのかよ

983 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:33:36.56 ID:X9HGFo0K.net]
いやコミットじゃなくてプッシュやフェッチか
人間の手動操作なら事実上無制限だな

984 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:40:27.16 ID:pZQ1SPWZ.net]
>>957
1 push 1リクエストとは限らんぞ、どういう計算しているか知らんけど、
例えば1 pushに含まれる1ファイルが1リクエストになってるかもしれない
そう考えるとGoogleの方がわかりやすいかもね。

985 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 10:45:48.83 ID:pVewTO76.net]
>>958
ファイル単位なら1万くらいcloneや最初のpushで一発で超過するじゃん
一般的な使い方で超過することはめったにないって書いてるからさすがにそれはないだろ

986 名前:デフォルトの名無しさん [2018/04/16(月) 15:08:56.12 ID:lu0LQeBN.net]
>>960
踏んだらすれたてよろしく

987 名前:デフォルトの名無しさん [2018/04/16(月) 15:17:41.22 ID:r1/f7Sud.net]
うんこ



988 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 15:20:39.48 ID:pZQ1SPWZ.net]
↑うんこ踏んだ奴

989 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 16:18:05.44 ID:ZFIHRn8x.net]
うんこってrubyのこと?

990 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 17:10:36.81 ID:tsXOlUfW.net]
>>953
gitだけしか使わないわけないだろ

991 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 17:25:19.50 ID:pZQ1SPWZ.net]
>>964
今はgitの話では

992 名前:H
他のことしたいなら、他のもの使えばいいだけだし
gitは○○を使うって話をしてるんだよ
[]
[ここ壊れてます]

993 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 18:47:04.65 ID:PnJWHI/9.net]
>>965
たぶん963は、サーバーをGitだけでなく他の用途にも使うと言ってるんだと思うよ
すごく筋の悪い思考だと思うけどね

994 名前:デフォルトの名無しさん [2018/04/17(火) 03:27:09.27 ID:QMWYQNUe.net]
スジはなめるためにある

995 名前:デフォルトの名無しさん [2018/04/17(火) 17:49:09.11 ID:GYuBFjQi.net]
次スレ
Ruby 初心者スレッド Part 63
https://mevius.5ch.net/test/read.cgi/tech/1523954817/

996 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 23:55:53.10 ID:AHLVIZ+p.net]
>>966
なんで筋が悪いと思うんだ?

997 名前:デフォルトの名無しさん [2018/04/18(水) 00:43:52.27 ID:lRwbg5zI.net]
>>968
おつ



998 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 01:12:53.91 ID:6DBcsPYG.net]
>>969
逆に聞くが、あえてGit自前運用かつサーバー相乗りという選択肢を選ぶ積極的な理由が何か一つでもあるの?
コストが高い、信頼性が低い、運用が面倒臭い、便利なWebインターフェイスもない、CIなど外部との連携もしづらい
また、サーバーに複数のサービスを同居させるのは、運用が面倒になるので一般的には避ける方向で検討するのが基本だ
オンプレならハードのコストやハード運用も勘定に入れた結果そうせざるを得ない場合も多いが、
クラウドなら安く小さいサーバーを沢山持ててハード運用の手間もないから問題にならない

999 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 01:21:24.00 ID:UfQjex1N.net]
関数の取扱いが非常に筋の悪い言語があるらしい。
何かしらのメソッドとして表したいという、初期設計時のオナニーがこの事態を招いた。
block、proc、lambdaと笑っちゃうくらいぐっちゃぐちゃ。
どういうときにどの形式使えばいいのか、変換するルールは…
はい、お約束。全部覚えましょうw
一事が万事この調子だよなw
そのうち「3+5を計算する機能」レベルで組み込まれてしかも数通りバリエーションが仕込まれそうw
宣伝文句は「えーっ、3+5計算するのにそんなこと書かなきゃいけないの?wそれrubyなら組み込みの呼び出すだけで一発だよ?ww」

1000 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 02:03:46.12 ID:1MQV5vND.net]
>>971
git使うだけで面倒とかどれだけ初心者想定してんだよ
うちはredmineと連携させてるからwebからも見れるよ
バックアップも他と一緒にとってるから楽よ
別にホストがクラウドでないなんて言ってないし

1001 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 02:08:25.73 ID:1MQV5vND.net]
サーバーが、か

1002 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 16:47:32.90 ID:vghG7n/V.net]
ぼくがRubyを使う理由
www.eimei4coding.blog/entry/2017/07/17/164923

1003 名前:デフォルトの名無しさん [2018/05/03(木) 09:37:28.31 ID:vrPjbtA8.net]
なんかbundlerがエラー吐くようになってしまって困っています。
対応策は知りませんか?

Traceback (most recent call last):
2: from /usr/local/bin/bundler:23:in `<main>'
1: from /usr/local/lib/site_ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/usr/local/lib/site_ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)

1004 名前:デフォルトの名無しさん [2018/05/03(木) 12:26:03.69 ID:vrPjbtA8.net]
bundler -v
も動かないです。

1005 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 14:39:04.35 ID:M52LYEAa.net]
コンバトラーV

1006 名前:デフォルトの名無しさん [2018/05/03(木) 15:03:53.22 ID:bkPu29QU.net]
super electromagnetic yoyo

1007 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 19:04:14.74 ID:9RHeN1ko.net]
sudo gem install bundler



1008 名前:デフォルトの名無しさん [2018/05/04(金) 16:02:47.13 ID:FNtgJ1dj.net]
>>913
Ruby、Pythonが主流なのか?

俺、Ruby使いだけど、主流言語使ってる気分にはなれない。

1009 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 16:16:59.88 ID:YzOLlJfQ.net]
今主流言語と言えるのはJavaScriptのみだからね

1010 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 16:24:40.64 ID:plo/RuVs.net]
google、ms・・・流れ込んでる資金量・人員数が違う
あれだけ人・金かけられたらどんなクソ言語でも主流になる
そうさせたのはブラウザで唯一実行可能というアドバンテージだったがそういう意味では今後はrustやgoにも可能性はある
rubyはそれもない

1011 名前:デフォルトの名無しさん mailto:sage [2018/05/04(金) 17:01:30.15 ID:HDydWALv.net]
>>983
Dartの悪口はそこまでだ

1012 名前:デフォルトの名無しさん [2018/05/08(火) 04:34:33.88 ID:ws+EcsEk.net]
@lru_cache(maxsize=None)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)

>>> [fib(n) for n in range(16)]
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]

Ruby には、上のPython のような、デコレーターは無いの?

上はフィボナッチだが、引数・答えを、メモ化するような関数はある?

1013 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 07:23:01.16 ID:6Z/Mi3tg.net]
>>985
古い記事だけど、例もフィボナッチでちょうどよさげ
mickey24.hatenablog.com/entry/20100906/1283769623

1014 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 07:44:23.18 ID:6Z/Mi3tg.net]
gem もあった
https://github.com/matthewrudy/memoist

1015 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 09:01:44.06 ID:ws+EcsEk.net]
class A
def initialize (a = 5)
@a = a
end
p (0..@a)
end

p a = A.new

>p (0..@a)
@a が初期化されていないのか、エラーになる

クラス内の地の文は、A.new・initializeよりも、先に実行されてしまうのか?

>>986-987
ありがとう

1016 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 09:09:56.84 ID:XzXTdruW.net]
>>988
その通り。具体的にはファイルを読み込んだ時に実行されるよ

1017 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 12:18:20.40 ID:XzXTdruW.net]
スレたてられなかったから誰か代わりに建ててくれないか

>>988
ついでだけどその書き方だと p (0..@a) の @a は A のインスタンスのインスタンス変数じゃなくて、 A という『Class クラスのインスタンス』のインスタンス変数だから注意ね



1018 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 14:05:39.62 ID:XzXTdruW.net]
と思ったら結構前に次スレ立ってたんだね……重複しなくてよかった
https://mevius.5ch.net/test/read.cgi/tech/1523954817/

1019 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 22:51:57.39 ID:FvmTtIIh.net]
>>988
クラス内の文は、記述順に実行される。
defは、メソッド定義の宣言部というよりは、実行文なので、同様。

1020 名前:987 mailto:sage [2018/05/08(火) 23:24:38.69 ID:ws+EcsEk.net]
class A
def initialize (a = 5)
@a = a
puts "init : #{@a.class}" # 1
end

puts @a.class # 2
end

p a = A.new
p b = A.new(2)

出力結果
NilClass

init : Integer
#<A:0x00000000050dc230 @a=5>

init : Integer
#<A:0x00000000050dc078 @a=2>

実行前のファイル読み込み時に、1回だけ、#2 puts が呼ばれて、
initialize内の#1 puts は、new 毎に呼ばれる

1021 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 23:28:50.06 ID:XzXTdruW.net]
当たり前だと思うのだが、何が言いたいのか不明

1022 名前:デフォルトの名無しさん mailto:sage [2018/05/09(水) 00:19:25.75 ID:p+TFQEkm.net]
ファイル内の空行数を数える

ruby -e "puts File.read(\'test22_data.txt\').scan(/^$/).length"
ruby -e 'puts File.read(\"test22_data.txt\").scan(/^$/).length'

Windows PowerShell で、1-liner を実行する際、
クォーテーション内に、クォーテーションがある時に、\ でエスケープしないと、
PowerShell が、内側のクォーテーションを除去してしまって、エラーになるけど、
皆こういう場合、どうしてる?

1023 名前:デフォルトの名無しさん mailto:sage [2018/05/09(水) 00:37:53.06 ID:aySw10Ot.net]
WindowsでRubyは苦行

1024 名前:デフォルトの名無しさん mailto:sage [2018/05/09(水) 02:06:31.30 ID:VltSHCvQ.net]
>>995
%qクォートを使う。

1025 名前:デフォルトの名無しさん [2018/05/09(水) 08:36:03.80 ID:DadRmw9B.net]
>>996
+1

1026 名前:デフォルトの名無しさん [2018/05/09(水) 08:36:55.27 ID:DadRmw9B.net]
>>997
ほんそれ

1027 名前:デフォルトの名無しさん [2018/05/09(水) 08:37:56.36 ID:DadRmw9B.net]
>>995
1-liner にこだわるのはなぜ



1028 名前:デフォルトの名無しさん [2018/05/09(水) 08:38:27.55 ID:DadRmw9B.net]
Ruby 初心者スレッド Part 63
https://mevius.5ch.net/test/read.cgi/tech/1523954817/

1029 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 166日 8時間 2分 58秒

1030 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<287KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef