1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ruby自分用メモ

Last updated at Posted at 2018-10-17

編集中

メモ

  • Rubyではfalseとnilが「偽」、それ以外が「真」として扱われます。
  • [1,2,3] << 4 → 配列の追加(結果は[1,2,3,4])
  • source_location() → メソッドの定義場所を調べられる
  • nextは繰り返しの中で処理をスキップし、繰り返し処理を続行する block内で使うとblockをスキップする
  • Rubyではcallerメソッドで呼び出し元がわかる
  • メソッド全体の例外を拾う場合はbeginを書かない
  • ||=の使い方
  • ||演算子のいろんな使い方
  • !!の意味

用語

名称 説明 備考
rbenv 複数のRubyのバージョンを管理するもの
bundler Gemを扱うパッケージの個別の依存関係を解決してくれて、インストールしてくるもの
Gem Rubyのパッケージ管理ツールの事。また各ライブラリのことも指す
ブロック do~end(もしくは{~})で囲われた、引数となるためのカタマリ。
引数として渡されたブロックは、yieldによって実行される
RubyForge Ruby版のSourceForgeのようなモノ 現在はgithubに移行
破壊的メソッド レシーバにあたるオブジェクトの値そのものを変更してしまうメソッド
def initialize
end
コンストラクタ
require ファイル読み込み 標準ライブラリは require 'libcdb' ライブラリ名
外部自作ファイルはrequire_relative 'hoge'
require './hoge'
var = object || obeject 左のobjectが真なら左を返す
self.class.hoge クラスメソッドをインスタンスメソッドから呼び出す際に使用する
#{...} 式展開
オブジェクト.class.name オブジェクトの型を調べる
self カレントオブジェクト(インスタンス)を指す、特殊な変数 self と付けないとローカル変数への代入となってしまうので、
self を明示的に付ける。
カレントオブジェクト メソッドなどを実行しているオブジェクトのこと student2 = Student.new
student2.func (student2.funcのこと)
<< <<演算子(メソッド)は、左辺の配列(レシーバ)の末尾に右辺のオブジェクトを要素として加えます。
レシーバ自身を変更するメソッドです。戻り値はレシーバ自身です。
:シンボル 基本シンボルは前置 ハッシュのキーとしてシンボルを使う際や、
キーワード引数を使う際に、コロン記号「:」を後置
シンボルは「-」が使えない
ハッシュ ハッシュの入れ方 hash = {ruby:"rails",python:"Django",php:"cakePHP"}
ハッシュの中身 {:ruby=>"rails", :python=>"Django", :php=>"cakePHP"}
多次元配列
{"DM"=>{1=>["0001"]}}
真偽値 Rubyでは、falseとnilを除くすべての値が真です
つまり、0は、真です

変数

  • Ruby では、以下は単なる慣習ではなく、名前によりスコープが決定

    • ローカル変数 : 先頭が小文字 or _
    • グローバル変数 : 先頭が $
    • インスタンス変数: 先頭が @
    • クラス変数 : 先頭が @@
    • 定数 : 先頭が大文字
  • 以下は慣習

    • 変数名は、xxx_xxx_xxx のような、小文字を _ でつなぐ形
  • 擬似変数

メソッド(関数)

  • クラスメソッド
#定義
class クラス名
  def クラス名.メソッド名(引数)
  end
    #以下のようにも定義できる
  def self.メソッド名(引数)
  end
end

#呼び出し
クラス名.メソッド名

#::を使ってもOK
クラス名::メソッド名

  • インスタンスメソッド
#定義
class クラス名
  def メソッド名(引数)
  end
end

#呼び出し
変数名 = クラス名.new
変数名.メソッド名(引数)
  • ブロック付きメソッド呼び出し
    • Ruby ではブロック付きメソッド呼び出しを用いるコードが好まれることが多い
    • ブロック付きメソッドとyieldは、コールバック関数を簡単に書けるようにしたもの
    • yieldがブロックを処理
    • 【初心者向け】ブロック付きメソッドとは
#定義
def block_method
  yield "a"
  yield "b"
  yield "c"
end

#呼び出し
block_method do |x|
  puts x
end

#定義
def plus(x, y)
  yield x, y
end

#呼び出し
plus(1, 1) do |a, b|
  puts a+b
end
  • 以下は慣習

    • メソッド名は、xxx_xxx_xxx のような、小文字を _ でつなぐ形
    • ?で終わるメソッドは、真偽値を返す
    • !で終わるメソッドは、破壊的メソッド
  • その他

    • 関数は引数がない場合()を省略できる
    • 引数の最後がハッシュの場合、{}を省略できる
    • メソッドの上位置にpublicもしくはprivateと記載すると、下側はそれに反映される
    •  returnがない場合、メソッドの中の一番最後の式がメソッドの戻り値となる
クラス名 メソッド名 機能説明
String gsub 正規表現にマッチした部分をすべて変換するメソッド
String chomp 文字列の末尾の改行文字を取り除いた新しい文字列を返します
Dir grob 任意の文字列を含むファイルを取得

Module

機能
メソッド
定数

使い方
名前空間
多重継承実現

include
モジュールに定義されたメソッドをクラスにインスタンスメソッドとして取り込む

モジュール内で宣言されたクラスメソッドは
クラスと同様にモジュールから直接呼び出すことができます。

module Mod
  def self.hello
    puts 'Hello'
  end
end

Mod.hello #=> "Hello"
  • 以下は慣習
    • モジュール名は、キャメルケース

例外

begin
  # 例外を投げるのは、raise メッセージ(or クラス)
rescue => 変数
  # 例外時の処理
ensure
  # 必ず実行される
end

ライブラリ

ライブラリ一覧

  1. Rack

    • RubyでWebサーバーを立ち上げるためのインターフェース
    • Rackとは何か
  2. WEBrick

    • 単純なHTTP Webサーバの機能を提供する
  3. rake

    • Rake というコマンドラインツールを扱うライブラリ
    • 別途詳細

Rake

  • Rakeとは
    • Rubyで記述されたbuildツールでMakeやAnt,Mavenと同種のツール
    • ファイル名は拡張子無しの「Rakefile」が多い
      拡張子ありのsample.rakeやsample.rbの場合もある
    • ファイルタスクには、対応するファイルが作られていないときか、依存してるファイルが更新されたときの
      どちらかのときにしか実行されないっていう特徴がある。
#定義
task タスク名 , [パラメータ名, パラメータ名 ... ] => [事前タスク名,事前タスク名 ... ] do
  # アクション
  puts 'hello'
end

#呼び出し
rake タスク名[パラメーター名]

ファイルタスク
#定義
rake タスク名 => "index.html"

file "index.html" do
end

#呼び出し
rake タスク名

RubyMine

RubyMine 公式ショートカット一覧 (日本語版) Mac

コマンド 説明
⌘ + B コードジャンプ
⌘ + [ 戻る
shift 2回 どこでも検索
コード補完 明示的に示していなければコード補完はしてくれない
⌘ + Shift + F テキスト検索
⌘ + Shift + o ファイル検索
Shift + # 式展開
option + F7 ソース内で他に使ってるところを検索してくれる
⌘ + / コメントアウト

デバック

【Ruby入門】loggerの使い方まとめ

参照リンク

Rubyメモ
RubyのModuleの使い方とはいった
Ruby block/proc/lambdaの使いどころ
Rubyで使われる記号の意味(正規表現の複雑な記号は除く)
[初心者向け] RubyやRailsでリファクタリングに使えそうなイディオムとか便利メソッドとか

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?