Skip to content

Commit

Permalink
Removed CSS classes left over from the highlighted pre tags.
Browse files Browse the repository at this point in the history
  • Loading branch information
postmodern committed Aug 10, 2011
1 parent 274e8a9 commit 1bce083
Show file tree
Hide file tree
Showing 77 changed files with 3 additions and 584 deletions.
4 changes: 0 additions & 4 deletions bg/about/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ Ruby е абсолютно [безплатен](./license.txt) за употре
(метод, извикан върху число).

5.times { print "We *love* Ruby -- it's outrageous!" }
{: .code .ruby-code}

В много други езици числата и примитивните типове не са обекти. Ruby е
повлиян от Smalltalk и дава възможност за извикването на методи на
Expand All @@ -78,7 +77,6 @@ Ruby е считан за гъвкав език поради факта, че п

y = 5.plus 6
# y е равно на 11
{: .code .ruby-code}

Операторите в Ruby всъщност представляват синтактична „захар“ за
методите. Те също могат да бъдат променени.
Expand All @@ -98,7 +96,6 @@ Ruby е считан за гъвкав език поради факта, че п
  %w[Google Yahoo MSN].map do |engine|
    "http://www." + engine.downcase + ".com"
  end
{: .code .ruby-code}

В горния отрязък код блокът е реализиран в `do ... end` конструкцията.
Методът `map` се прилага за списъка от думи в блока. Много други методи
Expand All @@ -120,7 +117,6 @@ Ruby е считан за гъвкав език поради факта, че п
class MyArray
  include Enumerable
end
{: .code .ruby-code}

Като цяло рубистите смятат, че това е по-изчистен начин за реализиране на идеята за множествено наследяване, което по-принцип е сложно и ограничаващо в много от случаите. ### Визуално представяне на Ruby код

Expand Down
5 changes: 0 additions & 5 deletions bg/documentation/quickstart/2/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ lang: bg
irb(main):011:1> puts "Hello World!"
irb(main):012:1> end
=> nil
{: .code .ruby-code}

Кодът започва с израза `def`, което обозначава началото на метода. Това
указва на Ruby, че искаме да дефинираме метод с име `h`. Следващият ред
Expand All @@ -28,7 +27,6 @@ lang: bg
irb(main):014:0> h()
Hello World!
=> nil
{: .code .ruby-code}

Извикването на метод е толкова лесно, колкото самото изписване на името
му. Ако методът не приема параметри, може да пропуснем скобите.
Expand All @@ -43,7 +41,6 @@ lang: bg
irb(main):018:0> h("Matz")
Hello Matz!
=> nil
{: .code .ruby-code}

Чудесно, работи. Но нека видим как точно.

Expand All @@ -62,7 +59,6 @@ lang: bg
irb(main):023:0> h
Hello World!
=> nil
{: .code .ruby-code}

Нещата, които тук се забелязват са употребата на методът с и без
параметър. Ако извикаме методът с параметър, който сме въвели,
Expand All @@ -86,7 +82,6 @@ lang: bg
irb(main):033:2> end
irb(main):034:1> end
=> nil
{: .code .ruby-code}

Новата ключова дума в примера е `class`. Тя дефинира нов клас, наречен
Greeter, както и няколко метода . Също така трябва да се обърне внимание
Expand Down
8 changes: 0 additions & 8 deletions bg/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ lang: bg
irb(main):037:0> g.say_bye
Bye Pat, come back soon.
=> nil</0x16cac>
{: .code .ruby-code}

След като веднъж сме създали обектът `g`, той запаметява името Pat.
Какво би се случило, ако искаме да променим името директно ?
Expand All @@ -23,7 +22,6 @@ lang: bg
SyntaxError: compile error
(irb):52: syntax error
        from (irb):52
{: .code .ruby-code}

Изходът от горния пример е грешка.

Expand All @@ -46,7 +44,6 @@ lang: bg
    "clone", "public_methods", "respond_to?", "freeze",
    "say_bye", "__id__", "=~", "methods", "nil?", "dup",
    "instance_variables", "instance_of?"]
{: .code .ruby-code}

Интересно е да видим, че обектът “притежава” доста методи, въпреки, че
ние сме дефинирали само 3. Ще разбулим мистерията, като кажем, че това
Expand All @@ -56,7 +53,6 @@ lang: bg

irb(main):040:0> Greeter.instance_methods(false)
=> ["say_bye", "say_hi"]
{: .code .ruby-code}

Съществува метод, който ни дава прествава какви методи може да извикаме
върху обекта:
Expand All @@ -67,7 +63,6 @@ lang: bg
=> true
irb(main):043:0> g.respond_to?("to_s")
=> true
{: .code .ruby-code}

## Никога не е късно за промяна на класа

Expand All @@ -79,7 +74,6 @@ lang: bg
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
{: .code .ruby-code}

В Ruby лесно може да отворим класа отново за модификация. Промените ще
се отразят на наличните и новите обекти. Нека създадем нов обект.
Expand All @@ -102,7 +96,6 @@ lang: bg
irb(main):054:0> g.say_hi
Hi Betty!
=> nil</0x3c9b0></0x3c9b0>
{: .code .ruby-code}

