プログラミング -> 言語 -> Ruby
結論 --example オプションを使い、その値として「テストの名前」を入れます。 例 以下のような Spec があったとします。 feature 'おはよう' do scenario 'こんにちは' do # ここにテストが入る end end このとき、このテストを実行するためには次のコマン…
gyazo.com 結論 標題の通りなので、たとえばデータベースにユーザデータを格納しようとする際に name に NOT NULL 制約をかけていたりバリデーションをかけていたりすると、エラーになります。 対処法の一つとしては Twitter::NullObject のときは例外として…
結論 初回は @client.direct_messages_events(count: 1) で取得し、その戻り値から next_cursor を得て、それを用いて次回は @client.direct_messages_events(count: 1, cursor: next_cursor) で取得します。 next_cursor に nil が返ってきたら取得完了です…
結論 リトライをする(こちらのせいではない)*1。 具体的方法 以下にリトライをするための方法が書いてあります。 github.com client.request_options.retries = 3 *1:ただし、アルゴリズムが悪いことなどが原因のことはある
結論 標題の通りで、知っている人には当たり前なのですが、以下のような戻り値になります。 [].all? { |foo| foo == 1 } #=> true どうするか all? を使わないようにすればこのハマりやすい返り値から逃れられます。もし all? を使う場合には、レシーバが []…
結論 配列を & で結びつける場合には、「論理積(積集合)」を配列で返す。 論理積の例 x = [1, 2, 3, 4, 5] y = [3, 6, 1, 9, 7] x & y #=> [1, 3] 補足 同様に、配列を |(縦線、パイプ、バーティカルバー)一つで結びつける場合には、「論理和(和集合)…
結論 以下のとおりです。 [1] pry(main)> foo_bar = 'hoge' => "hoge" [2] pry(main)> foo-bar = 'hoge' NameError: undefined local variable or method `foo' for main:Object from (pry):2:in `__pry__'
結論 unicode_normalize(:nfkc) メソッドを用います。 例 'アイウエオ'.unicode_normalize(:nfkc) #=> "アイウエオ" '123456'.unicode_normalize(:nfkc) #=> "123456"
結論 1. rb-readline の gem をインストールする $ gem install rb-readline 2. .pryrc に以下のように書きます。 .pryrc は Ruby のスクリプトの形で書きます。 require 'rb-readline' require 'readline' if defined?(RbReadline) def RbReadline.rl_rever…
Cloud Natural Language API とは GCP の テキスト分析用 API です。 使い方(導入) 公式ドキュメント が全てですが、一部ハマったところを書いておきます。 1. 認証用の JSON ファイルの取得 認証用の JSON ファイル(秘密鍵込み)は、GCP の「IAM と管理…
前提 2020/05/12 現在のお話です。 結論 具体例 具体的には、Gemfile を以下のようにすればいいでしょう。 gem 'google-cloud-language' gem 'google-protobuf', '3.11.1'
提示されました。
前提 以下のコードにおいて tweet は Twitter::Tweet クラスのオブジェクトであるとします。 結論 tweet に対して to_json メソッドを用います。結果として得られる値は JSON の文字列なので、データベースにそのまま保存できます*1。 serialized_tweet_obje…
結論 少し古い記事ですと、Pokemon の名前空間が Faker::Pokemon として紹介されていることがあります。たとえば、以下の Qiita の記事です。 qiita.com これが現時点*1では、Faker::Game::Pokemon となっています。古い情報を参考にするとエラーになるので…
Ferrum とは こちらの gem です。Ferrum とは「フェルム」のこと、すなわち「鉄」のことです*1。 github.com 特徴 「Puppetrer のような、ただ、Puppeteer よりもシンプルな」、Chrome の API を提供する gem とのことです。 As simple as Puppeteer, though…
Gyazo には API が用意されているので、アプリケーション経由で画像を取り扱うことができます。 1. アプリケーションを登録する まずはアプリケーション登録をするために、登録ページに行きます。 gyazo.com 以下のようにしてアプリケーションを登録し、clie…
"Hatenablog" とは "Hatenablog" とは、はてなブログ API 用の gem です。 github.com 使い方 使い方は、作者の方の記事を読めばほぼ分かるかと思います。 blog.kymmt.com 併せて README を読むとよいでしょう。 github.com 使い方詳細 実際に使ってみました…
中古市場で高値が維持され続けてきた「リファクタリング:Rubyエディション」ですが、「復刊ドットコム」により復刻されることが決定しました。 www.fukkan.com 配送時期は2020/03/下旬で、価格は税込みで 8,800円 です。総在庫数は不明ですが*1、欲しい方(…
前提条件 環境は macOS だという前提条件にします。 結論 brew reinstall openssl を実行して openssl を再インストールします。私の場合はこれで解決しました。以下、インストール時のログです。
Ruby において面食らう記法の一つは、map メソッドなどの引数に現れる、&:upcase というような、以下の3つの要素が同時に存在する記法だと思います*1。 アンド(アンパサンド) コロン 文字 上記の例では upcase 改めてこの記法について整理してみます。箇条…
クロージャ とは Wikipedia で「クロージャ」を見てみます。 ja.wikipedia.org クロージャ(クロージャー、英語: closure)、関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数にて利用可能な機能・概念で…
流れ まず、Bundler を v2.1.2 にした $ gem update bundler を行って Bundler のバージョンを v2.1.2 にしました。 $ gem update bundler Updating installed gems Updating bundler Fetching: bundler-2.1.2.gem (100%) Successfully installed bundler-2.…
結論 Itamae を例に取ります。インストール可能な Itamae のバージョン番号一覧を表示させるためには以下のコマンドを実行します。実行結果も付与します。 $ gem search ^itamae$ --all *** REMOTE GEMS *** itamae (1.10.6, 1.10.5, 1.10.4, 1.10.3, 1.10.2…
rmagick とは ImageMagick を扱う gem です。 github.com ImageMagick 7 では rmagick は使えない かなり以前からですが、ImageMagick 7 では rmagick を使うことができません。bundle install する際に以下のようなエラーが出て怒られます*1。 An error occ…
結論 引数を指定する際に {}(波括弧、ブレイス)を使いましょう。 具体例 ダメな例 FactoryBot.define do factory :user do trait :ikemen do name '太郎' end end end OKな例 FactoryBot.define do factory :user do trait :ikemen do name { '太郎' } end…
実例 ./lib/x.rb というファイルが以下のようであったとします。 class X (中略) end また、./lib/a.rb というファイルが以下のようであったとします。 require './x' (以下省略) このとき、 カレントディレクトリが ./ であるときに $ ruby ./lib/a.rb …
大原則 使用する Chrome に合った ChromeDriver を ダウンロード します。 合致するバージョンがない場合に以下を試します。 結論 エラーが出たときに出てくるエラーメッセージをよく読みます。 Webdrivers::VersionError: Unable to find latest point rele…
必要なもの gem rubocop solargraph VSCode の拡張機能 ruby-rubocop Ruby Solargraph VSCode の設定方法 ruby-rubocop について 変更の必要なし Ruby Solargraph について Solargraph: Diagnostics の設定を true にする 動作確認をしてみる 下の画像はファ…
なぜこの記事を書いたのか 最高クラスのググりにくさなので、何とかして引っかからないかと思い書きました*1。 答え 答えはズバリここです。 きっかけ 南谷さんのツイートがきっかけで調べたのですが、ほんとにググりにくかった……。 Matz が キーノートで ?a…
前提 gem install でインストールする場合です 結論 $ gem install mysql2 -- --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib" 参考