プログラミング -> 言語 -> Ruby

fzf を pry(Rails コンソール)で使う方法

結論 1. rb-readline の gem をインストールする $ gem install rb-readline 2. .pryrc に以下のように書きます。 .pryrc は Ruby のスクリプトの形で書きます。 require 'rb-readline' require 'readline' if defined?(RbReadline) def RbReadline.rl_rever…

Ruby で Cloud Natural Language API を使う

Cloud Natural Language API とは GCP の テキスト分析用 API です。 使い方(導入) 公式ドキュメントが全てですが、一部ハマったところを書いておきます。 1. 認証用の JSON ファイルの取得 認証用の JSON ファイル(秘密鍵込み)は、GCP の「IAM と管理」…

Ruby 2.7 で 'google-cloud-language' gem を使う場合には 'google-protobuf' gem を明示的に 3.11.1 にする必要がある

前提 2020/05/12 現在のお話です。 結論 具体例 具体的には、Gemfile を以下のようにすればいいでしょう。 gem 'google-cloud-language' gem 'google-protobuf', '3.11.1'

VS Code で Rubocop の設定をうまく引き継いでくれない問題への一つの結論

提示されました。

Twitter の gem を用いた際にツイートのオブジェクトをシリアライズしてそのまま保存する

前提 以下のコードにおいて tweet は Twitter::Tweet クラスのオブジェクトであるとします。 結論 tweet に対して to_json メソッドを用います。結果として得られる値は JSON の文字列なので、データベースにそのまま保存できます*1。 serialized_tweet_obje…

Faker を使って Pokemon の情報を用いる場合には Faker::Game::Pokemon というふうに Game という名前空間を指定する(ようになった)

結論 少し古い記事ですと、Pokemon の名前空間が Faker::Pokemon として紹介されていることがあります。たとえば、以下の Qiita の記事です。 qiita.com これが現時点*1では、Faker::Game::Pokemon となっています。古い情報を参考にするとエラーになるので…

Ruby の Headless Chrome 実装である Ferrum gem を触ってみました

Ferrum とは こちらの gem です。Ferrum とは「フェルム」のこと、すなわち「鉄」のことです*1。 github.com 特徴 「Puppetrer のような、ただ、Puppeteer よりもシンプルな」、Chrome の API を提供する gem とのことです。 As simple as Puppeteer, though…

Gyazo を Ruby を用いて API 経由で扱う方法

Gyazo には API が用意されているので、アプリケーション経由で画像を取り扱うことができます。 1. アプリケーションを登録する まずはアプリケーション登録をするために、登録ページに行きます。 gyazo.com 以下のようにしてアプリケーションを登録し、clie…

はてなブログ API 用の gem である "Hatenablog" を使ってみました

"Hatenablog" とは "Hatenablog" とは、はてなブログ API 用の gem です。 github.com 使い方 使い方は、作者の方の記事を読めばほぼ分かるかと思います。 blog.kymmt.com 併せて README を読むとよいでしょう。 github.com 使い方詳細 実際に使ってみました…

「リファクタリング:Rubyエディション」の復刊版が予約受付中

