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# |