プログラミング -> 言語 -> Ruby
結論 キーワード引数として aliases: true を付与する。 例 yaml = YAML.load_file('config.yml', aliases: true) 補足 Psych というワードと併せて検索すると背景が分かります 現時点では、素の Ruby じゃないと遭遇しない現象かもしれません
前提 以下のようなメソッド実行例です。 便宜上、以降では以下のコメントに基づいて 1つめ、2つ目... という形で引数を呼ぶことにします service.update_spreadsheet_value( sheet_id, # 1つめ range, # 2つめ value_range_object, # 3つめ value_input_opti…
※ 2022年4月10日(日)現在の情報です 結論 Ruby (https://github.com/sferik/twitter) の場合 /path/to/vendor/bundle/ruby/3.1.0/gems/twitter-7.0.0/lib/twitter/rest/request.rb:97:in `fail_or_return_response_body': User has been suspended. (Twitt…
結論 たとえば、{ foo: 'bar', hoge: 'fuga' } というハッシュがあったとします。このハッシュの foo および hoge のそれぞれを大文字に変更したい場合には次のようにします。 { foo: 'bar', hoge: 'fuga' }.transform_keys { |key| key.upcase } 上記の戻り…
結論 作成するファイルは以下の 2つ です。 .github/workflows/danger_js.yml ファイル名は何でも良いです 単独のファイルとして切り出さず、既存の yml に内容を追加しても大丈夫です dangerfile.js ファイルの内容 2つのファイルの内容は次のとおりです。 …
実例 クォートで囲まないと NG。 $ bundle exec rails foo_task:barbar['hoge','fuga'] zsh: no matches found: foo_task:barbar['hoge','fuga'] クォートで囲むと OK。 $ bundle exec rails "foo_task:barbar['hoge','fuga']" (正常処理)
結論 たとえば、API で取得できる media_url_https が https://pbs.twimg.com/media/FAlJ_JsUUAAgOSq.jpg であったとします。この URL に wget をしても原寸大画像は得られません*1。 常に原寸大画像を取得するためには https://pbs.twimg.com/media/FAlJ_Js…
大前提 正規表現は最後の手段にするべきです。 結論 RFC3986 に従います(後述)。 たとえば対象とする URL が https://pbs.twimg.com/media/FAlJ_JsUUAAgOSq?format=jpg&name=orig であったとします。そのとき、以下のように抽出できます。 url = 'https://…
結論 URI#decode_www_form_component を使いましょう。 具体例 以下、エスケープシーケンスをくくるためにダブルクォートを用いることに注意です。 [1] pry(main)> URI.decode_www_form_component("\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86") => "あいう" 検索…
Lita とは www.lita.io 結論 まず以下のようなハンドラーを作ります。 module Lita module Handlers class Healthcheck < Handler http.get '/healthcheck' do |_request, response| response.body << 'OK' end Lita.register_handler(self) end end end そ…
Lita とは www.lita.io 結論 2021/07/25 時点では、以下のソースにあるように Ruby 3 で escape メソッドが削除されたため、Webサーバ の応答をしようとすると落ちます。 github.com 以下のようにコメントが書いてあります。 # The http_router gem still us…
Lita とは Ruby製の ChatBot フレームワークです。 www.lita.io 設定ファイル内での Redis のアドレスの指定方法 lita_config.rb というファイルに設定を書き込んでいきます。その際、Redis のアドレスを指定するには以下のように書きます。 (前略) config…
Lita とは Ruby製の bot のフレームワークです。 docs.lita.io 結論 ローカル(シェル)で動作確認する際には @Lita を先頭に付けないとポストが受け付けられません(レスポンスが返ってきません)。 以下のように、@Lita を先頭につけて bot に話しかける必…
gyazo.com 現象 以下のようなエラーメッセージが出る場合です。 An error occurred while installing mimemagic (0.3.9), and Bundler cannot continue. Make sure that `gem install mimemagic -v '0.3.9' --source 'https://rubygems.org/'` succeeds befo…
結論 以下のとおりです。 Kitakyushu: 1110809 Saitama: 1116753 Chiba: 1117034 Fukuoka: 1117099 Hamamatsu: 1117155 Hiroshima: 1117227 Kawasaki: 1117502 Kobe: 1117545 Kumamoto: 1117605 Nagoya: 1117817 Niigata: 1117881 Sagamihara: 1118072 Sappo…
結論 設定の Test Framework の項目で明示的にテストに用いるフレームワーク*1 を指定するといける場合があります。 gyazo.com *1:RSpec とか Minitest とか
結論 --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 となっています。古い情報を参考にするとエラーになるので…