Coder Social home page Coder Social logo

ruby-notes's Introduction

Ruby tips

  • クラスもオブジェクトである
  • クラス属性もインスタンス属性も @ で始まるが、別物
  • クラスメソッドを定義するときに self を使おう
  • インスタンスメソッドの中では self が現在のオブジェクトを指すが、 省けるところでは省いた方が読みやすい
  • サブクラスは親からメソッドや属性を受け継ぐ
  • インスタンス変数は、その値を初期化(アサイン)されるまで存在せず、参照されたらあたいは nil
  • インスタンス変数はそのクラスまたはサブクラスのメソッドから参照できる
  • super は現在のメソッドがオーバーライドしているメソッドを呼び出す
  • Object クラスから to_s や instance_variables メソッドを継承しているが、to_s をオーバーライドすると綺麗に puts できる
  • メソッドにブロックを渡すことによって、指示を与えられる
  • <=>を定義して、 Comparable モジュールを mixin したら >, ==, < が使える。
  • eachメソッドを定義して、Enumerableを mixin したら、コレクションに対する様々なメソッドが使えるようになる。

JSON request params key を camelCase から snake_case への変換は、 スタンダードなやり方が確定していなさそうだが、選択肢としては

  • initializer で deep_transform_keys 変換
  • before_action で transform_keys 変換
  • その他、gem での対応
  • xにhogeメソッドがあれば、 x&.hoge と x.try(:hoge) は x.hoge と同じ
  • xにhogeメソッドがなかったら
    • xがnilの場合、x&.hogeもx.try(:hoge)もnilになる
    • xがnilでない場合、x&.hogeはエラーとなる一方、x.try(:hoge)はnilになる

インスタンスメソッドにおいて、

  • @hoge は、インスタンス変数 @hoge を参照します。
  • self.hoge は、インスタンスメソッド hoge を呼び出します。
  • self.hoge = は、インスタンスメソッド hoge= を呼び出します。
  • hoge は、ローカル変数もしくはインスタンスメソッド hoge を呼び出します
  • hoge = は、ローカル変数へ代入します。

参考

ruby-notes's People

Contributors

vochicong avatar dependabot[bot] avatar

Watchers

James Cloos avatar

Forkers

opipi406

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.