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)

Banner image

Запросы к 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

Article author: Andrei Olegovich

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

Search this site

Subscribe to Telegram channel @aofeed to follow new articles and updates to old ones

Go to channel

@aofeed

Ask a question in the Telegram group

@aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: