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#

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: