Ruby

こんにちは、しきゆらです。
今回は、タイトル通りものづくりの中でよく使うであろうrootパスを取得する方法をメモしておきます。

といっても、今回は「すべてのコマンドや実行はrootディレクトリから行う」という方針で考えています。
これを決めておけば、簡単です。

方法

すべてrootディレクトリから行うと決めてしまえば、難しいことはありません。
RubyさんはDirというディレクトリ操作のためのクラスや、Pathnameというパス名操作のためのクラスがあります。
これらを使えばよいですね。

pwd -> String
カレントディレクトリのフルパスを文字列で返します。

https://docs.ruby-lang.org/ja/latest/method/Dir/s/getwd.html

class Pathname
パス名をオブジェクト指向らしく扱うクラスです。

https://docs.ruby-lang.org/ja/latest/class/Pathname.html

コードは以下の通り。

ROOT_PATH = Pathname.new(Dir.pwd)

Dir.pwdは作業中のディレクトリを取得できるので、Pathnameで囲んでおきます。
これを定義しておけば、読み込みたいファイルをjoinでつなげていけばいいので便利。

 

まとめ

今回は、rootパスを取得する方法をメモしました。
といっても、コマンド実行しているディレクトリをrootパスとして決め撃ちしているので本来の指定方法ではないのかもしれません。

いい方法があれば教えてください。

 

今回は、ここまで。
おわり

JavaScript

こんにちは、しきゆらです。
今回は、DOMに対してクラス名を外す処理とつける処理を1行でやる方法を知ったのでメモしておきます。

DOMへのクラス追加・削除

DOMに対してクラスを追加・削除するには、それぞれadd/removeというメソッドが定義されています。
これらを使えば、動的にDOMのクラスを変更することができます。

しかし、例えば既存のAというクラスを外してBというクラスをつける
という処理を書く場合、素直に書くならば以下のように2行になってしまいます。

dom.classList.remove('A');
dom.classList.add('B');

 

クラスの追加・削除をまとめる

上記のようなコードを1行で書くには、以下の方法で行えます。

dom.classList.replace('A', 'B');

replace( oldClass, newClass )
既存のクラスを新しいクラスで置き換えます。
Element.classList – MDN

MDNを眺めていて見つけました。
知っていなくてもなんとかなるけど、知っているとコードがスッキリするやつですね。
知っているつもりでも、改めて見てみると知らないことがあるので、時々見てみるといいかもしれません。

 

まとめ

今回は、DOMの追加・削除を1行で行うメソッドを発見したのでメモしてみました。
置き換えるという方法でできる処理は1行で書けるので、知っていると少しだけコードが短くなると思います。

 

今回は、ここまで。
おわり

JavaScript

こんにちは、しきゆらです。
今回は、以前に少しだけ触れたparcelを使って開発環境を構築してみました。
また、個人的に以前まで疑問だった、JSとSCSSを用いた場合にどう管理するのか問題を解決することができたので合わせてメモしておきます。

parcelに関しては、以前少しだけ記事にしたことがありました。
=> 以前の記事:【JS】フロントエンド界隈で話題のparcelことはじめ
以前まではWebpackを利用していましたが、難解な設定や多様なプラグイン等、気軽に使うにはハードルが高い状況でした。
そんな中で、parcelは面倒で難解な設定ファイルを作成せずとも、自動で関連するファイルを監視し、変更があれば適宜処理を走らせてくれます。

そんなparcelさんですが、実際にparcelを使ったものづくりをするときにどうすればいいのかわからない部分がありました。
それは、SCSSを使った場合の読み込み方です。
HTMLからSCSSを読み込んでも、ブラウザは反映してくれません。
それをどう読み込めるようにするのかが疑問でした。
これを解決することができたので、合わせて記録しておきます。