Първите ви точки:
(носим сникерси)
Какво е irb
?
Интерактивна конзола.
Ако не знаем нещо за Руби - къде го търсим?
ri
-> локално
Как се записват следните:
chunky = 1 # локална променлива
Bacon = 2 # константа
$larodi = 3 # глобална променлива
Каква е разликата между :name
и "name"
:name
е символ и е immutable, и се интернира.
"name"
е низ.
Какво ще изведе и към какво ще се оцени следното?
"Ivan is here: #{0 == false}"
Няма да изведе нищо. Ще се оцени на:
"Ivan is here: false"
Към какво ще се оцени изразът?
010 + 010 > 1.7e1
false
return
def format_string(text_to_format, width)
editted = text_to_format.upcase();
editted = editted.gsub(/\s+/, ' ');
editted = editted.strip();
editted = editted.center(width);
return editted;
end
;
е първото в списъка от неща, които не искаме да виждаме
return
е излишен
def format_string(string, width)
string.strip!
string = string.gsub(/\s+/, " ").strip
string.upcase!
string = string.center(width)
end
!
променят обекта - това не е препоръчително
def format_string(text, width)
# 1) Remove spaces from begining and the end
# and save the text value in a new variable just in case
format_text = text.strip
# 2) Replace the multiple spaces with just one
format_text = format_text.gsub(/\s+/, ' ')
# 3) Make all letters uppercase
format_text.upcase!
# 4) Add spaces in the begining and end if the string is too short.
# The number of space on both sides must be either equal or one more on the right side
text_length = format_text.length
if text_length < width
remaining = width - text_length
left = (remaining / 2).floor
right = remaining - left
format_text = (' ' * left) + format_text + (' ' * right)
end
# 5) We're done. Return the result
return format_text
end
return
format_text.upcase!
unless string.nil?
# код ...
end
string
string
е nil
, така или иначе някъде програмата ще се счупиfixed_string = string.strip.gsub(/(\s|\u00A0)+/, ' ').upcase
No-break space
def format_string(string, width)
string.strip.squeeze(' ').upcase.center(width)
end
My guiding light is Kent Beck's rules of Simple Design (източник):
- The code must first be correct (as defined by tests);
- then it should be a clear statement of the design (what J.B.Rainsberger calls "no bad names");
- then it should contain no duplication (of text, of ideas, or of responsibility);
- and finally it must be the smallest code that meets all of the above.
It's time to stop refactoring when the code makes a reasonable stab at meeting those goals, and when any further changes would add no further benefit.
Преди да пуснете pull request с вашето предложение за промяна: