- 1. Docker環境でrails 6以降の構築しました。あ、macはM1チップです。
- 2. 凝縮度・結合度という尺度から関数のリファクタリングを行う
- 3. Rubyで文字のUnicode(10進数表記)を取得する
- 4. authenticate_user!メソッド
- 5. (未解決) Mac + Ruby + Selenium + Chrome でドラッグ&ドロップが出来ない。カーソル位置でドロップされてしまう。
- 6. Mac + Ruby + selenium を初めて使う
- 7. 未経験からITエンジニアになる〜ポートフォリオ作成〜
- 8. 【Ruby】配列要素を集計したい!
- 9. 【Ruby】sortとsort_byってどう違う?
- 10. Python,Ruby,PHP,Java,JavaScript,Perlのデータベースの比較
- 11. Railsの基礎を使って、メッセージ投稿アプリを作ってみた 【第4章】(7.Bootstrapでスタイルをつける)
- 12. FizzBuzz問題を解いた備忘録
- 13. "rails g"コマンドを叩いたらターミナルが固まってしまった時の対処法
- 14. Railsバージョンの問題解決
- 15. Xcode(CommandLineTools)14系を使っているとRubyがインストールできない問題
- 16. if分を極力シンプルに記述する
- 17. Python,Ruby,PHP,Java,JavaScript,Perlの日付・時刻の比較
- 18. 【Ruby】用語学習
- 19. 【Ruby】用語学習
- 20. [Ruby]ハッシュ_値の再代入
Docker環境でrails 6以降の構築しました。あ、macはM1チップです。
私はサラリーマンである。
ITエンジニアである。明日も7時前に起きて出社の準備をしないといけない。今深夜1時。この記事を書き終わる頃には2時とかだろう、早く寝ろ俺。
しかし一個だけ言わせてほしい。
dockerお前の仕事は環境の差異をなくすことちゃうんか!?お前が一番差異に困惑しとるやないかぇぇぇぇぇぇウェえええええええ!!!
# 失礼しました
タイトルの通りrailsをDockerに走らせるだけの簡単なお仕事でミスりまくってものすごい時間を費やしたので書いてます。
# 試したこと
https://zenn.dev/tmasuyama1114/articles/rails-docker-5x-how-to
自分が作ったdeviceでログイン + 文章投稿する という簡単なアプリケーションを
上記リンクを参考にDockercomposeファイルを足してコンテナ化しようとしました。# そもそも使てるアプリケーションがrails 6~
まず手始めにエラーが出たのは
“`ターミナル
bundler: command not found: rail……..
`
凝縮度・結合度という尺度から関数のリファクタリングを行う
# 背景
https://gihyo.jp/magazine/wdpress/archive/2022/vol127
☝️読んで感化されました。
https://fortee.jp/object-oriented-conference-2020/proposal/a826b6c6-167c-4c5c-bfc7-52bb8bc22ec1
感化された内容は☝️でもまとめられています。
この記事は上記の内容を読み解いていくだけです。# はじめに
より良いプロダクトにするために色々な設計論や尺度が存在しています。
知っておいて良いと思うのですが、ひきづられない方がよくて、
現状のプロダクトにとって **何が最善なのかはチームで決めていく** ことが望ましいと思います。
(本の受け売り)この記事では
– 凝縮度
– 結合度の観点から関数のリファクタリングについて考えてみたいと思います。
# なぜリファクタリングするのか
https://refactoring.com/
> Since each refactoring is small, it’s less li
Rubyで文字のUnicode(10進数表記)を取得する
## TL;DR
`String.ord` or `String.unpack(“U*”)`を使う
“`ruby
‘あ’.ord # 12354
‘あ’.unpack(“U*”) # [12354]
“`
https://docs.ruby-lang.org/ja/latest/method/String/i/ord.htmlhttps://docs.ruby-lang.org/ja/latest/method/String/i/unpack.html
## ordとunpackの違い
返り値の型が違うので実装上は注意が必要です。
`ord`は最初の文字のUnicodeをIntで返しますが、`unpack`は1文字ずつのUnicodeをArrayで返します。
“`ruby
# 対象が1文字
‘あ’.ord # 12345
‘あ’.unpack(“U*”) # [12354]# 対象が複数文字
‘あいうえお’.ord # 12354
‘あいうえお’.unpack(“U*”) # [1
authenticate_user!メソッド
# authenticate_user!メソッドとは
ログイン状態によって表示するページを切り替えるdeviseのメソッドで
ユーザーがログインしていなければ、そのユーザーをログイン画面に遷移させる事が出来ます
以下のようにcontroller内にbefore_actionを記述する事で、アクションを実行する前にログインしていなければログイン画面に遷移させられます。“`:ruby
before_action :authenticate_user!
“`##### indexアクションではログインをしていなくても閲覧できるようにしたい場合は以下のように記述する
“`:ruby indexはログインせずに閲覧できる
before_action :authenticate_user!, except: :index
“`##### このように複数のアクションにも適用する事も出来ます
“`:ruby indexとshowをログインせずに閲覧できる
before_action :authenticate_user!, except: [:index, :show]
`
(未解決) Mac + Ruby + Selenium + Chrome でドラッグ&ドロップが出来ない。カーソル位置でドロップされてしまう。
# 感想
drag_and_drop ではなく他のメソッドを使ってみても無理で、Seleniumのカーソル移動的な挙動(?)が壊れているかもしれない気がした。
Firefoxではまったくドラッグもドロップも出来なかった。
# Ruby
“`rb
require ‘selenium-webdriver’driver = Selenium::WebDriver.for :chrome
driver.navigate.to “file:///Users/yumainaura/projects/YumaInaura/ruby/drag-and-drop.html”source = driver.find_element(:id, ‘p1’)
target = driver.find_element(:id, ‘dd1’)driver.action.drag_and_drop(source, target).perform
sleep 3
“`# HTML
“`html