https://github.com/xpdojo/ruby
Ruby is an interpreted, high-level, general-purpose programming language which supports multiple programming paradigms.
https://github.com/xpdojo/ruby
gem ruby ruby-on-rails
Last synced: 27 days ago
JSON representation
Ruby is an interpreted, high-level, general-purpose programming language which supports multiple programming paradigms.
- Host: GitHub
- URL: https://github.com/xpdojo/ruby
- Owner: xpdojo
- License: gpl-3.0
- Created: 2021-03-27T13:29:00.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2022-07-10T09:43:39.000Z (almost 4 years ago)
- Last Synced: 2025-02-06T15:53:25.558Z (over 1 year ago)
- Topics: gem, ruby, ruby-on-rails
- Language: Ruby
- Homepage: https://www.ruby-lang.org/
- Size: 21.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ruby
- [Ruby](#ruby)
- [Install](#install)
- [REPL (Read-eval-print loop)](#repl-read-eval-print-loop)
- [Package Manager](#package-manager)
- [JetBrains - RubyMine 설정](#jetbrains---rubymine-설정)
- [Task Management](#task-management)
- [Java에서 Ruby로](#java에서-ruby로)
- [비슷한 점들](#비슷한-점들)
- [다른 점들](#다른-점들)
## Install
```shell
# RVM (Ruby Version Manager) 설치
> curl -sSL https://get.rvm.io | bash
> source $HOME/.rvm/scripts/rvm
```
```shell
# 사용할 수 있는 Ruby 버전 조회
> rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.10]
[ruby-]2.3[.8]
[ruby-]2.4[.10]
[ruby-]2.5[.9]
[ruby-]2.6[.10]
[ruby-]2.7[.6]
[ruby-]3.0[.4]
[ruby-]3[.1.2]
[ruby-]3.2[.0-preview-1]
ruby-head
...
```
```shell
# 2.7 버전 설치
> rvm install 2.7
# 의존 패키지 설치 (Fedora 35)
markruler password required for 'dnf install -y patch autoconf automake bison libffi-devel libtool libyaml-devel patch readline-devel sqlite-devel zlib-devel openssl-devel':
```
```shell
# 3.1.2 버전 설치
> rvm install 3.1.2
> ruvy -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
```
```shell
# 기본적으로 2.7 사용 설정
> rvm use 2.7 --default
# 현재 사용중인 Ruby 버전 확인
> ruby -v
ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [x86_64-linux]
```
## REPL (Read-eval-print loop)
- irb: Interactive Ruby
```shell
> irb
> print "Hello World!"
> exit
```
## Package Manager
- gem: RubyGem
```shell
> gem help list
> gem list --local
```
## JetBrains - RubyMine 설정
> Settings > Languages & Frameworks > Ruby SDK and Gems
```shell
> which ruby
~/.rvm/rubies/ruby-2.7.6/bin/ruby
```
## Task Management
- rake (Ruby Make)
```shell
> rake test
```
## Java에서 Ruby로
- [원문](https://www.ruby-lang.org/ko/documentation/ruby-from-other-languages/to-ruby-from-java/)
### 비슷한 점들
Java처럼, Ruby에서도…
- 메모리는 가비지 컬렉터에서 관리합니다.
- 객체는 강 타입입니다.
- `public`, `private`, `protected` 메서드가 있습니다.
- 내장된 문서화 툴이 있습니다(Ruby에서는 RDoc이라 합니다). rdoc으로 생성된 문서는 javadoc으로 생성된 문서와 매우 비슷합니다.
### 다른 점들
Java와는 다르게, Ruby에서는…
- 코드를 컴파일 할 필요가 없습니다. 직접 실행하시면 됩니다.
- 여러 인기있는 서드파티 GUI 툴킷이 있습니다. Ruby 유저는 WxRuby, FXRuby, Ruby-GNOME2, Qt나 Ruby Tk 등을 사용할 수 있습니다.
- 클래스 같은 것을 정의할 때 코드 블록에 중괄호를 넣는 대신, 선언 뒤에 `end` 키워드를 사용합니다.
- `import` 대신 `require`를 사용합니다.
- 모든 맴버 변수는 `private`입니다. 밖에서의 모든 접근은 메서드를 통해 합니다.
- 메서드 호출의 괄호는 보통 생략 가능하고 자주 생략합니다.
- `2`나 `3.14159` 같은 숫자를 포함해 모든 것이 객체입니다.
- 정적 타입 체크가 없습니다.
- 변수 이름은 라벨일 뿐입니다. 변수 이름에 관련된 타입은 없습니다.
- 타입 선언이 없습니다. 필요할 때 새로운 변수 이름에 대입만 하시면 그대로 "동작"합니다. (예를 들어, `int[] a = {1,2,3};` 대신 `a = [1,2,3]`)
- 형변환이 없습니다. 그냥 메서드를 호출 하세요. 예외를 보게 될 때에는 유닛테스트가 코드를 실행하기도 전에 말해 줄 것입니다.
- `Foo foo = new Foo("hi")` 대신 `foo = Foo.new("hi")`를 사용합니다.
- 생성자는 클래스 이름 대신 항상 "initialize"로 명명됩니다.
- 인터페이스 대신 "mixins"을 사용합니다.
- YAML을 XML보다 선호하는 경향이 있습니다.
- `null` 대신 `nil`을 사용합니다.
- Ruby는 `==`과 `equals()`을 다르게 취급합니다. Ruby에서 값이 같은지를 확인하려면 `==`를 사용하고(Java에서는 `equals()`), 객체가 같은지를 확인하려면 `equal?()`를 사용합니다.(Java에서는 `==`)