タグ

ブックマーク / ksss9.hatenablog.com (6)

  • YARDタグからRBSを生成する - スペクトラム

    YARD YARDはドキュメンテーションツールです。 Rubyのコメントに # @param [String] a # @return [void] def foo(a) end みたいな記述を見たことがありませんか? この@paramがYARDのタグ名、[String]がタグのもつ型情報です。aは引数の名前ですね。 YARDではこの型情報を元にリンクを貼ったwebページを生成したりできます。 rubydoc.infoがまさにYARDによって生成されていますね。 RBS RBSはRuby公式の型を記述する書式、およびツールの名前です。 こんなかんじです。 def foo: (String a) -> void YARD to RBS では # @param [String] a # @return [void] def foo(a) end とかかれたソースコードを読み込んで def fo

    YARDタグからRBSを生成する - スペクトラム
    mitukiii
    mitukiii 2022/10/20
  • 地味すぎて誰も気がついていないCRuby 2.5の新機能 - スペクトラム

    did_you_mean gemがKeyErrorにも効くようになったよ KeyErrorは指定したkeyに対するvalueが見つからなかったときに起こる例外で、IndexErrorから派生したものです。 KeyErrorが起こり得るのはHash#fetch Hash#fetch_values ENV.fetch Kernel.sprintf String#%の5つです。 このメソッド達で、探したkeyが見つからなかったときに近しい候補をサジェストしてくれるようになっています。 $ ruby h = {foo: 1, bar: 2} h.fetch(:bax) Traceback (most recent call last): 1: from -:2:in `<main>' -:2:in `fetch': key not found: :bax (KeyError) Did you me

    地味すぎて誰も気がついていないCRuby 2.5の新機能 - スペクトラム
    mitukiii
    mitukiii 2018/01/09
  • 最終出社日です - スペクトラム

    逃げるは恥だが役に立つ 皆さんは逃げ恥観ましたか。 私は5日間で11話全部観ました。TBSオンデマンドで登録すると最初の2週間無料とききつけて登録(したのはだけど)。普段からTVは観ない二人なので、始めの2話を観た日は刺激が強すぎるのか二人して寝付けませんでした。 最終話はティーバで無料で観れました。 マンガも8巻まで買って(買ったのだけど)読みました。 なんかこう状況が自分たちに被る部分が多かったので大いに感情移入しちゃって「わかるー!」を連発しつつ、二人でみていたわけです。 私は風見さんが好きです。 ああいう風になりたい。「僕は性格が悪いんです」とか言ってみたい。「すいません。」って笑顔で言うの、ズルい。正直で率直かつ相手の気持を気遣える。そこにシビれるあこがれる。 「イケメン」という偏見によって傷ついてきたキャラというのもいい。「イケメン」っていう言葉はもはや褒め言葉ではないした

    最終出社日です - スペクトラム
    mitukiii
    mitukiii 2016/12/27
  • GitHubの草を連続40日間生やしてみたけどやめた - スペクトラム

    https://github.com/ksss rebuild.fmの#120を聞いて、jQueryの作者が始めた「毎日コードを書く」というやつを40日間やってみた。 rebuild.fm John Resig - Write Code Every Day よかったこと アウトプットがふえた 毎日コードを書くというルールなので、 アウトプットは多くなった。 手持ちのリポジトリを大幅に整理したり、PRも10件ぐらい飛ばした。 毎日コードを書くと、コンテキストスイッチのオーバヘッドが小さくなるというのは当で、 お風呂に入っている時にアイデアが思いつく事もあった。 無意識領域の脳リソースをうまく使うことができてるのかもなあと思った。 よくなかったこと インプットがへった アウトプットのために使う時間を必ず確保するので、アウトプットからインプットへコンテキストスイッチするオーバーヘッドは増加した

    GitHubの草を連続40日間生やしてみたけどやめた - スペクトラム
    mitukiii
    mitukiii 2016/02/01
  • RubyのTempfile.createが便利 - スペクトラム

    Tempfileの実装を調べようとCRubyのコードを読んでいたら見知らぬコードを発見した。 それは僕がほしくてとっさに作ったものそのものだった(それ以上だった) http://docs.ruby-lang.org/ja/2.2.0/method/Tempfile/s/create.html Tempfile.createはTempfile.openと似ているようでちょっと違う。 Tempfile.openではブロックの終了時(close時)ではなくGCのタイミングでファイルを削除する。 Tempfileはプログラムが異常終了してもファイルが消えた状態になるので慣例的に即unlinkして使う事が多い。 そのためpathをとったりファイルの存在確認をしたりということはあんまりないんだけど、 外部コマンドを使いたい場合はやっぱりpathがあると便利。 かといってGCタイミングでファイルを削除と

    RubyのTempfile.createが便利 - スペクトラム
    mitukiii
    mitukiii 2015/07/21
  • 何もしないファイルアップローダーTori - スペクトラム

    Toriというgemを書いた。 ToriはPaperclipやCarrierwaveなどと同じくファイルのアップローダ。 ファイルアップローダは機能が豊富だったりする反面、ハマることが多かったり結局コードを読むことになるけど、機能豊富がゆえコード量に気が滅入ったりする。 そこで新しいファイルアップローダを考えた。 というか既にあるものからできるだけ機能を削った。 目指した特徴は「なにもしない」こと。 極限までシンプルなものを目指した。 画像処理をしない 昨日書いた通り、画像処理をアプリケーションサーバでやるのはイマイチだ。 だったらファイルアップローダに画像処理機能はいらない。 アップロード時だろうがアクセス時だろうが一切何もしない。 imagemagickにも依存しない。 DBに専用カラムを用意しない PaperclipやCarrierwaveではファイル名を決めるためにDBに専用のカラ

    何もしないファイルアップローダーTori - スペクトラム
    mitukiii
    mitukiii 2015/01/27
  • 1