Closed5

Ruby に入門するぜ

タピオカタピオカ

Ruby とは?

まつもとゆきひろ(通称: Matz)により開発された、簡潔な文法が特徴的なオブジェクト指向スクリプト言語。 Perl が6月の誕生石 Pearl に由来することから、その次の7月の誕生石である Ruby から名付けられたらしい。

Ruby - Wikipedia

タピオカタピオカ

環境構築

ローカルを汚したくないので Docker で済ませる。
Dockerを使ってRubyの開発環境を構築してみました を参考に以下のようにした。

Dockerfile
FROM ruby:latest

RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

WORKDIR /app

COPY Gemfile* /app/

RUN bundle install

ENV LANG=ja_JP.UTF-8
ENV TZ=Asia/Tokyo
docker-compose.yml
version: "3.7"
services:
  app:
    build: .
    tty: true
    ports:
      - "3000:3000"
    volumes:
      - .:/app
タピオカタピオカ

VSCode 拡張機能

Ruby LSP - Visual Studio Marketplace

主に以下の機能があるらしい。

  • Semantic highlighting
  • Symbol search and code outline
  • RuboCop errors and warnings (diagnostics)
  • Format on save (with RuboCop or Syntax Tree)
  • Format on type
  • Debugging support
  • Running and debugging tests through VS Code's UI

Ruby - Visual Studio Marketplace を紹介している記事もあったりするが、現在は非推奨となっている。

ローカルにインストールしたら以下のエラーが発生した。

Failed to activate none environment: The Ruby LSP requires Ruby 3.0 or newer to run. This project is using 2.6.10. See alternatives

確かにローカルの ruby version は 2.6.10 だ。 コンテナの中でインストールすればエラーは発生しなかったので一旦これでいく。


その他にも便利な拡張機能はいろいろあるだろうが一旦これだけにしておく。

タピオカタピオカ

20分ではじめるRuby

Ruby の基礎を学ぶ

メソッドの定義

def hi(name = "World")
  puts "Hello #{name.capitalize}!"
end

クラスの定義

class Greeter
  def initialize(name = "World")
    @name = name
  end
  def say_hi
    puts "Hi #{@name}!"
  end
  def say_bye
    puts "Bye #{@name}, come back soon."
  end
end

greeter = Greeter.new("Pat")
  • デフォルトではインスタンス変数には外からアクセスできない
    • attr_accessor :name を指定するとアクセスすることができるようになる
  • クラスは定義後でも変更できる

その他

  • irb という対話インターフェスがある
  • if __FILE__ == $0 でメインファイルとして実行されたときのみ動作するコードを書ける
このスクラップは1ヶ月前にクローズされました