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
はじめに class << self って? class << self に出会うとき クラスメソッドの定義の仕方 class << self の仕組みを順に理解する 特異メソッドの定義の仕方 def object.method_name 形式 class << object 形式 class << self を解釈してみる まとめ 著者について たなべすなお (Sunao Tanabe / @sunaot) 書いた人: sunaot はじめに この記事は「最近 Ruby を始めたばかりで言語仕様についてよく知らない」という初級者や、「一通り記法は知っていて Ruby でプログラミングはできるが、その仕組みはよくわからない」という中級者へ向けて書いています。 Ruby を始めるならどんな本を読めばいいの? とたびたび聞かれます。そんなときは決まって、「他の言語が使えるなら『はじめての Ru
In a model there is a field validates :image_file_name, :format => { :with => %r{\.(gif|jpg|jpeg|png)$}i It looks pretty odd for me. I am aware that this is a regular expression. But I would like: to know what exactly it means. Is %r{value} equal to /value/ ? be able to replace it with normal Ruby regex operator /some regex/ or =~. Is this possible?
はじめに RubyやRailsで、どのようにEnumが使えるか色々試してみました。 結果を忘れないうちに整理するための振り返りメモです。 間違っている点などあれば、ご指摘・指南頂ければ幸いです!!! Enumとは? 「Enum」は「列挙型」のこと。 この列挙型を扱う機能としてRuby on Rails4.1からActiveRecord :: Enumと言うモジュールが追加となりました。 この機能は、モデルの数値カラムに対して文字列による名前定義をマップすることができます。また、データ操作用の便利なメソッドも提供してくれます。 上手く説明できないですが、列挙型を扱うのに何か便利そうな機能です(0ω0)← 【参考】Ruby on Rails 4.1 リリースノート 【参考】Ruby on Rails 5.2.3 ActiveRecord::Enum ※ほぼコレを見るれば事足りる感が否めない笑
Ruby 2.3 で Safe Navigation Operator(&.)という新しい演算子が追加されました。 これは obj&.to_i という風にメソッド呼び出しのように使い、レシーバが nil の場合に nil を返します。 10&.to_s # => "10" nil&.to_s # nil このように nil チェックすることなく安全にメソッドを呼び出すことが出来ます。 #try Rails の ActiveSupport にも #try という似たようなメソッドが定義されています。 これはレシーバがメソッドが呼びだせる場合にそのメソッドを呼び出すというような処理になります。 また、レシーバが nil の場合は必ず nil を返します。 10.try(:to_s) # => "10" nil.try(:to_s) # => nil &. と #try の違い 両方とも『レシー
ここではpresent?の具体的な使い方を見ていきましょう 基本的な使い方 サンプルプログラム: require 'active_support/all' num1 = 10 # true num2 = nil # false num3 = 0 # true str1 = "hello" # true str2 = "" # false bool1 = true # true bool2 = false # false p num1.present? p num2.present? p num3.present? p str1.present? p str2.present? p bool1.present? p bool2.present? 実行結果: true false true true false true false 実行結果からわかるように、present?はオブジェクトに値
rspecの実行時にbefore、afterフックが実行されるタイミングがわからずにハマったので調べてみました。 フックの種類 :example,:context,:suiteの三種類。 :example デフォルトはこちら。各exampleごとに毎回実行 :eachのエイリアス。 実際に試してみる require 'rails_helper' RSpec.describe "フックの実行タイミングを調べる" do before :example do puts 'before実行' end after :example do puts 'after実行' end it "実行1" do puts 'example1' end it "実行2" do puts 'example2' end it "実行3" do puts 'example3' end end
Rubyのメソッド公開レベルについて、初心者でも理解できる記事が見つけられなかったので、少々情報が正しいか不安ですが、投稿させていただきます。 Ruby初心者が、どうにかこうにかしてまとめたものなので、下記情報は過度に信じないようお願いいたします。 間違いありましたら、更新しますので、お気軽に教えていただけますと幸いです。 まず、下記、るりまの説明を少々いじったものになります。 - public に設定されたメソッドは制限なしに呼び出せる(特に指定しない場合は「public」に設定される) - private に設定されたメソッドは関数形式でしか呼び出せない(レシーバの利用ができない) - protected に設定されたメソッドは、そのメソッドを持つオブジェクトがselfであるコンテキスト(メソッド定義式やinstance_eval)でのみ呼び出せる まず、いきなりですが、まとめから入り
また同じことをやる日が来る予感しかないので、備忘録的にメモ ※ 環境はmacで、catalina(バージョン10.15.7)です 経緯 いつものようにスクレイピングをしようとすると、chromedriverのバージョンが違うというエラー session not created: This version of ChromeDriver only supports Chrome version 88 (Selenium::WebDriver::Error::SessionNotCreatedError) Current browser version is 90.0.4430.93 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome 上記のエラーだとバージョンが88しかサポートしてないのに
2つの配列の内容を差を求めるには配列1 - 配列2とします。配列1と配列2の内容を比較し配列2にない内容をだけを取り出します。
Railsで使うときはActiveRecordに隠されててあんまり意識することなかったSQLite3だけど、ちょっと直接使ってみた。 Gemのインストール Gemfileに以下を書いてbundle install。 gem 'sqlite3' 使い方 require 'sqlite3' db = SQLite3::Database.new 'test.db' # create table sql = <<-SQL create table users ( id integer primary key, name text ); SQL db.execute(sql) # insert db.execute('insert into users (name) values (?)', 'hitoshi') db.execute('insert into users (name) values
前回はcurlコマンドを使って直接APIを叩きました。今回はRubyからAPIを叩いてみます。 RubyでHTTP(S)の通信を操作する方法は色々ありますが、まずは基本ということでnet/http(s)を使います。ぶっちゃけ、APIを叩くならもっと便利なライブラリもいくつかあるのですが…。 Droplet一覧を取得する まずはいつものをやります。 require 'net/https' require 'uri' droplet_ep = 'https://api.digitalocean.com/v2/droplets' token = '(トークン)' uri = URI.parse(droplet_ep) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.verify_mode = OpenSSL::S
Rubyにはオブジェクト指向で一般的なクラス以外にも、モジュールという概念が存在します。モジュールではクラスと同じように定数やメソッドをまとめたり、クラスに組み込んで多重継承を実現したり、クラスなどをまとめることで名前空間を提供するなど、いろいろな使い方ができます。 この記事では以下の内容について解説します。 定数やメソッドをまとめる クラスに組み込んで多重継承を実現する 名前空間を提供する リファレンスマニュアル(2.3.0) http://docs.ruby-lang.org/ja/2.3.0/class/Module.html:title 定数やメソッドをまとめる モジュールではクラスと同様に、定数やメソッドをまとめる機能があります。 定数 モジュール内で定義した定数は、モジュール名を経由して呼び出すことが可能です。
Rails のコードを読んでいると、module ClassMethods って多く書かれている事が分かると思いますが、こいつが何をやっているのかを話していきます。 module ClassMethods を説明する前に、まず、以下のような Module と Class を定義します。 module ModuleA def self.class_method_a 'class_method_a' end def instance_method_a 'instance_method_a' end end class ClassA include ModuleA end
included(class_or_module) -> ()[permalink][rdoc][edit] self が Module#include されたときに対象のクラスまたはモジュールを引数にしてインタプリタがこのメソッドを呼び出します。 [PARAM] class_or_module: Module#include を実行したオブジェクト 例 module Foo def self.included(mod) p "#{mod} include #{self}" end end class Bar include Foo end # => "Bar include Foo" [SEE_ALSO] Module#append_features
オブジェクトについて学習してきたがここでクラスとモジュールの概念について学ぶ。 クラス はオブジェクトになれる、、、つまりインスタンス化能力を持ち、インスタンスメソッドやクラスメソッドを格納できる。 モジュール はインスタンス化能力は持たないがメソッドを格納できる。 例えば、以下のクラスとモジュールがあるとする。 module Panda def visit_to_Japan "Mr.TonTon" end def panda @panda = "panda" end end class Zoo def the_zoo "There are lots of animal" end end class UenoZoo < Zoo include Panda def monkey @monkey = "monkey" end def elephant @elephant = "elephant
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く