中古市場で高値が維持され続けてきた「リファクタリング:Rubyエディション」ですが、「復刊ドットコム」により復刻されることが決定しました。 www.fukkan.com 配送時期は2020/03/下旬で、価格は税込みで 8,800円 です。総在庫数は不明ですが*1、欲しい方(…

rbenv install をする際に「configure: error: something wrong with LDFLAGS=......」というエラーが出た際の解決方法の一つ

前提条件 環境は macOS だという前提条件にします。 結論 brew reinstall openssl を実行して openssl を再インストールします。私の場合はこれで解決しました。以下、インストール時のログです。

Ruby の &:upcase 記法を改めて整理してみる

Ruby において面食らう記法の一つは、map メソッドなどの引数に現れる、&:upcase というような、以下の3つの要素が同時に存在する記法だと思います*1。 アンド(アンパサンド) コロン 文字 上記の例では upcase 改めてこの記法について整理してみます。箇条…

Ruby で クロージャ を実装する(Proc オブジェクト を用いる)

クロージャ とは Wikipedia で「クロージャ」を見てみます。 ja.wikipedia.org クロージャ(クロージャー、英語: closure)、関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数にて利用可能な機能・概念で…

bundler v2.1.2 にて --path オプションを追加したら DEPRECATED が出たので bundle config set path に移行した

流れ まず、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.…

インストール可能な gem の バージョン番号 の一覧を表示する方法

結論 Itamae を例に取ります。インストール可能な Itamae のバージョン番号一覧を表示させるためには以下のコマンドを実行します。実行結果も付与します。 $ gem search ^itamae$ --all *** REMOTE GEMS *** itamae (1.10.6, 1.10.5, 1.10.4, 1.10.3, 1.10.2…

ImageMagick 7 で rmagick を使う方法

rmagick とは ImageMagick を扱う gem です。 github.com ImageMagick 7 では rmagick は使えない かなり以前からですが、ImageMagick 7 では rmagick を使うことができません。bundle install する際に以下のようなエラーが出て怒られます*1。 An error occ…

FactoryBot で Trait を定義したら NoMethodError: が出る場合

結論 引数を指定する際に {}(波括弧、ブレイス)を使いましょう。 具体例 ダメな例 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…

Ruby で require に書く場所は「コマンドを実行する場所からの相対位置」になる

実例 ./lib/x.rb というファイルが以下のようであったとします。 class X (中略) end また、./lib/a.rb というファイルが以下のようであったとします。 require './x' (以下省略) このとき、 カレントディレクトリが ./ であるときに $ ruby ./lib/a.rb …

RSpec で Headless Chrome を使う際に Chrome が Dev だったり Canary だったりする場合(安定版とは異なるバージョンの Chrome を使っている場合)の対処法

大原則 使用する Chrome に合った ChromeDriver を ダウンロード します。 合致するバージョンがない場合に以下を試します。 結論 エラーが出たときに出てくるエラーメッセージをよく読みます。 Webdrivers::VersionError: Unable to find latest point rele…

Visual Studio Code でリアルタイムに RuboCop の結果を表示する

必要なもの gem rubocop solargraph VSCode の拡張機能 ruby-rubocop Ruby Solargraph VSCode の設定方法 ruby-rubocop について 変更の必要なし Ruby Solargraph について Solargraph: Diagnostics の設定を true にする 動作確認をしてみる 下の画像はファ…

Ruby で ?(はてな、ハテナ、クエスチョンマーク)の後ろに文字を書いた場合の戻り値(返り値)は文字リテラルになる

なぜこの記事を書いたのか 最高クラスのググりにくさなので、何とかして引っかからないかと思い書きました のググりやすさよ…… https://docs.ruby-lang.org/ja/latest/class/Comparable.html">*1。 答え 答えはズバリここです。 きっかけ 南谷さんのツイート…

MySQL 8 を使っている場合に mysql2 の gem install で失敗するとき(Mac)

前提 gem install でインストールする場合です 結論 $ gem install mysql2 -- --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib" 参考

自作の gem を bundle install しようとしたら ...not valid. Please fix this gemspec. と怒られた場合

結論 ルートにある foo_bar-0.1.0.gem のような .gem ファイルを削除する*1。 背景 自作の gem である 自前の GitLab にプッシュしたものである Gemfile 内で git: https://gitlab.example.com/... のように指定してインストールしようとしたものである spec…

Ruby で Slack へ単にポストするだけの方法

Ruby で Slack へ単にポストするだけの方法 gem Slack Ruby Client を用います。Slack::Incoming::Webhooks という gem もありますので*1、機会があれば触ってみるとよいかと思います。 具体的な方法 1. "Bots" アプリをワークスペースに追加する Bots とい…

Repro Tech: Long Life RailsApps の雑なまとめ

結論 読みやすくすること テストしやすくすること 最も大事なことは「それを行うことでユーザによりよい価値やサービスを届けられるようになること」 Repro Tech: Long Life RailsApps これです。 当日の発表資料 全員の方の発表資料が公開されています。 当…

Mac で rbenv 経由で Ruby をインストールした際に Readline が原因で pry や byebug が 実行できないとき

結論 CONFIGURE_OPTS を設定した上で rbenv install する。 具体例 $ CONFIGURE_OPTS="--with-readline-dir=/usr/local/opt --with-openssl-dir=/usr/local/opt" rbenv install 2.6.0 ruby-build: use openssl from homebrew Downloading ruby-2.6.0.tar.bz2…

リモートの Git リポジトリからファイルを持ってきてそれをただ配置するだけの Capistrano を書く 

1. まずはインストール gem install でも bundle install でもよいのでまずはインストールします。 $ gem install capistrano 2. まずは初期化 初期化しましょう。 $ cap install mkdir -p config/deploy create config/deploy.rb create config/deploy/stag…

CentOS 7 で rbenv install しようとしたら no acceptable C compiler found in $PATH と出た場合

結論 gcc を入れます。 $ sudo yum install -y gcc 補足 rbenv/ruby-build の Wiki には以下のように書いてあります。が、これだけだと標題のエラーが出てしまいました。 CentOS/Fedora: # (`dnf install` on Fedora 22+) yum install -y gcc-6 bzip2 openss…

よちよち.rb & Sendagaya.rb 合同開催「よちがや.rb」 〜REST アーキテクチャを理解しよう会〜 に行ってきました

よちよち.rb & Sendagaya.rb 合同開催「よちがや.rb」 〜REST アーキテクチャを理解しよう会〜 2019/01/07 に開催された「よちよち.rb & Sendagaya.rb 合同開催「よちがや.rb」 〜REST アーキテクチャを理解しよう会〜」に行ってきました。内容の詳細につい…

WSL + Visual Studio Code の環境で Rubocop (ruby-rubocop) を使う方法

結論 こちらをご覧ください。

Powered by はてなブログ