Ruby

Содержание
Введение
Интерактивный режим
Вывод на экран
Сокеты
Запросы к REST API
Установка и настройка Ruby on Rails
Первоначальная настройка Redmine

Введение

Ruby (англ. ruby — рубин, произносится ['ru:bɪ] — ру́би) — динамический, рефлективный, интерпретируемый высокоуровневый язык программирования.

Язык обладает независимой от операционной системы реализацией многопоточности, сильной динамической типизацией, сборщиком мусора и многими другими возможностями[⇨].

По особенностям синтаксиса он близок к языкам Perl и Eiffel, по объектно-ориентированному подходу — к Smalltalk. Также некоторые черты языка взяты из Ruby, Lisp, Dylan и Клу.

Кроссплатформенная реализация интерпретатора языка является полностью свободной.

irb

Чтобы запустить интерактивный режим введите команду

irb

Вывод на экран

Вывод делается командой puts

puts "HeiHei.ru"

Если нужно вставить переменную понадобятся # и {}

url = "HeiHei.ru" puts "Best website = #{url}"

Sockets

Чтобы открыть сокет нужно воспользоваться методом new или open.

Допустим, порт на котором мы хотим создать соединение это 25110

srv = TCPServer.new(25110)

Или

srv = TCPServer.open(25110)

Возможная проблема: Вы открыли таким образом сокет. Он слушает на порту 25110, но почему-то только ipv6

А Вам нужно ipv4

В этом случае нужно немного изменить код

srv = TCPServer.new('0.0.0.0',25110)

0.0.0.0 показывает, что мы хоти соединиться по ipv4 причём готовы принять подключение с любого IP

srv = TCPServer.new('0.0.0.0',25110)

Запросы к REST API

GET

require 'uri' require 'net/http' require 'openssl' url = URI("https://example.com/auth/api/v1/status") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["accept"] = 'application/json' response = http.request(request) puts response.read_body

POST

require 'uri' require 'net/http' require 'openssl' url = URI("https://example.com/auth/api/v1/oauth/token") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["accept"] = 'application/json' request["content-type"] = 'application/json' request.body = "{\"client_id\":\"id_exapmle\",\"grant_type\":\"refresh_token\"}" response = http.request(request) puts response.read_body

require 'uri' require 'net/http' require 'openssl' url = URI("https://example.com/h-store/api/v1/hosts/search?offset=10&limit=50&sortkey=id&sortdir=ASC&filter=f") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["accept"] = 'application/json' request["Authorization"] = 'Bearer a-proper-token-goes-here' request["content-type"] = 'application/json' response = http.request(request) puts response.read_body

PUT

require 'uri' require 'net/http' require 'openssl' url = URI("https://example.com/auth/api/v1/password") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Put.new(url) request["accept"] = 'application/json' request["content-type"] = 'application/json' request.body = "{\"current_password\":\"current_pwd\",\"new_password\":\"new_pwd\"}" response = http.request(request) puts response.read_body

DELETE

require 'uri' require 'net/http' require 'openssl' url = URI("https://example.com/auth/api/v1/idp/clients/id") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Delete.new(url) request["accept"] = 'application/json' response = http.request(request) puts response.read_body

Похожие статьи
Bash
C
C++
Go
Groovy
Java
JavaScript
PHP
Python
.NET/C#