プログラミング -> 言語 -> Ruby
前提 必要なパッケージ は以下のようにインストール済みです。libgdbm5 が入らない場合は libgdbm3 を入れます。 $ sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev l…
余談 「使えなくなっている」と言ってもかなり前の話ですが……。
注意 特別なことは全くしていません。そして Capistrano に限った話でもないです。 結論 dotenv を用いる。
結論 以下は全て OK でした。 $ bundle i $ bundle ins $ bundle inst $ bundle insta $ bundle instal 以下は怒られました。 $ bundle in Ambiguous command in matches [info, init, inject, install] 余談 知りませんでした……。
プライベート gem 外部に公開できない、あるいは公開したくない gem がある場合に、GitLab.com のプライベートリポジトリにプッシュして利用する方法です。 結論 とはいえ、特に難しいところはないです。鍵の設定をしてあることを前提として、以下のとおりに…
現象 こんな感じのエラーが出ます。 $ bundle exec ruby awesome_pop3.rb Traceback (most recent call last): (中略) /Users/foobar/.rbenv/versions/2.5.1/lib/ruby/2.5.0/net/pop.rb:808:in `block in pop': can't modify frozen String (FrozenError) …
Action Mailer いつものこれです。 Action Mailer を単体で使う 単なる Mail の gem を使うよりか少し楽なので、Action Mailer を単体で*1使います。いきなりコードを示すと、以下のようになります。 なお Action Mailer の gem は予めインストールしておい…
結論 以下の例ではカレントディレクトリにあるディレクトリ名を対象にしています*1。 最終更新時刻の昇順に並べる場合 Dir.glob('*/').sort_by{ |directory_name| File.mtime(directory_name) }.each do |sorted_directory_name| puts sorted_directory_name…
背景 以下の二つの gem を同時に使う場合です。
Twitter の gem 理由 Rate Limits があるから。 方法 方法は簡単です。ツイートの取得の際に users メソッドを用いればよいです*1。引数として配列を与えます。 補足 一度の API を叩いて得ることができるユーザオブジェクトの個数の上限は 100個であること…
Twitter の gem 理由 Rate Limits があるから。 方法 方法は簡単です。ツイートの取得の際に statuses メソッドを用いればよいです*1。引数として配列を与えます。 補足 一度の API を叩いて得ることができるツイート個数の上限は 100個であることには注意し…
一言で ユーザを指定するときに「アラビア数字」を用いる場合、「文字列」なのか「数値」なのかを意識的に区別する。
Ridgepole こちらです。 データベースの構造の履歴を取る Ridgepole はマイグレーションツールとしての側面が強いですが、データベースのスキーマを取得するツールとしても便利です。 実行時のオプションに --export をつけるだけで指定したデータベースのス…
MiniMagick これです。RMagick はしばらくメンテがされていないようなので、現在ではこちらが選択肢になるのではないでしょうか。
結論 Sidekiq では キーワード引数 は使えない(今のところ)。 現象 知見 注意 perform の引数としてだけではなく perform 内のメソッドでもキーワード引数が使えません*1。 *1:はず
結論 これが全てです。
Whenever これです。Whenever is a Ruby gem that provides a clear syntax for writing and deploying cron jobs. 同じユーザが Whenever を複数実行したとき foobar というユーザが schedule_a.rb を whenever --update-crontab したとします。その上でさ…
結論 gem があります*1。 *1:感謝しかない
背景 かなり特殊な経緯です。 以前はデプロイ先のユーザは root でデプロイしていた それを一般ユーザに変えようとした そうすると表題のエラーが出た SSHのログインは問題ない
状況 こんなエラーが出たときです。 cannot load such file -- redis/namespace 結論 redis-namespace を入れる(gem)。 解答 公式ドキュメントにしっかりと書いてあります。 あとこの Issue にも。
結論 大丈夫な例 /(?<foobar>[a-z]+)/ =~ 'abcdefg' puts foobar #=> abcdefg だめな例 regexp = /(?<foobar>[a-z]+)/ regexp =~ 'abcdefg' puts foobar #=> undefined local variable or method `foobar' for main:Object (NameError) 感想 そりゃそうなのかな、という感想</foobar></foobar>…
結論 sidekiq-limit_fetch を使う。
はじめに 以下の記事の分家です。
結論 標題のままです。具体例を見てもらったほうが早いかと思います。
Ruby です。 一つの解決法 誤っている例 MyApplication::Client.new( host: 'https://www.example.com', port: 80, username: 'MY_USERNAME', password: 'MY_PASSWORD', use_ssl: true, ) 一見誤りはないように見えます(見えました)。結構ハマりました*1。…
結論 Tweetオブジェクトの uris メソッドを用いた戻り値*1の要素に対してさらに url メソッドを用いる。 具体例 以下のツイートを例とします。 【イベントレポート】Intel、最大5GHz達成のCore i7-8086Kを6月8日から発売... (71 users) https://t.co/PUbnmOl…
エラーメッセージ Uglifier::Error: Unexpected token: name (foobar_foobar). To use ES6 syntax, harmony mode must be enabled with Uglifier.new(:harmony => true). 結論 config/environments/production.rb を以下のように書き換えましょう*1。 変更前…
結論 ツラミがある。 答えはほぼこれかと [Rails]複数のデータベースに接続する - Qiita 上記からのリンク記事 Rails で複数 DB の migration をする方法の調査と考察 - Qiita https://qiita.com/1990kawa/items/1712e261f155e34459ae
結論 安直にこれで。 = link_to 'リンクです!<i class="material-icons">link</i>'.html_safe, 'https://example.com' 備考 ブロックを使うとごちゃごちゃしちゃうので、html_safe メソッドを使っていることを認識した上でこれで良いかと思います。 参考
結論(の一つ) database.yml の中の記述で、コメントの中に erb の書式で記述しているものがあり、さらにその返り値が例外になるものがあるとき標題のエラーが出る。