Използването на `attr_accessor` дефинира два нови метода, `name` за
прочитане на стойността и `name=` за промяна на стойността.
Expand Down Expand Up @@ -179,7 +172,6 @@ Control-D.
  mg.say_hi
  mg.say_bye
end
{: .code .ruby-code}

Съхранете този файл като “ri20min.rb” и го стартирайте, като напишете
“ruby ri20min.rb”. Изходът на програмата би изглеждал така:
Expand Down
5 changes: 0 additions & 5 deletions bg/documentation/quickstart/4/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ UNIX-подобни операционни системи.
    puts "Hello #{@names}!"
  end
end
{: .code .ruby-code}

В горния пример правим проверка на параметъра `@names` за да вземем
решение. Ако е nil, отпечатваме три точки.
Expand All @@ -42,7 +41,6 @@ UNIX-подобни операционни системи.
@names.each do |name|
  puts "Hello #{name}!"
end
{: .code .ruby-code}

Методът `each` приема блок с код, който се изпълнява за всеки елемент от
списъка, бит по бит, между ключовите думи `do` и `end. Блокът е като
Expand All @@ -53,7 +51,6 @@ UNIX-подобни операционни системи.
на списъка, като това става на C по следния начин:

for (i=0; i<number_of_elements i>
{: .code .ruby-code}

Този вариант работи, но не е най-елегантното решение. Имаме нужда от
променлива i, големината на списъка и описание на начина на обхождане. В
Expand All @@ -77,7 +74,6 @@ Ruby това става много елегантно, като всички д
    puts "Goodbye #{@names}. Come back soon!"
  end
end
{: .code .ruby-code}

Методът `say_bye` не използва `each`, а вместо това прави проверка дали
`@names` отговаря на метода `join` и при положителен резултат го ползва.
Expand All @@ -94,7 +90,6 @@ Ruby това става много елегантно, като всички д
Ползваме един последен трик за стартиране на скрипта:

if __FILE__ == $0
{: .code .ruby-code}

`__FILE__` е специална променлива, която съдържа името на настоящия
файл, а `$0` представлява името на файла, нужен за стартирането на
Expand Down
8 changes: 0 additions & 8 deletions bg/documentation/quickstart/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,11 @@ Ruby пристига с програмка, наречена IRB ( Interactive
^

irb(main):001:0>
{: .code .ruby-code}

Напишете : `"Hello World"`

irb(main):001:0> "Hello World"
=> "Hello World"
{: .code .ruby-code}

## Ruby току що ви се подчини !

Expand All @@ -44,7 +42,6 @@ Ruby пристига с програмка, наречена IRB ( Interactive
irb(main):002:0> puts "Hello World"
Hello World
=> nil
{: .code .ruby-code}

`puts` е метод, който позволява да отпечатате израз/текст/низ в Ruby. А
какво тогава означава `=> nil`? Това е резултата от изпълнения израз.
Expand All @@ -56,24 +53,20 @@ Ruby пристига с програмка, наречена IRB ( Interactive

irb(main):003:0> 3+2
=> 5
{: .code .ruby-code}

Дотук добре, нека пробваме умножение и вдигане на квадрат:

irb(main):004:0> 3*2
=> 6
{: .code .ruby-code}

irb(main):005:0> 3**2
=> 9
{: .code .ruby-code}

В Ruby метода `**` е начин да повдигаме на степен. Следва пример с
намиране на корен:

irb(main):006:0> Math.sqrt(9)
=> 3.0
{: .code .ruby-code}

Резултатът е верен, но какво значи Math.sqrt ? И по-точно, какво значи
`Math`?
Expand Down Expand Up @@ -102,7 +95,6 @@ Ruby пристига с програмка, наречена IRB ( Interactive
irb(main):008:0> b = 4 ** 2
=> 16
irb(main):009:0> Math.sqrt(a+b) => 5.0
{: .code .ruby-code}

Леснотата на писане на калкулатора ни отклони от кода в началото –
изписването на “Hello World”. За това, нека [прехвърлим отново фокуса си
Expand Down
18 changes: 0 additions & 18 deletions bg/documentation/ruby-from-other-languages/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,12 @@ lang: bg
Когато за първи път се сблъскате с код писан на Ruby е вероятно да ви напомни на езици за програмиране, които вече ползвате. Това е направено с цел. Много от синтаксиса е заимстван от Perl, Python и Java (както от други езици), за това научаването на Ruby би било много по-лесно. Този страница е разделена на две секции. Първата е обобщение на нещата, които ще видите от езика \_X\_ в Ruby. Втората секция е посветена на някои от основните принципи на езика. h2. Какво да очакваме \* [Oт C/C++ към Ruby](/bg/documentation/ruby-from-other-languages/to-ruby-from-c-and-c-/) \* [Oт Java към Ruby](/bg/documentation/ruby-from-other-languages/to-ruby-from-java/) \* [Oт Perl към Ruby](/bg/documentation/ruby-from-other-languages/to-ruby-from-perl/) \* [Oт PHP към Ruby](/bg/documentation/ruby-from-other-languages/to-ruby-from-php/) \* [Oт Python към Ruby](/bg/documentation/ruby-from-other-languages/to-ruby-from-python/) h2. Важни неща в езика Това са някои насоки за нещата, с които ще се запознаете при изучаването на Ruby. h3. Итерация Две от нещата, с които може би не сте се сблъсквали са \"блоковете\" и итераторите. Вместо да използваме цикъл с индекс ( както в C, C++ или в ранните версии на 1.5 Java), итерацията на списък (в Perl <tt>for (@a) \{...}</tt> или в Python <tt>for i in aList: ...</tt>) може да се осъществи с : <notextile markdown="1"> some_list.each do |this_item|
  # операции за всеки елемент this_item.
end
{: .code .ruby-code}

</notextile>

За повече информация относно @each@ (и неговите приятели @collect@, @find@, @inject@, @sort@ и т.н.) можете да прочетете с командата @ri Enumerable@ (и <tt>ri Enumerable#*име\_на\_метод*</tt>). h3. Всичко има стойност Няма разлика между expression и statement. Всичко има стойност, дори и тя да бъде \*nil\*: <notextile markdown="1"> x = 10
y = 11
z = if x true
{: .code .ruby-code}

</notextile>

Expand All @@ -23,7 +21,6 @@ lang: bg
irb(main):002:0> "george".object_id == "george".object_id
=> false
irb(main):003:0>
{: .code .ruby-code}

</notextile>

Expand All @@ -34,15 +31,13 @@ lang: bg
MyClass = Class.new do
  attr_accessor :instance_var
end
{: .code .ruby-code}

</notextile>

h3. Променливи константи Константите всъщност не са константи. Ако промените съдържанието на съществуваща константа ще получите предупреждение, но това няма да наруши изпълнението на програмата. Това не значи, че трябва да предефинирате константите. h3. Конвенции при наименуването Ruby ни \"принуждава\" да ползваме някои конвенции при наименуването. Ако идентификаторът започва с главна буква, той е константа. Ако започва с $, той е глобална променлива. Ако започва с `@` той е променлива на инстанцията, а с `@@` се именоват клас променливите. Въпреки това може да ползваме главна буква за името на метод, въпреки, че това може да доведе до объркване: <notextile markdown="1"> Constant = 10
def Constant
  11
end
{: .code .ruby-code}

</notextile>

Expand All @@ -51,7 +46,6 @@ lang: bg
end
some_keyword_params( :param_one => 10, :param_two => 42 )
# => {:param_one=>10, :param_two=>42}
{: .code .ruby-code}

</notextile>

Expand All @@ -60,7 +54,6 @@ lang: bg
  print "0 is true"
else:
  print "0 is false"
{: .code .ruby-code}

</notextile>

Expand All @@ -70,7 +63,6 @@ lang: bg
else
  puts "0 is false"
end
{: .code .ruby-code}

</notextile>

Expand All @@ -79,7 +71,6 @@ lang: bg
  def a_method; true; end
  def another_method; false; end
end
{: .code .ruby-code}

</notextile>

Expand All @@ -92,7 +83,6 @@ lang: bg
  # another_method is private
  def another_method; false; end
end
{: .code .ruby-code}

</notextile>

Expand Down Expand Up @@ -133,7 +123,6 @@ lang: bg
        from (irb):25
        from :0
irb(main):026:0></0x342784></0x342784></0x34ab50>
{: .code .ruby-code}

</notextile>

Expand All @@ -147,7 +136,6 @@ lang: bg
# 14 hours from 00:00 January 1st
# (aka when you finally wake up ;)
Time.mktime(2006, 01, 01) + 14.hours # => Sun Jan 01 14:00:00
{: .code .ruby-code}

</notextile>

Expand All @@ -168,7 +156,6 @@ lang: bg
# Other objects are not affected
other_car = Car.new
other_car.inspect # => Cheap car
{: .code .ruby-code}

</notextile>

Expand All @@ -182,7 +169,6 @@ lang: bg
__ :a, :b, 10
# => Method __ was called, but not found. It has these
# arguments: a, b, 10
{: .code .ruby-code}

</notextile>

Expand All @@ -192,7 +178,6 @@ lang: bg
1.+(2)
# Which is the same as this:
1.send "+", 2
{: .code .ruby-code}

</notextile>

Expand All @@ -203,13 +188,11 @@ lang: bg
adder = block { |a, b| a + b }
# adder is now a Proc object
adder.class # => Proc
{: .code .ruby-code}

</notextile>

Можем да създаваме блокове извън извиквания към методи чрез Proc.new или чрез метода `lambda`. Впрочем, методите са обекти: <notextile markdown="1"> method(:puts).call "puts is an object!"
# => puts is an object!
{: .code .ruby-code}

</notextile>

Expand All @@ -219,7 +202,6 @@ lang: bg
    self - other
  end
end
{: .code .ruby-code}

</notextile>

Expand Down
Loading

0 comments on commit 1bce083

Please sign in to comment.