Skip to content

ASnow/ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ruby

Краткий экскурс в руби: Основные типы данных:

  • String - строки
#все это строка 123
"123"
%Q{123}

'123'
'1' '2' '3'
%q{123}
<<STRING_BRAKET
123
STRING_BRAKET
  • Symbol - like a String
:'symbol'
:"symbol"
:symbol
%s{symbol}
  • Integer
#все это число 10 000
10000
10_000
0b10011100010000
0x2710
  • Array
#все это массивы из трех строк
['one', 'two', 'three']
%w{one two three}
  • Hash
key = "anyobject"
value = key

# пример хеша
{key => value}
{symbol: value}

# пример использования хеша как последнего аргумента в методах
method(1, 2, {symbol: value})
method(1, 2, symbol: value)
method 1, 2, symbol: value
method 1, 2, symbol=> value
  • Regexp
# литеральный синтексис создания
regexp = /test/i
# создание 
rule = "test"
modifier = Regexp::EXTENDED
regexp = Regexp.new rule, modifier # экввалент /test/x

# Сравнение
regexp =~ "test" # => 0
regexp =~ "stest" # => 1
regexp =~ "stet" # => nil

Организация кода:

  • Константа
Konstanta = "Значение константы 1"
KONSTANTA = "Значение константы 2"
  • Блок
block = lambda do |arg|
  arg * 2
  
  "получили #{}" 
end

block.call #=> сложили

# Еще блоки
block = ->{}
block = proc do; end
block = proc{}
  • Метод
def method_name argument1, argument2
  return_value = argument1
  return_value += argument2

  return_value
end
  • Модуль
module Mod
end
  • Класс
class A
  def method
  end
end
a = A.new

Контексты:

  • self - объект текущего контекста выполнения
self.class
  • Класс
class Context
  self # => Context
end
  • Метод
# методы создаются в связи с контектом определенного объекта
def current_context
  self
end

current_context == self

class Context
  def self.class_context
    self
  end
  
  def object_context
    self
  end
end

Context.class_context == Context # => true
new_object = Context.new
new_object.object_context == new_object # => true
  • Блоки
#

Как работает сервер

WebServer

UseCase

  • Как писать роуты?
HeloWorld\
  app\
    controllers\
    views\
  config\
    routes.rb
  • Как писать json?
# app/views/any.jbuilder

json.key value # => {"key": value}

json.obj do
  json.a "A"
  json.b "B"
end # => {"obj": {"a": "A", "b": "B"}}


json.(object, :property1, :property2) # => {"property1": "val1", "property2": "val2"}

About

Программки на руби

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages