並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 67 件 / 67件

新着順 人気順

RBSの検索結果41 - 67 件 / 67件

  • 作って学ぶRuby3 静的型解析・RBS入門

    Ruby 3 の静的型解析について 私が業務で Ruby を書いていた時期は数年前で最近の Ruby についてキャットアップが遅れていました。 最近は Go・TypeScript など型を書くことがほとんどなので Ruby 3 系で導入された型解析について気になっていました。 Ruby って型が無いよねと肩身が狭い生活をしているので(型だけに)、Ruby でも出来らあっ!というところを見せたいと考え書いてみることにしました。 作るもの HackerNews API を利用して HackerNews の API Client を作ります。要件は以下です。 gem として実装する これはなんやかんやで私が gem を書いたことがないので勉強の一環です。特に gem で書く必要はありません rake タスクを実行すると Hacker News のトップページに相当する情報(タイトル, point

      作って学ぶRuby3 静的型解析・RBS入門
    • Announcing RBS support for AWS SDK for Ruby V3 | Amazon Web Services

      AWS Developer Tools Blog Announcing RBS support for AWS SDK for Ruby V3 RBS is a language to describe the structure of Ruby programs. We are happy to announce that AWS SDK for Ruby V3 now supports RBS type signatures! RBS support is released in aws-sdk-core version 3.191.0 and in every service gem (such as aws-sdk-s3) that depends on this version of core. RBS signatures are currently code generate

        Announcing RBS support for AWS SDK for Ruby V3 | Amazon Web Services
      • 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をテストコードにする - スペクトラム
        • 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 - スペクトラム
          • Ruby typing 2024: RBS, Steep, RBS Collections, subjective feelings — brandur.org

            Ruby typing 2024: RBS, Steep, RBS Collections, subjective feelings I was writing a new Ruby gem recently, and being a strong proponent of a type checking step, I wanted to do right by the ecosystem so that anyone using it would get the full benefit of type checking against my gem’s API in their own projects, so I dug into the current state of the art to find out how that’d be done. I used Sorbet f

              Ruby typing 2024: RBS, Steep, RBS Collections, subjective feelings — brandur.org
            • 今日からneovimでRubyの型(RBS)を書き始める方法 + 実際に書いてみた感想 - joker1007’s diary

              しばらくRubyをあんま触ってない日々が続いてたんですが、オフラインでRubyKaigiに参加したKaigiEffectということでやる気が甦ってきたので、型を真面目に書くための準備を整えようと色々とやってました。 RubyKaigiでモダンなRubyの開発体験のデモをいくつか見たんですが、大体VSCodeだったのが生粋のVimmerである自分としては残念だったので、neovimでも色々やれるぞという環境を整えておきたかったのも一つです。 という訳で色々環境が整ったのでまとめていきます。 ちなみに、今回の題材はrbsとSteepによる型検査です。sorbetとかもありますが、自分としてはrbsの書式の方が圧倒的に好きなのでこちらでやっていきたいと思います。 (sorbetはRubyコードに直接書けるという大きなメリットはあるんだけど……) Steepを動かす まず対象のプロジェクトにSte

                今日からneovimでRubyの型(RBS)を書き始める方法 + 実際に書いてみた感想 - joker1007’s diary
              • Adding Type Signatures into Ruby Docs

                Since Ruby's beginnings, its documentation has been maintained by people who help and support the language. Before the core team releases a new version …

                  Adding Type Signatures into Ruby Docs
                • rbs collectionの基本と構成要素 - Money Forward Developers Blog

                  こんにちは。 id:Pocke です。マネーフォワードでは、クラウド会計Plus の開発と、今回お話する RBS のメンテナンスを行っています。 最近、福井県は若狭にある年縞博物館に行って楽しんできました。1 さてこの記事では rbs collection の基本と構成要素を解説します。 この記事を読むことで rbs collection がどのようなもので何をしているのかが理解できるようになるでしょう。 この記事では記事執筆時点での最新の、rbs v3.2.1 を対象としています。 rbs collection の基本的な使い方 rbs collection の基本的な使い方は簡単です。 設定ファイルの生成 まず、rbs collection initコマンドで設定ファイルを生成します。この生成は rbs collection を使い始める初回にのみ行います。 $ rbs collect

                    rbs collectionの基本と構成要素 - Money Forward Developers Blog
                  • RBSをCIに導入して型の恩恵を得たい - BOOK☆WALKER inside

                    こんにちは,相生ゆら(@Little_Rubyist)です.最近配信でクロノトリガーをやっているんですがあまりにも面白すぎてありとあらゆる知人に「クロノトリガーをやれ」と言っています. さて,入社から半年以上経過しましたがその話はまた別でやるとして,私の所属している部署では勉強習慣というのがあって,自分の興味のあることを業務時間中に勉強してもいい時間が存在します.各々色んなことをやっていますが,私はその時間で少しずつRBSを導入しています.まだあまり触れていないプロジェクトなのでコードリーディングをしながらゆっくり入れていこうと思っています. CI導入まで済んだのでこれを一区切りとし,どういったことをやっていたのかをご紹介します. 型導入の準備 とってもシンプルです.steep, rbs_rails, katakata_irbをGemfileに追加します.ライブラリの型も必要なので,rbs

                      RBSをCIに導入して型の恩恵を得たい - BOOK☆WALKER inside
                    • RBSから始める静的型付け生活

                      黒曜 / @kokuyouwind 名古屋在住 Leaner Technologies Inc. 所属 Railsエンジニア Next.js とか AWS 周りも触ってる We're Hiring!!!

                        RBSから始める静的型付け生活
                      • Steepによる型チェックの実践例

                        ybiquitous homepage; softwares, blog, slides, and so on.

                        • Embedding it into Ruby code

                          RubyKaigi 2024, Naha

                            Embedding it into Ruby code
                          • 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の憂鬱
                            • 既存のgemにRBSで型定義を書く | Kōhei Yamamoto

                              RBSの練習としてhatenablogというgemの型定義をRBSで書いた。 https://github.com/kymmt90/hatenablog/blob/v0.8.0/sig/hatenablog.rbs まだ該当gemのsigディレクトリに置いているだけだが、やったことを書いておく。 作業の流れ Ruby 3.0をインストールするなどしてrbs、typeprofは使える状態になっているとする。 TypeProfで型定義ファイルの雛形を生成する Steepを設定する rbs collectionでサードパーティgemの型定義を導入する steep checkを実行してエラーを確認する 型定義やコード本体を修正し、エラーを解消する CIでSteepを実行する ディレクトリ構造 次のようなディレクトリ構造とした。

                              • RBS meets LLMs - 大規模言語モデルを用いた型推論を試してみた

                                Leaner 開発チームの黒曜(@kokuyouwind)です。 RubyKaigi 2023 で「RBS meets LLMs - Type inference using LLM」と題して LT させていただきました。 そのうち本編のアーカイブ映像が出るはずですが、文字でも読めるよう大まかな内容を記事にまとめておきます。 また時間に収まりきらなかった内容も少し触れておくので、本編見ていただいた方も 本編に盛り込めなかった話 の節を呼んでもらえると嬉しいです。 発表スライド 以下の slides.com のものがマスターです。 フォントが中華フォントに化けてしまっていますが、一応 SpeakerDeck に上げたものも埋め込んでおきます。[1] 発表概要 Ruby の型定義ファイルである RBS を、 ChatGPT で推測できるか試してみました。 特に変数名や関数名の単語の意味を使うこ

                                  RBS meets LLMs - 大規模言語モデルを用いた型推論を試してみた
                                • 型付きRubyでパーサを書く(前編) - ローファイ日記

                                  K-Ruby という鹿児島のRubyコミュニティの忘年LT大会でRBSを使ってみた話をします。オンラインですが、九州盛り上げていきましょう! k-ruby.connpass.com それはそれとしてRBSというものに今回ちゃんと触れるので、触れた記録を雑にでも残していこうと思い、ブログを書きます。どれくらい後学のためになるのかならないのかわかりませんが、触ってみたライブな感想をなるべく残しておくのは意味があるでしょう、と。 @yoshikouki さんには「RailsにRBSを入れる方法を教えてください!」って言われてて、俺にRailsの話を聞くのか... って思ったんですけど、 まあその辺の面白そうなトピックは @yoshikouki さんのために取っておこうと思うので、僕はもうちょっと簡単なプログラム、そう、 プログラミング言語のパーサ をRubyで、型付きで書こうと思いました。 最初

                                    型付きRubyでパーサを書く(前編) - ローファイ日記
                                  • rbs subtractを使ってみる - Qiita

                                    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                      rbs subtractを使ってみる - Qiita
                                    • 【Ruby】RubyKaigi2023で興味を持った技術【RBS】 - Qiita

                                      はじめに RubyKaigi2023に先日、オンラインで一部参加させて頂きました。 正直言って自分自身の英語力の弱さと相俟って理解出来てない部分も、多数あったかなと思います。 今回はRubyKaigiで紹介されたスライドを紹介しつつ、初めて聞く単語も多かったので気になったもの新しく調べた内容と共にまとめていきます! UTF-8 is comming to mruby/c(DAY1) mruby/cはASCII(バイナリ)のみを使用してきましたが、UTF-8をサポートするようになったとのこと。 mruby/cで利用可能なUTF-8サポートをどのように実装したのかを説明されていました。 そもそもmruby/cって? 以下しまねソフト研究開発センターより引用 mruby/cは、Rubyの特徴を引き継ぎつつ、プログラム実行時に必要なメモリ消費量が従来のmruby(福岡で開発された組込み向けの軽量R

                                        【Ruby】RubyKaigi2023で興味を持った技術【RBS】 - Qiita
                                      • raapがrbsで使われ始めた - スペクトラム

                                        RBSをテストコードにするツールraapがrbsリポジトリで使われ始めた。 Introduce RaaP for testing of signature by ksss · Pull Request #1810 · ruby/rbs · GitHub rbsのCIでraapを走らせている。 現状はSet classでしか使っていないが、これから範囲を広げていきたい。 経緯 raapを作っていたら、「これはRBS::UnitTestを自動化するツールだな」と思い始めてきた。 テストコードを手で書くより、自動で100パターン実行してくれた方が、管理するものが減って、人間の思い込みを排除した確認ができ、早く、変更にも強い。 もともとrbsリポジトリに置かれた記述されたRBSファイルに対するテスト("RBSの記述は正しいか"を確認するコード)は結構カバレッジが低い部分もあり、これを埋めたかった。

                                          raapがrbsで使われ始めた - スペクトラム
                                        • RailsアプリケーションにおけるRBSの運用方法 - Studyplus Engineering Blog

                                          こんにちは。サーバーサイドエンジニアの山田です。 Rubyに型システムが入ってからしらばく経ちましたが、弊社のRailsプロジェクトの一部でもRBSを導入しました。 そのことについて昨年行われたKaigi on Rails 2022にて「RBSとSteepで始める型のあるRails開発とその運用」というタイトルで発表しました。 この記事では発表の内容についてあらためて整理した内容やその後の状況について紹介します。 記事の目的 RBSを導入した背景 対象となるRailsアプリケーション どうやって進めたか RBSの分類 ディレクトリ構成 自作クラス・モジュールなどのRBS GemのRBS(RBS Collectionにあり) GemのRBS(RBS Collectionになし) 当初の運用ルール 変更後の運用ルール RBS Railsから生成されるRBS 標準ライブラリのRBS CIの導入

                                            RailsアプリケーションにおけるRBSの運用方法 - Studyplus Engineering Blog
                                          • 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 - スペクトラム
                                            • RubyKaigi 2024 で RBS と LLM の話をしました

                                              Leaner 開発チームの黒曜(@kokuyouwind)です。 先日の RubyKaigi 2024で Let's use LLMs from Ruby 〜 Refine RBS types using LLM 〜 というタイトルで登壇させていただきました! 参加しての感想は別記事にするので、この記事では発表の概要や裏話などをまとめます。 動画アーカイブ 発表スライド 自分の発表資料は slides.com というサービスでスライドを作っています。 埋め込み表示ができませんが、上記リンクから開くと発表時のスライドがそのまま見られます。 一応 Speaker Deck にもアップロードしていますが、 PDF 出力時にフォントが化けてしまっているためちょっと見づらいです。 発表の簡単な概要 Ruby の型定義である RBS を手で書くのは大変だし、既存手法の rbs prototype rb

                                                RubyKaigi 2024 で RBS と LLM の話をしました
                                              • GitHub - ksss/orthoses

                                                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                  GitHub - ksss/orthoses
                                                • 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の憂鬱
                                                  • Video Tutorial: Get Started with RBS in RubyMine | The RubyMine Blog

                                                    Hello everyone, In this tutorial, you will learn how to add RBS to your project and get an overview of the main RBS features that RubyMine offers. For more information about this topic, read the section dedicated to RBS in the RubyMine documentation. Please feel free to share your feedback on our RBS support in the comments below, on our website, or on Twitter. And as always, please report any iss

                                                      Video Tutorial: Get Started with RBS in RubyMine | The RubyMine Blog
                                                    • gem_rbs_collection の新しいワークフローの紹介 | Webシステム開発/教育ソリューションのタイムインターメディア

                                                      先日、ある gem の型情報を gem_rbs_collection に投稿したところ、 ワークフローが以前と変わっていることに気づきました。 今回はこの新ワークフローを紹介します。 gem_rbs_collection とは? gem_rbs_collection は Ruby の型情報を収集しているリポジトリです。 Python の typeshed や TypeScript の DefinitelyTyped に相当します。 RBS では、型情報をいくつかの場所に分けて管理しています。 Ruby の組み込みクラス、標準ライブラリの型情報 rbs gem に収録 gem の型情報 gem 本体に同梱 gem_rbs_collection に収録 個々のアプリケーション内で管理 個々のアプリケーションの型情報 個々のアプリケーション内で管理 gem_rbs_collection は ge

                                                        gem_rbs_collection の新しいワークフローの紹介 | Webシステム開発/教育ソリューションのタイムインターメディア
                                                      • Railsチュートリアルのsample_appに型を導入

                                                        ふーが といいます。普段は Ruby on Rails を利用したアプリケーション開発をしているプログラマです。 この記事は Rails アプリケーションへの型導入を試してもらうことを目的とした記事です。主に Ruby on Rails チュートリアル (以下「Rails チュートリアル」と呼称)で学ばれた方向けに「静的型とはなにか」「Ruby での型の扱い」「Rails アプリケーションへの型導入方法」を知っていただくきっかけになればうれしく思います。 この記事では実際に手を動かしながら Rails アプリケーションに型を導入する手順を体験できます。題材として Rails チュートリアルの sample_app を使用させていただいています。 前提 型を導入するにあたり前提となる部分を簡単にご紹介します。「型」と聞いてイメージがつく方はこの段落は飛ばしていただいてかまいません。 型とは何

                                                          Railsチュートリアルのsample_appに型を導入

                                                        新着記事