Ruby関連のことを調べてみた2022年09月29日

Ruby関連のことを調べてみた2022年09月29日

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.html

https://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