タグ

ブックマーク / qiita.com/jnchito (12)

  • サンプルコードでわかる!Ruby 3.2の主な新機能と変更点 - Qiita

    はじめに Rubyは毎年12月25日にアップデートされます。 Ruby 3.2は2022年12月25日に3.2.0が正式リリースされました。 この記事ではRuby 3.2で導入される変更点や新機能について、サンプルコード付きでできるだけわかりやすく紹介していきます。 ただし、すべての変更点を網羅しているわけではありません。個人的に「Railsアプリケーションの開発時に役立ちそうだな」と思った内容をピックアップしています。記事で紹介していない変更点も多数ありますので、以下のような情報源もぜひチェックしてみてください。 備考:記事は以下の記事を「プロを目指す人のためのRuby入門 改訂2版」をお持ちでない方向けに再編集したものです。 動作確認したRubyのバージョン 記事は以下の環境で実行した結果を記載しています。 フィードバックお待ちしています 文の説明内容に間違いや不十分な点があっ

    サンプルコードでわかる!Ruby 3.2の主な新機能と変更点 - Qiita
  • 【Opal】娘のために作ったRubyプログラムをブラウザ上で動かしてみた - Qiita

    はじめに この記事はRuby Advent Calendar 2020 19日目の記事です。 さて、突然ですが、最近僕の娘がハイキュー!!というアニメのカードを集めるのにハマり始めました。 このカードは1枚110円で、全部で55種類あります。 当然ながら娘は全種類集めたい!と言います。 僕が調べた範囲では特にレアカードの設定はないようなので、「どのカードも出てくる確率は同じ」と仮定した上でカードを買い続けたら、いったいどれくらいの枚数を買うことになるんだろう?と思いました。 そこでRubyを使って簡単なシミュレーションプログラムを作ってみました。 require 'set' class Simulator NUMBER_OF_TYPES = 55 def self.simulate set_of_cards = Set[] all_types = (1..NUMBER_OF_TYPES).

    【Opal】娘のために作ったRubyプログラムをブラウザ上で動かしてみた - Qiita
  • Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 - Qiita

    Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜RubyrbsSteepTypeProf はじめに Ruby 3.0ではRubyのコードに型定義情報を提供するRBSという仕組みが導入されます。 この記事では簡単なサンプルプログラムを通して、RBSとその周辺ツールの使い方や役割を説明します。 なお、説明する内容はあくまで初歩的な内容です。予めご了承ください。 動作確認時の実行環境 記事の執筆時点ではまだRuby 3.0は正式にリリースされていません。 正式リリース時、または今後のバージョンアップによってこの記事の内容と実際の挙動が異なる可能性もあります。 記事の執筆時に使用した実行環境は以下のとおりです。 Ruby 3.0.0dev (2020-11-13T16:46:08Z master 782621054

    Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 - Qiita
  • 使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita

    はじめに RSpecは難しい、よくわからない、といったコメントをときどき見かけます。 確かにちょっと独特な構文を持っていますし、機能も結構多いので「難しそう」と感じてしまう気持ちもわかります。 (構文については僕も最初見たときに「うげっ、なんか気持ちわるっ」と思った記憶がありますw) しかし、RSpecに限らずどんなフレームワークでも同じですが、慣れてしまえばスラスラ書けますし、実際僕自身は「RSpecって便利だな-」と思いながらテストコードを書いています。 そこでこの記事では、僕が考える「最低限ここだけを押さえていれば大丈夫!!」なRSpecの構文や、僕が普段よく使う便利な機能をまとめてみます。 具体的には以下のような構文や機能です。 describe / it / expect の役割 ネストした describe context の使い方 before の使い方 let / let!

    使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita
  • 「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集 - Qiita

    はじめに テストコードを書くことは重要です。 テストコードがないアプリケーションよりもテストコードがあるアプリケーションの方が望ましいことは間違いありません。 ですが、テストコードも書き方を間違えると、アプリケーションが壊れているのに正しく検知できないテストを書いてしまう可能性があります。 この記事ではそんな「アプリケーションが壊れているのに正しく検知できないテスト」のコード例を「〜するべからず(〜してはいけない)」の形式で紹介し、その修正方法を説明していきます。 サンプルコードはRSpecで書いてます(でも他の言語でも考え方は同じはず) サンプルコードはRailsアプリケーションをRSpecでテストする場合を想定したものになっていますが、基的な考え方自体は他の言語やテスティングフレームワークでも適用可能なはずです。 RSpecのイロハについて先に学んでおきたいかたは「使えるRSpec入

    「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集 - Qiita
  • 【翻訳】URI.escapeは非推奨メソッドです。あなたのクエリ文字列をパーセントエンコードするには - Qiita

    warning: URI.escape is obsolete warning: URI.encode is obsolete この警告の直し方を見ていきましょう! 歴史について少しだけ Ruby 2.7.0ではURI.escapeまたはエイリアスメソッドのURI.encodeを呼びだしたときに警告が出ます。これはあたかも新しく追加された警告のように見えますが、実際はなんと・・・10年以上も非推奨とされ続けていたのです!どうしても今までこの警告を目にしなかったんだろう?と不思議に思っている方へ。答えはこうです。これまではverboseモードでスクリプトを実行したときだけ表示されていました。そして、この仕様が最近変わりました。これがその理由です。 じゃあなんでURI.escapeは非推奨メソッドなの? 「URIをエスケープする」という概念は実はやっかいです。なぜならURIは多数の要素(pat

    【翻訳】URI.escapeは非推奨メソッドです。あなたのクエリ文字列をパーセントエンコードするには - Qiita
  • 超シンプルなRuby向けテスティングライブラリ、TestRocketを使ってみた - Qiita

    今週のRuby Weeklyで TestRocket というテスティングライブラリが紹介されていたので、試しに使ってみました。 対象となるバージョン testrocket 1.0.0 セットアップ gemをインストールすればOKです。

    超シンプルなRuby向けテスティングライブラリ、TestRocketを使ってみた - Qiita
  • 検索結果を要チェック!Rubyの公式リファレンスは docs.ruby-lang.org です 〜公式な情報源を調べるクセを付けよう〜 - Qiita

    検索結果を要チェック!Rubyの公式リファレンスは docs.ruby-lang.org です 〜公式な情報源を調べるクセを付けよう〜Ruby 2020.1.7追記:AmiWiki(ref.xaio.jp)は閉鎖されるようです 記事で登場する非公式リファレンスサイト、AmiWiki(ref.xaio.jp)は閉鎖されるようです。 参考:2020.1.7時点のhttps://ref.xaio.jp/ruby の表示内容↓ 2020.1.22追記:2020年1月22日時点の検索結果について 文の中で「"ruby compact"というキーワードで検索した結果」を載せていますが、2020年1月22日時点で同じ検索をすると公式リファレンスがトップに表示されるようになっていました。(AmiWikiは上位には表示されませんでした) また、AmiWikiは検索結果をクリックすると、公式リファレンスに

    検索結果を要チェック!Rubyの公式リファレンスは docs.ruby-lang.org です 〜公式な情報源を調べるクセを付けよう〜 - Qiita
  • Rails開発におけるwebサーバーとアプリケーションサーバーの違い(翻訳) - Qiita

    はじめに 先日スタック・オーバーフローでこんな質問に回答しました。 webサーバー、アプリケーションサーバー、Rackといった仕様や概念と、WEBrick、Unicorn、Pumaといった実装の関係が頭の中で結びつきません 質問者の方はwebサーバー、アプリケーションサーバー、Rack、Unicorn、Pumaと言った用語や概念の理解がこんがらかっているように見えたので、このあたりをきれいに説明している記事を探していたところ、以下の記事を見つけました。 A web server vs. an app server - Justin Weiss スタック・オーバーフローでは記事の一部を抜粋して「ざっくり翻訳」したのですが、それだけで終わらせるのはもったいない気がしたので、Qiitaには全文を翻訳して載せておこうと思います。 これを読むと、あなたもwebサーバーとアプリケーションサーバーの違い

    Rails開発におけるwebサーバーとアプリケーションサーバーの違い(翻訳) - Qiita
    sonota88
    sonota88 2016/06/17
  • RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita

    RubyRailsにおけるTime, Date, DateTime, TimeWithZoneの違いRubyRails 2021.2.11追記:DateTimeクラスは非推奨なクラスになりました DateTimeクラスは非推奨なクラスとなり、DateTimeクラスではなくTimeクラスを使うよう、公式にアナウンスされました。 参考1 But we consider use of DateTime should be discouraged. - matz (Yukihiro Matsumoto) https://bugs.ruby-lang.org/issues/15712#note-4 参考2 DateTime は deprecated とされているため、 Timeを使うことを推奨します。 https://docs.ruby-lang.org/ja/latest/class/DateT

    RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita
  • Bundler バージョン1.10がリリースされました(翻訳) - Qiita

    はじめに 日、Bundler 1.10.5 がリリースされました。 このバージョンは新機能が追加されただけでなく、最近Rubyの開発現場を混沌とさせていたBUNDLED_WITH問題を改善するための変更も含まれています。 新機能やBUNDLED_WITH問題の改善に関する詳しい情報は以下のブログに書かれています。 Bundler: Version 1.10 released ただし、結構な量があるので英語に詳しい人でないと読み下すのがしんどいかもしれません。 そこでこのブログの内容を日語訳してみることにしました。 翻訳を読んでもらえれば分かると思いますが、 Bundlerの開発チームはみなさんが Bundler 1.10にアップグレードすることを強く推奨しています。 私たちもできるだけ早くBundler 1.10以上(最低でも1.9.10)にアップデートして、Bundler 開発チーム

    Bundler バージョン1.10がリリースされました(翻訳) - Qiita
    sonota88
    sonota88 2015/06/27
  • Rubyでメソッドの定義場所を見つける方法 - Qiita

    RubyはModuleで組み込まれたメソッドや、method_missingを利用した「ゴーストメソッド」など、自分の見ているメソッドがそのクラス以外のどこで定義されているのか、分かりにくいケースがよくあります。 特にJavaやC#から移ってきた僕のようなプログラマは、「メソッド = どこかのクラスで定義されているもの」という印象が強いので、「持ち主がよく分からないメソッド」の存在はデバッグ等で苦労させられます。 こういったケースでは、Kernel#methodとMethod#source_locationを組み合わせることで、メソッドの定義場所を見つけることができます。 たとえば、rails consoleでblank?メソッドの定義場所を見つけたい場合は、こんな感じです。 $ rails c > 'x'.method(:blank?).source_location => ["/Use

    Rubyでメソッドの定義場所を見つける方法 - Qiita
  • 1