かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Ruby

Ruby GiHub のブランチをブランチを指定して gem で読み込ませたい

Gemfile で読み込んでいる GitHub のリポジトリをPR出してるブランチで問題ないか確認したい Gemfile gem 'aikatsu', git: "git://github.com/<username>/aikatsu.git" branch: <branch_name> で指定すればOK Gemfile gem 'aikatsu', git: "git://github.com/<username>/aikatsu.git", branch:</username></branch_name></username>…

Ruby bundle install gb のエラーにハマる

Rails のプロジェクトのローカル環境を作っていて bundle install したら pg の箇所でエラーが発生したのでメモ 環境 Mac OS Catalina (10.15.6) ruby 2.7.1 (rbenv) postgresql を brew install 済み エラー内容 $ bundle install # … 略 Installing pg 1.2…

RSpec Capybara name / id のない input の fill_in にハマる

プロダクトの施策であるフォームを react component に置き換えた所、元々あった feature spec で fill_in していた部分が Capybara::ElementNotFound: で落ちるようになってしまいました。 fill_in は id か name が無いと選択できない? 新しくした React …

Ruby メソッドの検索順

初めてのRubyやり終えたのでメモがてら 継承 (親クラス と 子孫クラス) Ruby のクラスはは 1つだけ親クラスを持つ 多言語とかだと継承って呼ぶ事が多いけど、Rubyも継承って言って良いのかがチョットわからない 同じメソッドがある場合、子孫の持つメソッドが優…

Ruby Classメソッドのアクセス権

権限の種類 public ... どこからでもアクセス可能。クラス内にメソッドを定義した際のデフォルトのアクセス権 protected ... そのクラスまたはサブクラスのインスタンスメソッドからしか呼び出すことができない private ... レシーバーの省略形でしか呼び出…

Ruby クラス変数・インスタンス変数 のメモ

Ruby お勉強の自分用メモ インスタンス変数 クラス変数 クラスインスタンス変数 クラス定数 インスタンス変数 インスタンスごとに異なる値を持つ変数 @ から始まる変数名で定義する インスタンス変数はデフォルトでは外部からアクセスすることはできない、 …

Ruby メソッド定義 (def式) 内でメソッド定義 (def式)した場合のメモ

Rubyのお勉強をしていてメソッド定義内でメソッド定義したら不思議な挙動 (JS脳には予想外だっった) だったのでメモ。 メソッド定義 (def式) 内に メソッド定義 (def式) をした場合 def a puts 'A' def b puts 'B' end print "self.b > " self.b end a # => …

RSpec Capybara 非表示な要素のテストにハマる

- 非表示になっている要素には `visible: false` オプションを使う - 非表示になっている要素の内容をテストするには `find(selector, visible: false).text(:all)` を使う

RSpec Capybara href の無い a タグにハマる

RSpecの feature spec で href の無い a タグのテストをしようとしてハマったのでメモ ボタン / リンクの存在 ボタン button や submit <button>ボタンのラベル</button> <input type="submit" value="ボタンのラベル" /> expect(page).to have_button 'ボタンのラベル' リンク a タグはボタンではなくリンクでないとマッチし…

Ruby ランダムに true / false を返したい

モックアップを作っていて、条件によって表示/非表示が分かれる要素があり、ランダムで表示/非表示させたいと思いました。 ランダムに 0 / 1 を返す ぱっと思いついたのが他のJavaScriptとかでもよくやる 0 || 1 を返す方法。 Random.rand(0 .. 1) Random#ra…

Ruby benchmark-ips で処理のベンチマークを取る

で Ruby の case 文でクラス名を判定する時に、クラスそのものでもclass.name でも判定できるので、どちらのほうが処理が速いのか気になりました。 JS脳的なイメィジだとなんとなくStringでの完全一致の方が速そうな気がしたのでど、どうなんでしょう?と先…

Ruby Class を case 式で判定しようとしてハマったメモ。

Ruby は深く触ってないので初学者マンです。 Rails の複数のクラスで共通して使われている Decorator 内で case 式でクラスを判定して返す値を変えていた部分で self.class.name の文字列で判定するのではなく self.class で判定すればいいよ。とアドバイス…

Ruby gem install bundler で Permission denied エラーになった

こんにちは。今日は6月6日、D-dayだった日です。そんな日にエラーを出したのでメモ。 rbenv で Ruby のバージョンを管理していて、rbenv でインストールした別の Ruby のバージョンを切り替えた後に gem install bundler しようとしたら Permission denied @…

RSpec include_context って何

プロジェクトの RSpec をみていて、 include_context 〜 という文章があり共通処理をしているっぽいけど、どういうものなのか知らなかったので調べたメモ include_context ref. shared context - Example groups - RSpec Core - RSpec - Relish shared_conte…

RSpec Capybara アクセスしてるページのURLを知りたい。

Capybara で visit してアクセスしてるページの情報をチェックしたい current_host を使う current_url ⇒ String Fully qualified URL of the current page. ref. Class: Capybara::Session — Documentation for jnicklas/capybara (master) 他にも色々ある…

RSpec メソッドの有無をテストしたい

