- 1. 【VSCode】Rubyでコードジャンプする方法
- 2. 【RSpecエラー】Failure/Error: require_relative ‘../config/environment’ FrozenError:対処
- 3. 【Ruby】RubyMineでRubyのバージョンを変えるときには気をつけろー!
- 4. Cursorを使ってrubyコードを生成してみた
- 5. 小数点以下の表示
- 6. Amazonの字幕(ttml2)をテキストファイルに変換する
- 7. [Ruby] メモリと見るshallow copy
- 8. ファイル操作の基礎:閉じたファイルオブジェクトと再オープン時のエラー
- 9. Ruby on Railsでのとの使い方について
- 10. JavaとRubyにおけるインターフェースの比較
- 11. Ruby 2.6.6でRails 6.0.3をインストールする際のトラブルシューティング
- 12. Rubyのバージョン管理とgemインストール時のパーミッションエラーの解決方法
- 13. macOS 12.6 on arm64 で rbenv を使用して Ruby 2.6.6 をインストールする際のエラーと対策
- 14. 初学者がRuby Silverに合格!勉強方法をまとめてみました!
- 15. 【Ruby】そのassert_raisesの使い方、本当に合ってる? – assert_raisesでエラーメッセージをテストする方法
- 16. EC2インストールにrbenv install -v 3.3.0を実行して失敗した
- 17. Rails newからデプロイまで
- 18. 【Rails】「アセットパイプライン」とは
- 19. Ruby 小数点の計算結果の誤差について
- 20. 【個人開発】生成AIを使って名言を提供するサービスを開発しました【Rails】
【VSCode】Rubyでコードジャンプする方法
# はじめに
本投稿では、VSCodeでRubyのコードジャンプを提供してくれる拡張機能の導入方法を解説してます。## 対象者
– VSCodeでRubyの開発を行っていて、JSなどと同様にコードジャンプしたい方
– 拡張機能をインストールしたものの、期待通りにコードジャンプが動作しなかった方# 拡張機能
Rubyのコードジャンプを提供してくれる拡張機能として、ダウンロード数の多い以下の2つを導入して、軽く動作確認しました。– Ruby Solargraph
– Ruby LSP## 現時点の感想
現時点でコードジャンプ用途であれば、`Ruby Solargraph`のほうが使いやすいと感じた。
拡張機能 | 現時点の感想
— | —
Ruby Solargraph | クラス、メソッドいずれもジャンプできた。コードジャンプ用途ならこちらのほうが使いやすいと感じた。
Ruby LSP | コードジャンプできる箇所が限られており、やや不便と感じた。(インスタンス化したクラスのメソッド呼び出しから、定義元クラスの先頭にしかジャンプできなかった)コ
【RSpecエラー】Failure/Error: require_relative ‘../config/environment’ FrozenError:対処
## はじめに
RSpecテストで「**bundle exec rspec**」を実行したところ以下のようなエラーが発生しました。
“`
An error occurred while loading ./spec/models/user_spec.rb.
Failure/Error: require_relative ‘../config/environment’FrozenError:
can’t modify frozen Array: [“/usr/local/bundle/gems/turbo-rails-2.0.5/app/channels”, “/usr/local/bundle/gems/turbo-rails-2.0.5/app/controllers”, “/usr/local/bundle/gems/turbo-rails-2.0.5/app/controllers/concerns”, “/usr/local/bundle/gems/turbo-rails-2.0.5/app/helpers”, “/usr/local/bundle/gems/turb
【Ruby】RubyMineでRubyのバージョンを変えるときには気をつけろー!
どうもこんにちは。
今回は、RubyMineでRubyのバージョンを変えたいのに変わらない問題の原因がわかったので紹介します。
https://scrapbox.io/siroemk/RubyMine%E3%81%A7rbenv%E3%81%8C%E5%8F%8D%E6%98%A0%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E4%BB%B6
# 何が起きていた?
`bundle install`を実行したかったのですが、バージョンが違うよとエラーが出てきてしまいました。
“`sh
% bundle install
Your Ruby version is 2.7.6, but your Gemfile specified 3.2.2
“`確認すると、`2.7.6`を使用している状態となっていました。
“`sh
$ rbenv versions
system
* 2.7.6 (set by RBENV_VERSION environment variable)
3.2.2
3.2.3
3.3.0
“``3.2.2`
Cursorを使ってrubyコードを生成してみた
## Cursorとは
前から使ってみたいと思っていたCursorを今回使ってみました。Cursorとはchatgptを組み込んだコードエディターです。
会話ベースでコードを書いてくれたり、修正してくれます。
VSCodeをフォークしているみたいなので、今までVSCodeを使っていた方は直感的に使えると思います。## インストール方法
インストール方法や使い方はこちらの記事を参考にさせていただきました。
https://blog.future.ad.jp/cursor
ダウンロードは以下の公式からできます。
https://www.cursor.com/
## railsでCursorを使ってみる
私はWSLに接続し、docker環境で使ってみることにしました。
任意の場所に、test.rbを作成します。
Ctrl + Kを押すと、以下のように入力フォームが出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1328154/76e50f17-c94f-bb0a-
小数点以下の表示
整数同士の割り算は、小数点以下が切り捨てられる。
“`
1 / 3
=> 0
“`直接数値同士を計算する場合は、どちらかの数値に.0をつけることで小数点以下を表示可能。
“`
1.0 / 3
=> 0.3333333333333333
“`変数を使用して計算する場合はto_fメソッドで整数から少数に変更可能。
“`
a = 1
=> 1a / 3
=> 0a.to_f / 3
=> 0.3333333333333333
“`
Amazonの字幕(ttml2)をテキストファイルに変換する
### ソース
“`ttml2text.rb
require ‘nokogiri’doc = Nokogiri::parse($stdin.read)
doc.css(‘p’).each do |node|
line = node.xpath(‘.//text()’).map do |e|
words = e.text
words.strip!
words if words.length > 0
end.compact.join(” “)
puts line
end
“`### 使い方
“`lang:bash
ruby ttml2text.rb < インプットttml2 > アウトプット.txt
“`### ソース解説
– Amazonプライムの字幕データはHTMLっぽいXML
– pタグが字幕データそのものなので、`css(‘p’)` で字幕ノードを取得
– 細かいメタデータを削除したいので、 `xpath(‘.//text()’)` でテキストノードを取得
– 空白のテキストノードを削除してつなげる
– brとかで区切
[Ruby] メモリと見るshallow copy
最近勉強して出てきた`shallow copy`について、まとめてみます。
新米エンジニアなので、誤りがあったらご指摘ください:santa:# shallow copyとは
かなりざっくり「**外見は別物だけど、中身は一緒だよ**」というコピー
– **aオブジェクト**と、それをコピーしてできた**bオブジェクト**があった場合…1. aオブジェクトとbオブジェクトは、別々の`object_id`だよ(**外見は別物**)
2. aオブジェクトとbオブジェクトが指してるオブジェクト(配列の要素など)の参照先は一緒だよ(**中身は一緒**)というコピーのこと。
Rubyだと、`clone`や`dup`で`shallow copy`ができます。
文字だけだと何を言っているか分かりにくいので、次にいきましょう。
# 見てみよう
※分かりやすくするために、`object_id`をメモリの番地としています。(`object_id`は適当です)#### 1. `shallow copy`元と、`copy`先の`object_i
ファイル操作の基礎:閉じたファイルオブジェクトと再オープン時のエラー
# 閉じたファイルオブジェクトに対する操作
以下のコードは、ファイルを書き込み用に開き、テキストを書き込む処理です。
最後にファイルを閉じる操作を入れないと、ファイルを開くために確保したメモリが解放されなかったり、整合性と排他制御の問題からファイル操作が正常に行われなかったりします。“`ruby
# File.openでファイルを開き、File.closeで閉じる
file = File.open(“example.txt”, “w”)
file.puts “Hello, world!”
file.close# もしくはブロックで囲むことで、勝手にファイルが閉じられる
File.open(“example.txt”, “w”).do |file|
file.puts “Hello, world!”
end
“`ここまでは問題ないですが、一度ファイルを閉じた後に対象のファイルオブジェクトを再利用しようとすると、当然怒られます。
“`ruby
file = File.open(“example.txt”, “w”)
file.write(“Hello, worl
Ruby on Railsでの<%= %>と<% %>の使い方について
# はじめに
Ruby on Railsでは、<%= %>と<% %>は埋め込みRuby(ERB)テンプレート内でRubyコードをHTMLに組み込むためのものです。# <%= %>と<% %>の違いは
### 1. <%= %>(出力ありのERB):
<%= %>は、Rubyコードを評価し、その結果をHTML出力する場合に使います。これは**戻り値のあるメソッド**と考えることができます。
例: <%= @user.name %> は、@userインスタンス変数の名前を出力します。### 2. <% %>(出力なしのERB):
<% %>は、Rubyコードを評価して結果を直接HTML出力せず実行したい場合に使います。 **戻り値のないメソッド(void)** だと考えればいいでしょう。
例: <% if @user.admin? %> 管理者 <% end %> は、ユーザーが管理者の場合にのみ「管理者」というテキストを表示します。# form_tag
下記コードを見てください。form_tagは一見 **戻り値のないメソッド(void)** に見えて、 <% %>
JavaとRubyにおけるインターフェースの比較
# JavaとRubyにおけるインターフェースの比較
この記事では、JavaとRubyにおけるインターフェースの概念と実装方法を比較しながら解説します。両言語の特徴を活かしたアプローチを見ていきましょう。
## 1. 基本的なインターフェースの定義と実装
### Java
Javaでは、`interface`キーワードを使用してインターフェースを明示的に定義します。
“`java
// インターフェースの定義
public interface Drawable {
void draw();
}// インターフェースの実装
public class Circle implements Drawable {
@Override
public void draw() {
System.out.println(“円を描画します”);
}
}public class Square implements Drawable {
@Override
public void draw() {
System
Ruby 2.6.6でRails 6.0.3をインストールする際のトラブルシューティング
### エラー1: nokogiriのバージョンとRubyの互換性に関するエラー
Ruby 2.6.6でRails 6.0.3をインストールしようとすると、次のようなエラーが発生することがあります。“`bash
$ gem install rails -v 6.0.3ERROR: Error installing rails:
The last version of nokogiri (>= 1.8.5) to support your Ruby & RubyGems was 1.13.10.
Try installing it with `gem install nokogiri -v 1.13.10` and then running the current command again.
nokogiri requires Ruby version >= 3.0.0. The current ruby version is 2.6.6.146.
“`
このエラーは、nokogiri gem がRuby 3.0.0以上を要求しているために発生します。解決方法として、nok
Rubyのバージョン管理とgemインストール時のパーミッションエラーの解決方法
# 問題
Ruby on Railsをインストールしようとして、次のエラーが表示されました:
“`bash
You don’t have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.
“`# 原因
このエラーは、システムにインストールされているRubyのバージョンでgemを管理しようとしているためです。システムのRubyでは通常、ユーザーに書き込み権限が与えられていないため、gemをインストールすることができません。# 解決方法
rbenvを使用してRubyのバージョンを管理するrbenvを使ってローカルにRubyのバージョンをインストールし、管理することで、この問題を回避できます。
“`bash
$ rbenv install 2.6.6
$ rbenv global 2.6.6
“`
これにより、ローカルにインストールしたRubyのバージョンがシステムのRubyより優先されるよ
macOS 12.6 on arm64 で rbenv を使用して Ruby 2.6.6 をインストールする際のエラーと対策
最近、macOS 12.6 on arm64 環境で rbenv を使用して Ruby 2.6.6 をインストールしようとしたところ、以下のようなエラーに遭遇しました。
“`bash
BUILD FAILED (macOS 12.6 on arm64 using ruby-build 20240612-2-g08aadf4)
“`このエラーは、特定の環境設定が必要であることを示しています。そこで、解決策として次のコマンドを使用しました。
“`bash
RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC arch -arm64 rbenv install 2.6.6
“`これにより、Ruby 2.6.6 を正常にインストールすることができました。
## 解決方法の詳細
このエラーは、ARMアーキテクチャ上でのRubyのビルド時に必要な特定のCFLAGS設定が不足していたことが原因でした。RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC arch -arm64 を使用することで、ARM64環境向けに適切なビルドオプションが適用
初学者がRuby Silverに合格!勉強方法をまとめてみました!
現在オンラインスクールにてプログラム学習をしているMiyaki(@Miyaki)と申します。
初学者ゆえに、記事の内容に誤りや分かりにくい点があるかもしれませんがお許しください🙇♂️
Ruby Silverに合格しましたので、資格を取得するために実践した方法について共有させていただきます!# 目次