-
RSpecモックの使用方法(ステップバイステップチュートリアル)
RSpecのモックとは何ですか? (または、これはRSpecに固有の概念ではないため、一般的なモックです。) モックはテストに使用されるオブジェクトです 。 モックを使用して、2つのオブジェクト間の相互作用をテストします。通常の予想のように出力値をテストする代わりに。 例 : 画像を反転させるAPIを作成しています。 独自の画像操作コードを作成する代わりに、 mini_magickのようなgemを使用します 。 コードとこの外部依存関係の間の相互作用をテストしたい …したがって、 ImageProcessorで正しいメソッドが呼び出されることを期待するモックを作成します。 クラス
-
プット、プリント、Pの違いを理解する
Rubyで何かを印刷する方法はたくさんあります。 これが最も便利です : プット 印刷 p しかし、これらはどのように異なりますか? そしていつどちらを使うべきか ? それがこの記事で学ぶことです! 改行なしで印刷する方法 ユーザーが見られるように画面に何かを印刷する場合は、通常、putsを使用します 。 このように : puts Hello there! Putsは、メッセージを使用するたびに、メッセージの最後に新しい行を自動的に追加します。 改行が必要ない場合は、printを使用してください 。 例 : print 123 次回printするとき 最後の
-
変数がRubyで定義されているかどうかを確認する方法
Rubyはこのdefined? 変数が定義されているかどうかを確認するのに役立つキーワード。 変数が存在する場合は、そのタイプを取得します : apple =1defined?(apple)# local-variable そうでない場合はゼロになります : defined?(bacon)#nil これは、Javascriptのtypeofのようなものです オペレーター。オブジェクトのクラスを知りたい場合は、classを使用してください これの代わりに方法。 注意すべきいくつかの興味深い点: defined? キーワードです 、メソッドではありません defined?
-
Rubyインタビューコーディングの課題とその解決方法
コーディングの課題を行うことは、Rubyと問題解決のスキルを向上させるための優れた方法です。そして、コーディングインタビューの準備 ! なぜですか? チャレンジ中は、1つの特定の問題を解決することに全力を注ぐからです。 他に何も心配する必要はありません。 この種の練習はあなたの思考スキルを拡大し、興味深い言語機能を探求することを可能にします &より優れたRuby開発者になりましょう。 これらの課題のいくつかは、数学のトリックのように、コンピューターアルゴリズム、データ構造、または概念に関する専門知識を必要とします。 これらのほとんどを解決できなくても大丈夫です。 心配しないでくだ
-
attr_accessor、attr_writer、attr_readerの使用方法
この記事は、属性アクセサー(attr_accessor)に関するものです。 )Rubyで。 お急ぎの場合は、下にスクロールしてください。 説明から始めたいので: 属性アクセサーを使用する理由 ! インスタンス変数を持つクラスがあり、それらを外部に公開したいとします。 どうやって? メソッドを定義する必要があります。 インスタンス変数にアクセスできるのはメソッドのみです。 なぜですか? これを行わないとエラーが発生するためです。 ここに例があります : class Food def initialize(protein) @protein = protein
-
Rubyテンプレートエンジン:ERB、HAML、Slim
ERBはテンプレートエンジンです。 テンプレートエンジンを使用すると、HTMLとRubyを混在させることができます。 したがって、データベースのデータを使用してWebページを生成できます。 ERBは、ビューをレンダリングするためのRailsのデフォルトエンジンです。 注:Railsは、ERBの代わりにerubiと呼ばれる実装を使用します Ruby標準ライブラリのクラス。 この記事の後半で学習するように、ERBを使用するためにRailsは必要ありません。 しかし最初に : ERBの構文の概要、RubyプロジェクトでERBを使用する方法、およびHAMLなどの他のテンプレートエンジン
-
Ruby2.6の9つの新機能
Rubyの新しいバージョンには、新しい機能とパフォーマンスの改善が含まれています。 変更についていきますか? 見てみましょう! 無限の範囲 Ruby 2.5以前のバージョンは、すでに1つの形式の無限範囲をサポートしています( Float ::INFINITY を使用) )、しかしRuby2.6はこれを次のレベルに引き上げます。 新しい無限の範囲 次のようになります: (1..) これは、(1..10)のような終了値がないため、通常の範囲とは異なります。 。 使用例 : [a, b, c].zip(1..) # [[a, 1], [b, 2], [c, 3]] [1,2,3,
-
Rubyエイリアスキーワードの使用方法
Rubyメソッドに別の名前を付けるには、次の2つの方法があります。 エイリアス(キーワード) alias_method 彼らはわずかに異なる方法で同じことをするので、これは紛らわしいトピックになる可能性があります。 この画像は違いの要約です : しっかりと理解するために、これらの違いをさらに詳しく調べてみましょう! エイリアスキーワード まず、aliasがあります 、これはRubyキーワードです(ifなど) 、def 、class 、など) このように見えます : alias print_something puts print_something 1 prin
-
Ruby 2.6のMJITとは何ですか?どのように機能しますか?
Rubyのパフォーマンスはバージョンごとに大幅に向上しており、Ruby開発チームはRubyをさらに高速化するためにあらゆる努力をしています! これらの取り組みの1つは、3×3プロジェクトです。 目標は? Ruby3.0はRuby2.0の3倍高速になります 。 このプロジェクトの一部は、この記事のトピックである新しいMJITコンパイラです。 MJITの説明 MJITは「メソッドベースのジャストインタイムコンパイラ」の略です。 それはどういう意味ですか? RubyはコードをYARV命令にコンパイルします 、これらの命令はRuby仮想マシンによって実行されます。 JITはこれに別のレ
-
Rubyでの複製とクローン:違いを理解する
Rubyでオブジェクトをコピーできることをご存知ですか?それだけでなく、これを行うには2つの異なる方法があります! これらの方法は : dup clone すぐに違いを探りますが、最初に… なぜオブジェクトのクローンを作成するのですか? ? Rubyの多くのオブジェクトは変更可能であり、変更することができます。 オブジェクトを変更したいが、元のコピーを保持する場合 その後、クローンを作成できます。 たとえば。 最初の要素を除くすべての要素を含む配列が必要な場合があります。 これを行う1つの方法 : a = [1,2,3,4,5] a[1..-1] # [2,3,4
-
Rubyでヒアドキュメントを使用する方法
ヒアドキュメントとは何ですか? ヒアドキュメントは、元のインデントとフォーマットを維持しながら、複数行の文字列を定義する方法です。 。 これは、SQLやHTMLなどのコードスニペットを埋め込むために使用されます。 ここに例があります : query = <<-SQL SELECT * FROM food WHERE healthy = true SQL この構文を使用して、ヒアドキュメントを定義します。 Rubyで。 記号<<-から始めます 、次にこのヒアドキュメントの名前を表す単語、次にヒアドキュメントの内容、次にヒアドキュメントをその単語で閉じます。 これを行う
-
Rubyからシステムコマンドを実行する方法
Rubyから外部コマンドを実行したい場合… …wkhtmltopdfのように HTMLファイルをPDFに変換します。 使用できるRubyメソッドがいくつかあります。 使用する方法に応じて、異なる結果が得られます 。 これらの方法を一緒に探求しましょう! Rubyシステムメソッド Rubyシステム方式は、外部コマンドを実行する最も簡単な方法です。 このように見えます : system(ls) systemに注意してください コマンド出力が発生したときに出力されます。 また、システムはRubyプログラムをコマンドが完了するまで待機させます 。 これを試してください: sy
-
AASMGemを使用してRubyでステートマシンを作成する方法
今日は、ステートマシン、それらがどのように機能するか、AASMgemを使用したRubyプロジェクトでそれらを使用する方法について学習します。 今 : 信号機を想像してみてください… 赤、緑、黄色のいずれでもかまいません。 色が変わると、次へ 色は現在に基づいています 1つ。 これは、目の不自由な人がいつ横断できるかを知るための音を出す種類だとしましょう。 今 : あなたはこのためのソフトウェアを書いています。 毎回再生する音と次の色をどのように知るのですか? 次のようなifステートメントを記述できます: if @light.state == green @ligh
-
RubyのREPLとは何ですか? (IRB、Pryなど)
REPLはRead-Eval-Print-Loopの略です。 これは、 Rubyコードを入力して、結果を直接確認できるプログラムです。 。 人気のあるREPLの1つは、irbです。 。 もう1つはpry 。 一部のRubyコードがどのように機能するかをすばやくテストできるため、便利です。 例 : 文字列の配列を整数の配列に変換しようとしている場合。 その方法を正確に覚えていない可能性があります … あなたはそれを調べます(これは完全に問題ありません!)。 そして、希望どおりに機能するようになるまで、REPLで試してみてください。次に、このコードをプロジェクトに統合できます。
-
VCRGemを使用してテストスイートを改善する方法
Rubyアプリケーションが何らかの外部APIを使用している場合は、おそらくテストとAPIレートの制限が遅いという問題に直面している可能性があります。 。 解決策は何ですか? クライアントライブラリからHTTPメソッドを手動でスタブし、事前に決定された応答を返すことができます。 しかし、それは多くの作業と醜いコードです! より良い解決策は、 Webmock+VCRのような宝石の強力な組み合わせを使用することです。 。 WebMockは、次のような一般的なHTTPライブラリからのHTTPリクエストをインターセプトします。 net / http ファラデー RestClient
-
MiniMagick Gem:Rubyを使用して画像を変換する方法
Rubyアプリケーションで任意の種類の画像を操作する場合は、何らかの方法で画像を変更する可能性が高くなります。 サイズを変更してスペースを節約し、ユーザーのダウンロードを高速化するのと同じです。 しかし、どうすればこれを行うことができますか? MiniMagickはあなたを助けることができる宝石です。 これは、ImageMagickプログラムとRubyコードの間のインターフェースです。 あらゆる種類の変換を画像に適用して、ニーズに合わせて画像をカスタマイズするのに役立ちます! 最初 : ImageMagickをインストールする必要があります オペレーティングシステムのパッケージ
-
Rubyを使用してコマンドラインアプリケーション(CLI)を構築する方法
多くの人は、RubyがWebアプリケーションではないことを実行できることを忘れています。この記事では、それを改善するのに役立つコマンドラインアプリケーションを構築する方法を紹介したいと思います! 使い慣れているコマンドラインアプリケーションは次のとおりです。 psql rails bundler gem git コマンドラインアプリケーションを構築する方法はたくさんあります。この記事では、そのうちの3つに焦点を当てます。 あなたは学ぶつもりです : ARGVアレイ OptParseライブラリ トールの宝石 始めましょう! RubyARGV定数 コマンドラインア
-
自分自身を説明するRubyオブジェクトを作成する方法
この記事では、Ruby inspectメソッドがどのように機能し、なぜそれを使用するのかを学びます。 文字列または配列を印刷すると、その内容が表示されます。 例 : puts [1,2,3] 1 2 3 しかし、独自のオブジェクトを印刷する場合は… これが表示されます : なぜですか? このクラスを意味のある方法で表示する方法をRubyに教えていないからです。 to_s のようなメソッドを定義すると、これを変更できます。 。 それがどのように機能するか見てみましょう! to_sの実装 オブジェクトでputsを使用する場合、Rubyは to_sを呼び出します オブ
-
マトリックスとは何ですか?Rubyでそれを使用する方法は?
マトリックスは、スプレッドシートのようなデータを保存および操作するために使用できる2D(2次元)配列です。 次の用途に使用できます : テーブルゲーム(チェス、チェッカーなど)でボードを表す 統計とデータ分析 プロットとグラフの生成 これは強力なデータ構造であるため、使用方法を学ぶのに役立ちます。 Rubyでマトリックスを作成する方法 配列を使用して行列を作成できます。 このように : matrix = [ [1,2,3], [4,5,6], [7,8,9] ] これにより、3×3のマトリックスが生成されます。これは、2次元データをボードまたは位置のセットとして保
-
Rubyを使った数学:モジュロ演算子、バイナリなど
優れたプログラマーになるには、数学を知る必要がありますか? 状況によって異なります! 一日中CRUDアプリを作成するだけの場合は、数学についてあまり知る必要はないでしょう。 ただし、コーディングの課題を解決したり、コーディングインタビューの準備をしたりするなど、もっと面白いことをしたい場合は、いくつかの基本的な概念を学ぶことが役立ちます。 今日はについて学びます : モジュロ演算子(% ) 番号システム ビットマスキング これらの概念をRubyで適用する方法を学ぶので、これは実用的なガイドになります。 やってみましょう! Rubyモジュロ演算子 Rubyのモジュロ演算子は次