タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

RubyとrubyとRBSに関するWatsonのブックマーク (6)

  • Ruby: SorbetにRBSのインラインコメント機能が追加された(翻訳)|TechRacho by BPS株式会社

    概要 CC BY-NC-SA 4.0 International Deedに基づいて翻訳・公開いたします。 英語記事: Inline RBS comments support for Sorbet | Rails at Scale 原文公開日: 2025/04/24 原著者: Alexandre Terrasa CC BY-NC-SA 4.0 Deed | 表示 - 非営利 - 継承 4.0 国際 | Creative Commons Sorbetは、Shopifyにおけるコードの読み取りや理解、そしてメンテナンスを大きく改善してくれました。しかし率直に申し上げると、Sorbetそのものの構文は必ずしも読みやすいとは言えません。 記事では、Sorbetに「RBS形式のインラインコメント」機能をどのようにして追加したかを解説します。Sorbetの強力な型安全性や型チェックの速度を損なわない

    Ruby: SorbetにRBSのインラインコメント機能が追加された(翻訳)|TechRacho by BPS株式会社
  • RuboCop on RBS on rbs - スペクトラム

    rbsリポジトリでrubocop-on-rbsが導入された。 Introduce rubocop-on-rbs by ksss · Pull Request #1899 · ruby/rbs · GitHub RuboCopはすでにrbsリポジトリで使われていて、rubyファイルに対しての指摘はすでに行われていた。この変更によってRBSファイルに対しても様々な細かなチェックを自動的に行えるようになった。 この導入はさまざまなリポジトリへのrubocop-on-rbsの導入モデルケースにもなると思っていて、GitHub Actionsでの自動的な指摘コメントを入れるよう設定もしている。 RuboCopが指摘するものは、はっきり言ってしょうもないことかもしれない。しかし、そのしょうもないことを自動的に勝手にチェックし続けてくれて、運用され続けてくれることには、レビュー負荷を下げるなどの価値があ

    RuboCop on RBS on rbs - スペクトラム
  • RuboCop on RBS - スペクトラム

    rubocopをRBSファイルにも効かせたい - スペクトラム で作ってたものが大体できてきて、rbs v3.5もリリースされたので公開できるようになりました。 これでRuboCopをRBSファイルにも使用できるようになりました。 github.com 例えば class Foo def foo: () -> void end というRBSをレビューする時「インデント入れてね」と指摘したくなりますよね。Rubyファイルならrubocopでできるのに、RBSファイルではrubocopで指摘できないという問題がありました。あるんです。きっと。というわけで、できるようにしました。 とりあえず初期バージョンでは20以上のルールを用意しています。 autocorrect(自動修正)にも対応しているので、いつものようにrubocop -aしてあげれば class Foo def foo: () ->

    RuboCop on RBS - スペクトラム
    Watson
    Watson 2024/06/09
    便利そう
  • SteepのAnnotationに関する備忘録 #asakusa_bashi_rbs - アジャイルSEの憂鬱

    Steepのmanual/annotations.mdを読みながら、実際にコードを書いて覚えたことをブログにまとめる。 変数 変数の型を String? から String にするときに便利そう。 # @type var value: String value = %w[a b c].sample puts('Hi, ' + value) アノテーションがない場合、 sample: () -> String? なので型検査エラーになる。 app/user.rb:2:14: [error] Cannot pass a value of type `(::String | nil)` as an argument of type `::string` │ (::String | nil) <: ::string │ (::String | nil) <: (::String | ::_ToSt

    SteepのAnnotationに関する備忘録 #asakusa_bashi_rbs - アジャイルSEの憂鬱
  • RBSをテストコードにする - スペクトラム

    DALL-Eより: Imagine a scene where the abstract concepts of Ruby programming and property-based testing blend harmoniously. Picture a large, glowing ruby crystal まいどお馴染み、作ってみたシリーズです。 今回は、RaaP(ラープ)というツールを作りました。RBS as a PropertyでRaaPです。 github.com RaaPはテスティングツールの一種で、RBSをそのままテストコードにみたてて実行してくれるツールです。 次のようなRBSがあったとして class Foo end class Bar def initialize: (foo: Foo) -> void def f2s: (Float) -> String end

    RBSをテストコードにする - スペクトラム
  • RBSのuntyped, void, top, botの違いを理解する #asakusa_bashi_rbs - アジャイルSEの憂鬱

    RBSのdocs/syntax.mdに記載されている untyped, void, top, bot の違いを理解したけど、また忘れそうなのでブログにまとめておく。 untyped どんな型でも代入できて、その変数を型検査の対象にしない場合に使う。 # ruby class User def greet(user) user.something end end # rbs class User def greet: (untyped) -> void end something メソッドの定義は存在しないのに、Steepの型検査でエラーは出ない。 No type error detected. 🫖 void メソッドの戻り値を使わない場合に使う。 # ruby class User def foo bar.upcase end def bar "hello" end end # rbs

    RBSのuntyped, void, top, botの違いを理解する #asakusa_bashi_rbs - アジャイルSEの憂鬱
  • 1