メソッドがある事をテスト let(:foo) { create :foo } it 'foo has #method' do expect(foo).to respond_to(:method) end 又は expect(foo.respond_to?(:method)).to be true メソッドがない事をテスト let(:foo) { create :foo } it 'foo has #method' do e…

Ruby キーワード引数で見通しを良くするゾ

Ruby には 2.0 から導入されたキーワード引数という引数の値を変数名に割り当てメソッドを呼び出す方法があるそうです。(Ruby 2.1 からデフォルト値のない Requiredキーワード引数 が使えるようになった) キーワード引数のメリット メソッドに渡している引…

RSpec Rails Decorator で undefined method にハマる

やっはろー!RubyもRailsもほぼ初心者マン即実戦で四苦八苦してる日々です。 ActiveDecorator が使われている Rails のプロジェクトで decorator のテストを RSpec で書いていた所、decorator にあるはずのメソッドが undefined method になりテストがコケて…

Ruby Haml タグやコンテンツが色々入る要素にはまる。 SyntaxError - Illegal nesting

Hamlテンプレートでタグやテキスト要素が混在したコンテンツを作成していてSyntaxErrorになったのでメモ。 エラーになる例 %div 2019年4月11日から %strong<> アイカツ! が再放送だよ!! %a(href="aikatsu")< %i.icon-help> 詳しくはコチラ! Haml::SyntaxE…

Haml タグのあるテキスト中のスペースをコントロールしたい

とあるプロジェクトのお手伝いをしていてHamlに入門しました。 雰囲気pugなんであまり変わらないかなとというイメージだったのですが、テキスト中にタグを入れてスペースが必要だったりすると結構メンドーだったのでメモ タグの前後にスペースのあるテキスト…

RubyをアプデートしてRails 5 をインストール

1.Homebrew 自体をアップデート $ brew update 2. rbenv, ruby-build をアップデート $ brew upgrade rbenv ruby-build 3. rbenv で Ruby をアップデート インストール可能なRubyのバージョンを表示 $ rbenv install -l Ruby をインストール $ rbenv install…

Ruby Slim タグなどを含んだ変数をエスケープせずに出力したい。

Slim テンプレートでの変数の出力の方法は、こんな感じに=で出力することができます。 div p= @value 文章中や、属性中に変数展開させる場合は#{変数名}で出力します。 p a.btn src="edit/#{@id}" 編集 しかし、上記の方法ではHTMLタグや"などを含んだ文字列…

Ruby Stylusでnibを使いたい。

前回 Ruby(sinatra)でStylusを使えるようにしました。 しかし、このままではSassで言うところのCompassにあたるnibを使うことができていませんでした。nibを使えるようにした際のメモです。 nibはnode(npm)でインストールしておく必要がある $ npm install n…

Ruby (2.2.0) 自分で作成したファイルを読み込む(require)にハマる

Ruby(2.2.0)を使っていて自作したファイルを読み込み(require)する際にハマったのでメモ。 結論から言えば自作ファイルを読み込ませる際は相対パスで読み込むrequire_relativeを使うのが良さそう。 ファイル構成と読み込み ファイル構成 /app |- main.rb # <…

Ruby Bool値かどうか型チェックしたい。ついでにis_bool?メソッドを作ってみた。

Rubyで変数がBoolean型かどうかチェックしたい。 かなりレアケースな気がするけれど、この前参加した勉強会で要望があったのでトライしてみた。 RubyのTrueとFalse false ... false, nil の時 true ... false, nil 以外全てtrue Rubyには is_bool? という関…

Ruby Sinatraでstylusを使いたい。

久々にRubyの勉強に戻ってきました。 作りながら学ぶRuby入門 第2版作者: 久保秋真出版社/メーカー: SBクリエイティブ発売日: 2013/11/21メディア: Kindle版この商品を含むブログ (3件) を見る けっこう古い書籍ですが、1つのアプリを作りながらRubyに慣れよ…

Ruby mysql2のメモ

RubyでMySQLとデータのやり取りをしたいと思いました。 gemで探すとライブラリがヒマラヤ程たくさん出ててどれが良いのか良く解りませんでした。。。 こちらの記事を参考に、とりあえずmysql2を使ってみましたのでメモ データを取ってきてループして表示させ…

Ruby 日付が存在するか知りたい

require "date" p Date.new(2015, 2, 29) #=> `new': invalid date (ArgumentError) 存在しない日付でDateオブジェクトを作ろうとするとArgumentErrorで死んでしまうので、Dateオブジェクトを作る前に日付が存在するか知りたい。 Date.valid_date?を使う Dat…

Rubyをアップデートしようとしたらrbenvに最新版が表示されない時の対処法

chaika.hatenablog.com rbenvで管理しているRubyのバージョンを上げようとしたら、ruby-build、rbenvを最新版にしていても最新版のRubyのバージョンが表示されないという事態に遭遇しました。 ruby-build、rbenvを最新版にする $ brew upgrade ruby-build rb…

Ruby ループで配列のindexを取得したい。

Rubyのeachメソッドはハッシュだとキーが一緒に取得できるが、配列だとインデックスは取得できない。 HashとArray(配列)のeach Hash hash = {commander: "Mika", gunner: "Aki", driver: "Mikko"} hash.each{|key, value| puts "#{key} => #{value}" } Array…