[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

2024年参考ページ

今年の参考文献

  1. RubyでCSVを扱うために大切なことはみんなExcelから教わった #Ruby - Qiita
  2. Ruby でクラスオブジェクト同士を比較するときは case ではなく if を使う #Ruby - Qiita
  3. 作成したgemを扱う際の注意点 #Ruby - Qiita
  4. YAMLで複数行テキストを書きたい時のあれこれ #Heredoc - Qiita
  5. SSHログイン時の "Activate the web console with: XXX" を消す方法 #centos8 - Qiita
  6. SSHログイン時のメッセージ表示を消したい&任意のメッセージを表示したい #redhat8 - Qiita
  7. 社内向けのgemをGitHub Packagesのプライベートgemとしてpublishする方法 - BOOK☆WALKER inside
  8. RubyのHTTPリクエストをできるだけシンプルに実装する #Ruby - Qiita
  9. 技術メモメモ: Kickstartを使ってRHEL 8やRHEL 9を自動インストールする
  10. Windows 10 USB を Mac で作成 - 起動可能な ISO を Mac のターミナルから作成する方法
  11. Vagrant + Hyper-V 静的IP設定 + SMB設定 - 日々の備忘録
  12. MySQL :: MySQL 8.0 リファレンスマニュアル :: 6.7.4 SELinux ファイルコンテキスト
  13. 第24章 systemd を使用してアプリケーションが使用するリソースを管理する | Red Hat Product Documentation
  14. How to Use the GitHub API to List Repositories • Stateful
  15. LVMで 論理ボリュームの作成、拡張、縮小、複製 #Linux - Qiita
  16. 10.6. root パスワードの変更およびリセット | Red Hat Product Documentation
  17. ネットが使えないサーバー上でpip installをする方法
  18. ITクソつまんなくなった。
  19. cloud-initを使ったLinux OSの初期設定 #AWS - Qiita
  20. ウインドウをスナップ操作で整列時に候補を表示しない - パソコントラブルQ&A
  21. Serverspec - Resource Types
  22. CentOS 8 : PAM インストールと設定 : Server World
  23. OS の認証周りの設定を変更してみよう ~authselect について~ | SIOS Tech. Lab
  24. podman-system-service — Podman documentation
  25. ジョブをバックグラウンドにしたりフォアグラウンドにしたりkillしたり
  26. terraform-provider-libvirtを使ってみた #Terraform - Qiita
  27. Hash#== (Ruby 3.3 リファレンスマニュアル)
  28. 全ての開発者がQiitaへのアウトプットをやめるべき理由 #ポエム - Qiita
  29. How do I delete a Bitly Link? – Bitly Support
  30. curlのオプション-fsSLを読み解く - hy4yh’s diary
  31. dnf で特定のバージョンを指定してインストール | インフラエンジニア|パイナップル星人 ブログ
  32. Vagrant and VMWare Fusion 13 on Apple M1 Pro · GitHub
  33. 仮想マシン作成&実行アプリの「VMware Workstation Pro」と「VMware Fusion」が完全に無料化 - GIGAZINE
  34. RubyでBOMつきUTF-8のCSVを正しく読み込む方法3選
  35. オートメーション・バカ 先端技術がわたしたちにしていること | 一般社団法人 中部品質管理協会
  36. 13.10. ノート PC を閉じた際にコンピューターがサスペンドしないようにする | Red Hat Product Documentation
  37. Turn off beep / bell on linux terminal - LinuxConfig
  38. Linuxのsplit、csplitコマンドでファイルを分割 #Split - Qiita

Rubyの無名クラス

Rubyの無名クラスを使うと、JSONのデータ構造をクラスとして扱える。

無名クラスを作り、Hashのキー、バリューをそれぞれインスタンス変数、インスタンス変数の値として定義できる。

変数は1つずつ定義するのではなく、each文を使って、Hashをクラスインスタンス変数にすることが出来る。

つまり、JSONを変換したHashのキー、バリューをインスタンス変数に出来る。

Hashのキーの先頭に@を付けることで、クラス内で変数として、使用することが出来るようになる。

何が嬉しいか?

RubyJSONを扱う際、Hashの記法(hash["name"]など)を使用したり、JSONの値を使うたびにひとつずつ、変数定義をしなければならなかった。

無名クラスを使うことで、使いたい値のキーを直接使うことが出来るようになる。

加えて、クラスにすることで、特異メソッドを定義することができる。

それにより、JSONデータに対する共通の処理も定義出来るようになる。

# frozen_string_literal: true

def create_dynamic_class(hash)
  Class.new do
    hash.each_key do |key|
      attr_accessor key.to_sym
    end

    define_method(:initialize) do
      hash.each do |key, value|
        instance_variable_set("@#{key}", value)
      end
    end

    define_method(:info) do
      "#{@name} - #{@artistName}"
    end
  end
end

JSONのキーにname、artistNameが含まれており、無名クラス内で、インスタンス変数として使用できる。

https://github.com/YumaYX/ranker/blob/main/dynamic_class.rb