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
rubyにおけるドット記法とは,メソッド呼び出しに利用される. 形式的には, レシーバ.メソッド という形を用いる.
Rubyのクラスとモジュールについて、参考リンクを載せながら説明します。 どんな時にモジュールが使われるか インスタンス化せずにメソッドを格納したいときや、関連するクラスをまとめたいとき、つまり名前空間として使いたいときモジュールを使います。例えば以下のような感じです module M1 class C1 end class C2 end end M1::C1.new クラス/メソッドの定義 (Ruby 2.3.0) qiita.com ドット記法と二重コロン記法 まず、前提として「クラス名とモジュール名は定数として定義される」事を頭に入れてください。 よって、モジュール内部のクラスを指定するときやクラスメソッドを指定するときは二重コロン記法で書くことが出来ます。※ 一方、ドット記法はメソッド呼び出しのときにのみ使用可能です。 ちなみに、「::」はスコープ演算子というものです。 ※ruby
この 2 種類の書き方にはどのような違いがあるのかについて説明します。 なお、本稿では便宜上、前者のような書き方をネスト記法、後者のような書き方をコンパクト記法と呼ぶことにします。 TL;DR ネスト記法は各階層の名前空間ごとに class か module かを明確に指定するが、コンパクト記法は指定しない ネスト記法は未定義の場合に新たに定義するが、コンパクト記法は未定義の場合は例外が発生する class と module を明確に区別するかどうか ネスト記法ではそれぞれの名前空間に対して class か module かを明確に指定します。
テクノロジー部門で Ruby インタプリタの開発をしている笹田です。RubyKaigi 2024 楽しみですね。 さて、Ruby のメソッドを定義するとき、仮引数がある場合、カッコを省略することができます。 def foo(x, y) end def bar x, y end bar の定義の方法ですね。私は好んでこの書き方をしてたんですが、同僚の遠藤さんに「そんな書き方をしているのは今時笹田だけだ」と言われてショックを受けたので、ちょっと調べてみました。 ちなみに、カッコがないと使えないメソッド定義の方法があるので、その時には涙を呑んでカッコをつけます。 def foo(kw:) # 必須キーワード引数 end def bar(&) # 無名ブロック引数 end 補足1:Ruby では「メソッド呼び出し時にカッコをつけるかどうか」にいろいろな論争がありますが、ここでは「メソッドを定義する
とある gem 「が」 依存している gem の一覧を出すのは非常に簡単で、 gem コマンド一発で行うことができる。 では、逆にとある gem 「に」 依存している gem の一覧を出すのはどうやるのだろうか? ローカルで調査 ローカルにあるものであれば同様に gem コマンド一発で調べることができる。 gem dependency に --reverse-dependencies または -R を付ければよい。 $ gem dependency -R nokogiri Gem nokogiri-1.6.6.2 hoe (~> 3.13, development) hoe-bundler (>= 1.1, development) hoe-debugging (~> 1.2.0, development) hoe-gemspec (>= 1.0, development) hoe-git
2009年06月03日 ERBの実行時に出てくるbindingって何者? RailsのViewのテンプレートでも馴染みの深い ERB。 テンプレートの文字列を引数にとってnewして作成したインスタンスに対して、resultメソッドを実行すると文字列を置換した結果が返ってくる。 require 'erb' str = "hello" erb = ERB.new("<%= str %>") puts erb.result(binding) このresultというメソッドでは引数として、コード中では宣言したこともない binding というものを渡している。 今までは決まり文句のようなものだと思うことにして丸ごとコピペして使っていたのだけど、いつも「引数に入るあれは何ていうやつだっけ?」と忘れてしまい、どうにも効率が悪い。 そこで調べてみたのだが意外と情報がない。eval と関連があるとか、TO
普段何気なく書いている Ruby なんですが実はメソッドの引数の種類って思ったよりも多くてまとめてみました。 実際自分も Ruby の AST をいじっている時に引数の種類が多すぎて混乱したのでまとめておくと色々と役に立つかなーと。 と、軽い気持ちで書いてみたんですが結構なボリュームになってしまいまsた。 引数の名称とかは調べつつ独断と偏見で書いてあるのでそこら辺はご注意ください。 諸注意 この記事は基本的に Ruby 3.1 を元にして動作確認しています 下にも書いてあるんですが 仮引数(parameter) についての解説で 実引数(argument) の話はあんまりでてきません 引数の名称は日本語に寄せていますが Ruby 界隈だと英語で書いてある事が多いかも 調べる時は英語の方で調べてもらったほうが情報はでてくると思う 引数という言葉の意味とは 『引数』という言葉には厳密に言うと『
combination(n) {|c| block } -> self[permalink][rdoc][edit] combination(n) -> Enumerator サイズ n の組み合わせをすべて生成し、それを引数としてブロックを実行します。 得られる組み合わせの順序は保証されません。ブロックなしで呼び出されると、組み合わせを生成する Enumerator オブジェクトを返します。 [PARAM] n: 生成される配列のサイズを整数で指定します。整数以外のオブジェクトを指定した場合は to_int メソッドによる暗黙の型変換を試みます。 [EXCEPTION] TypeError: 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを指定した場合に発生します。 例 a = [1, 2, 3, 4] a.combination(1).to_a #=> [[1],[2],[3]
これは何? Sidekiqには同時実行数のパラメータがあるため、それをどのようにセットするべきか決める必要があります。 これは、Ruby on Rails 5, 6, 7でSidekiq v6, 7のパラメータのチューニングに必要な情報を事前調査してまとめたものです。 結論 concurrencyを許容するジョブの同時実行数に合わせる config/database.ymlのpoolをconcurrency+1にしておく 最終的には要求されるスループットのジョブを回してパフォーマンスを測定して決める アーキテクチャ概要 キューとスレッドの関係は、Sidekiq v7から導入される Capsules (カプセル)機能によって、やや仕様変更が発生している可能性あり。検証中です。 プロセス:スレッド=1:N プロセス:キュー=1:N キュー:スレッド=N:N ワーカー:キュー=1:1 プロセス:
はじめに 配属研修の課題について エンジニア新入社員研修の個人課題:「JavaScriptでの開発」 配属研修課題1:「RailsでAPIサーバのみ構築」 配属研修課題2:「Railsでフロントエンドも含めた開発」 作ったアプリケーションの概要 JavaScript・Expressで開発した時との違いに関する感想 letやconstが要らない変数定義 falsyな値の違い ブロックをそのまま変数に代入できない 暗黙のreturn 条件文の後置 フレームワークの機能が豊富 ディレクトリ構造の一貫性 リソースベースルーティング 課題を取り組みながら学んだこと OpenAPIを使ったAPI定義ファイルの作成 N+1問題対策 テストコードに関する考えの変化 おわりに We are hiring! サムネイル画像 はじめに こんにちは。2022年4月に新卒で入社しました教育事業本部サービス開発部バッ
要は以下の記事の繰り返しなのだが。 k0kubun.hatenablog.com Kaigi on Rails _2022_ new というイベントの LT で、メソッド定義を探ろうという話があった。 speakerdeck.com Rails のソースをシュッと眺めに行くという、非常に尊い良い発表でした。 Object のことは Object に聞け、は Ruby の非常に面白いところなので、Method を取り出して source_location を尋ねるのは一度体験して感動して欲しいんだけど、実務だとタイプ数の少ないやり方も知っておくと更に便利に使えるのでご紹介。 irb の show_source も武器に加えてあげたい #kaigionrails— Takafumi ONAKA (@onk) October 9, 2022 Pry の $ https://github.com/
[edit] 要約 IP アドレスを扱うのためのクラスです。 例: require 'ipaddr' ipaddr1 = IPAddr.new("3ffe:505:2::1") p ipaddr1 # => #<IPAddr: IPv6:3ffe:0505:0002:0000:0000:0000:0000:0001/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff> ipaddr3 = IPAddr.new("192.168.2.0/24") p ipaddr3 # => #<IPAddr: IPv4:192.168.2.0/255.255.255.0> 参照 [RFC3513] 目次 特異メソッド new new_ntoh ntop インスタンスメソッド & << <=> == === >> | ~ eql? family hash hton include
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く