Skip to content

Commit

Permalink
Merge pull request #7 from ruby/master
Browse files Browse the repository at this point in the history
Update Repo
  • Loading branch information
Goudarz authored Aug 13, 2019
2 parents 4927ed1 + 21d8142 commit 147828d
Show file tree
Hide file tree
Showing 24 changed files with 1,473 additions and 101 deletions.
183 changes: 183 additions & 0 deletions de/news/_posts/2019-05-30-ruby-2-7-0-preview1-released.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
---
layout: news_post
title: "Ruby 2.7.0-preview1 veröffentlicht"
author: "naruse"
translator: "Marvin Gülker"
date: 2019-05-30 00:00:00 +0000
lang: de
---

Wir freuen uns, die Veröffentlichung von Ruby 2.7.0-preview1
bekanntgeben zu können.

Diese Vorschau wird veröffentlicht, um bis zur geplanten finalen
Freigabe im Dezember Erfahrungsberichte sammeln zu können. Sie enthält
eine Anzahl neuer Funktionalitäten und Performanzverbesserungen,
namentlich:

* Defragmentierung für den GC _(Campaction GC)_
* Musterabgleiche
* Verbesserungen der interaktiven Kommandozeile _(REPL)_

## Defragmentierender GC

Die neue Version wird einen defragmentierenden GC _(Compaction GC)_
einführen, der fragmentierten Arbeitsspeicherplatz defragmentieren
kann.

Einige Ruby-Programme, die mit mehreren Threads arbeiten, leiden
derzeit unter Speicherfragmentierung. Dies verursacht einen hohen
Speicherverbrauch und eine reduzierte Ausführungsgeschwindigkeit.

Zur Behebung des Problems wird die neue Methode `GC.compact`
eingeführt. Sie defragmentiert den Freispeicher _(Heap)_, indem sie
noch aktive Objekte näher zusammenrückt, sodass weniger Speicherseiten
benötigt werden und der Freispeicher insgesamt besser für
Copy-on-Write geeignet ist. [#15626](https://bugs.ruby-lang.org/issues/15626)

## Musterabgleiche [Experimentell]

Musterabgleiche sind eine häufig genutzte Funktion funktionaler
Programmiersprachen. Mit 2.7.0 werden sie als experimentell in die
Programmiersprache Ruby eingeführt. [#14912](https://bugs.ruby-lang.org/issues/14912)
Ein Musterabgleich untersucht das übergebene Objekt und weist seinen
Wert dann zu, wenn er auf ein bestimmtes Muster passt.

```ruby
case JSON.parse('{...}', symbolize_names: true)
in {name: "Alice", children: [{name: "Bob", age: age}]}
p age
...
end
```

Weitere Details können Sie der Präsentation [Musterabgleiche - Neue Funktion in Ruby 2.7](https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7)
entnehmen.

## Verbesserung der interaktiven Kommandozeile

Die mitgelieferte interaktive Kommandozeile `irb` _(REPL: Read-Eval-Print-Loop)_
wird mehrzeiliges Editieren unterstützen. Dies wird mithilfe von
`reline`, einer `readline`-kompatiblen reinen Ruby-Bibliothek,
umgesetzt. Darüber hinaus wird `irb` besser mit RDoc integriert: es
wird möglich, die Referenzdokumentation für eine bestimmte Klasse,
ein bestimmtes Modul oder auch eine bestimmte Methode nachzuschlagen.
[#14683](https://bugs.ruby-lang.org/issues/14683),
[#14787](https://bugs.ruby-lang.org/issues/14787),
[#14918](https://bugs.ruby-lang.org/issues/14918)
Schließlich werden von `binding.irb` angezeigte Quellcode-Zeilen und
Ergebnisse von `inspect` farblich hevorgehoben werden.

<video autoplay="autoplay" controls="controls" muted="muted" width="576" height="259">
<source src="https://cache.ruby-lang.org/pub/media/irb_improved_with_key_take2.mp4" type="video/mp4">
</video>

## Sonstige bemerkenswerte neue Funktionen

* Ein Methoden-Referenz-Operator, <code>.:</code>, wird als
experimentell eingeführt. [#12125](https://bugs.ruby-lang.org/issues/12125), [#13581](https://bugs.ruby-lang.org/issues/13581)

* Blockparameter werden für abgekürzten Zugriff automatisch nummeriert (experimentell).
[#4475](https://bugs.ruby-lang.org/issues/4475)

* Ruby verfügt bereits über endlose Range-Objekte. Nunmehr werden auch
anfangslose Range-Objekte eingeführt. Diese sind vielleicht nicht so
nützlich wie endlose Range-Objekte, könnten aber für
domänenspezifische Sprachen praktisch sein.
[#14799](https://bugs.ruby-lang.org/issues/14799)

ary[..3] # identical to ary[0..3]
rel.where(sales: ..100)

* `Enumerable#tally` wird hinzugefügt. Die Methode zählt das Vorkommen
jedes Elements.

["a", "b", "c", "b"].tally
#=> {"a"=>1, "b"=>2, "c"=>1}

## Performanzverbesserungen

* JIT [Experimentell]

* JIT-kompilierter Code wird neu zu weniger optimiertem Code
kompiliert, wenn eine Optimierungsannahme sich als falsch
herausstellt.

* Method-Inlining wird durchgeführt, wenn eine Methode als rein
_(pure)_ gilt. Diese Optimierung ist noch experimentell und
zahlreiche Methoden gelten noch nicht als rein.

* Der Standardwert von `--jit-min-calls` wird von 5 auf 10.000
geändert.

* Der Standardwert von `--jit-max-cache` wird von 1.000 auf 100
geändert.

## Sonstige bemerkenswerte Änderungen seit 2.6

* Die Nutzung von `Proc.new` und `proc` ohne Block in einer Methode,
die einen Block erwartet, führt nun zu einer Warnung.

* Die Nutzung von `lambda` ohne block in einer Methode, die einen
Block erwartet, erzeugt einen Fehler.

* Die Unicode- und Emoji-Version werden von 11.0.0 auf 12.0.0 angehoben.
[[Feature #15321]](https://bugs.ruby-lang.org/issues/15321)

* Die Unicode-Version wird auf 12.1.0 angehoben, um Unterstützung für
U+32FF SQUARE ERA NAME REIWA zu erhalten. [[Feature #15195]](https://bugs.ruby-lang.org/issues/15195)

* `Date.jisx0301`, `Date#jisx0301` und `Date.parse` implementieren
provisorische Unterstützung für die neue japanische Ära. Dies ist
keine offiziell unterstützte Änderung, sondern provisorisch bis zur
Freigabe von JIS X 0301.
[[Feature #15742]](https://bugs.ruby-lang.org/issues/15742)

* Ruby nutzt jetzt C99, welches der Compiler unterstützen muss.
[[Misc #15347]](https://bugs.ruby-lang.org/issues/15347)
* Details zum genutzten Dialekt: <https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/C99>


Siehe die
[NEWS](https://github.com/ruby/ruby/blob/v2_7_0_preview1/NEWS) oder
die
[Commit-Logs](https://github.com/ruby/ruby/compare/v2_6_0...v2_7_0_preview1)
für weitere Details.

Mit diesen Änderungen wurden [1727 Dateien geändert, 76022 Einfügungen(+), 60286 Löschungen(-)](https://github.com/ruby/ruby/compare/v2_6_0...v2_7_0_preview1) seit Ruby 2.6.0!

Viel Spaß bei der Programmierung mit Ruby 2.7!

## Download

* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.tar.gz>

SIZE: 16021286 bytes
SHA1: 2fbecf42b03a9d4391b81de42caec7fa497747cf
SHA256: c44500af4a4a0c78a0b4d891272523f28e21176cf9bc1cc108977c5f270eaec2
SHA512: f731bc9002edd3a61a4955e4cc46a75b5ab687a19c7964f02d3b5b07423d2360d25d7be5df340e884ca9945e3954e68e5eb11b209b65b3a687c71a1abc24b91f
* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.zip>

SIZE: 20283343 bytes
SHA1: 7488346fa8e58203a38158752d03c8be6b1da65b
SHA256: fdf25573e72e1769b51b8d541d0e1a894a5394dbfdf1b08215aa093079cca64c
SHA512: b3b1f59dce94c242ef88a4e68381a4c3a6f90ba0af699083e5a1a00b0fb1dce580f057dad25571fe789ac9aa95aa6e9c071ebb330328dc822217ac9ea9fbeb3f
* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.tar.bz2>

SIZE: 14038296 bytes
SHA1: f7e70cbc2604c53a9e818a2fc59cd0e2d6c859fa
SHA256: d45b4a1712ec5c03a35e85e33bcb57c7426b856d35e4f04f7975ae3944d09952
SHA512: a36b241fc1eccba121bb7c2cc5675b11609e0153e25a3a8961b67270c05414b1aa669ce5d4a5ebe4c6b2328ea2b8f8635fbba046b70de103320b3fdcb3d51248
* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.tar.xz>

SIZE: 11442988 bytes
SHA1: 45e467debc194847a9e3afefb20b11e6dc28ea31
SHA256: 8c546df3345398b3edc9d0ab097846f033783d33762889fd0f3dc8bb465c3354
SHA512: d416e90bfa3e49cc0675c4c13243c8ec319b7a0836add1bd16bd7662d09eaf46656d26e772ef3b097e10779896e643edd8a6e4f885147e3235257736adfdf3b5

## Was ist Ruby

Die Programmiersprache Ruby wurde 1993 von Yukihiro „Matz“ Matsumoto
erfunden und wird heute als quelloffene Software entwickelt. Sie läuft
auf verschiedenen Plattformen und wird überall auf der Welt namentlich
für die Webentwicklung genutzt.
3 changes: 3 additions & 0 deletions en/community/conferences/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ community since 2008.
themed around fun activities filled around the day.
It is a single-day single-track conference.

[Southeast Ruby][21]: Nashville, TN workshop and conference.

### Ruby At Other Conferences

There has been a Ruby track at the [O’Reilly Open Source Conference][10]
Expand Down Expand Up @@ -90,3 +92,4 @@ O’Reilly), and Canada on Rails.
[16]: http://steelcityruby.org/
[19]: http://goruco.com/
[20]: http://www.deccanrubyconf.org/
[21]: https://southeastruby.com/
123 changes: 57 additions & 66 deletions es/libraries/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,114 +4,105 @@ title: "Bibliotecas"
lang: es
---

{% include out-of-date.html %}
Como la mayoría de los lenguajes de programación, Ruby aprovecha un amplio conjunto de bibliotecas.
{: .summary}

Casi todas estas bibliotecas se lanzan en forma de **gema**, una biblioteca o aplicación empaquetada que se puede instalar con una herramienta llamado [**RubyGems**] [1].

RubyGems es un sistema de empaquetado de Ruby diseñado para facilitar la creación, el intercambio y la instalación de bibliotecas (de alguna manera, es un sistema de empaquetado similar a `apt-get`, pero dirigido a Ruby).
Ruby viene con RubyGems por defecto desde la versión 1.9, las versiones anteriores de Ruby requieren que RubyGems esté [instalado a mano] [2].

Existen fascinantes, útiles y variadas bibliotecas para Ruby, muchas
disponibles como un conveniente archivo *gem*. Otras bibliotecas son
liberadas como directorios comprimidos (.zip o .tar.gz) de código
fuente. Veamos cómo encontrar e instalar bibliotecas para que puedas
Otras bibliotecas se publican como directorios archivados (.zip o .tar.gz) de **código fuente**. Los procesos de instalación pueden variar, pero normalmente un archivo `README` o `INSTALL` se encuentra disponible con instrucciones.

Veamos cómo encontrar e instalar bibliotecas para que puedas
utilizarlas.
{: .summary}

### Encontrando bibliotecas
### Buscando bibliotecas

[**RubyGems**][1] es la herramienta preferida por la comunidad para
distribuir código. Por lo general, las gemas tienen enlaces hacia la
documentación e información sobre los desarrolladores, así que es un
buen punto de partida para comenzar a explorar el mundo Ruby.
El lugar principal donde se alojan las bibliotecas es [**RubyGems.org**] [1], un repositorio público de gemas que se pueden buscar e instalar en su máquina.
Puede buscar gemas utilizando el sitio web RubyGems, o utilizando el comando `gem`.

Muchos proyectos utilizan [**GitHub**][2] para albergar sus
repositorios. Puedes explorar el sitio para conocer más sobre cada
librería y para colaborar.
Usando `gem search -r`, puedes buscar en el repositorio de RubyGems. Por ejemplo, `gem search -r rails` devolverá una lista de gemas relacionadas con Rails. Con la opción `--local` (`-l`), se realiza una búsqueda local de tus gemas instaladas localmente.
Para instalar una gema, use `gem install [gem]`. Parar listar sus gemas instaladas se utilizan `gem list`. Para obtener más información sobre el comando `gem`, vea más abajo o diríjase a [RubyGems’ docs] [3].

[**RubyForge**][3] cayó en desuso en los últimos años y ya no es una
fuente confiable. Antes de RubyGems y GitHub, era el mejor lugar para
buscar librerías de Ruby. Un buen lugar para navegar es su [mapa de
software][4], donde se alistan las bibliotecas por tópico. (Si terminas
creando tus propias bibliotecas, puedes [registrar][5] tu proyecto en
RubyForge para obtener acceso gratuito a Subversion, espacio web y
listas de correo).
Existes ademas otras fuentes de bibliotecas.
[**GitHub**] [5] es el repositorio principal de contenido relacionado con Ruby. La mayoría de las veces, el código fuente de la gema se alojará en GitHub, publicándose también como una gema en RubyGems.org.

Otro sitio que cayó en desuso es el [**Ruby Application Archive**][6] (o
RAA). Se trata de un directorio de software Ruby de todo tipo,
categorizado por su funcionalidad. En este momento, la categoría [Base
de Datos][7] (Database) tiene la mayor cantidad de items, liderando
sobre [Red][8] (Net) por 1. [HTML][9] y [XML][10] también son populares.
Incluso hay 4 items sobre [Física][11].
[**The Ruby Toolbox**] [6] es un proyecto que facilita la exploración de proyectos de código abierto de Ruby.
Tiene categorías para varias tareas de desarrollo, recopila mucha información sobre los proyectos y califica los proyectos según su popularidad en RubyGems.org y GitHub.
Esto hace que sea fácil encontrar una gema que resuelva un problema particular, como frameworks web, herramientas de documentación y bibliotecas de calidad de código.

### Usando RubyGems
### Unas palabras más sobre RubyGems

Mientras que el instalador de Windows incluye RubyGems, muchos sistemas
operativos no lo hacen. Aprende cómo instalar RubyGems aquí debajo si
estos comandos no te funcionan.
Daremos una revisión rápida del comando `gem` para su uso diario.
[Documentación más detallada] [7] se encuentra disponible, cubriendo todos sus aspectos.

#### Buscando gemas
#### Buscando entre las gemas disponibles

El comando **search** puede ser usado para buscar gemas con determinado
nombre. Para buscar la palabra “html” en el nombre de una gema:
El comando **search** se puede usar para buscar gemas utilizando una string.
Las gemas cuyos nombres comiencen con la string especificada se listarán en la devolución.
Por ejemplo, para buscar las gemas relacionadas con “html”:

{% highlight sh %}
$ gem search html --remote
$ gem search -r html

*** REMOTE GEMS ***

html-sample (1.0, 1.1)
{% endhighlight %}

(*La opción `--remote` / `-r` indica que estamos buscando entre las gemas
oficiales de RubyForge*).
La bandera `--remote` /` -r` indica que queremos inspeccionar el
repositorio oficial de RubyGems.org.
Con la bandera `--local` /` -l` realizarías una búsqueda local entre tus gemas instaladas.

#### Instalando una gema

Una vez que sabes qué gema te gustaría **instalar**\:
Una vez que sepa qué gema le gustaría **instalar**, por ejemplo, el popular framework Ruby on Rails:

{% highlight sh %}
$ gem install html-sample
$ gem install rails
{% endhighlight %}

Incluso puedes instalar una versión específica de la biblioteca
utilizando la opción `--version`.
Incluso puede instalar solo una versión específica de la biblioteca, usando la bandera `--version` /` -v`:

{% highlight sh %}
$ gem install html-sample --version 1.0
$ gem install rails --version 5.0
{% endhighlight %}

#### Alistando todas las gemas
#### Listado de todas las gemas

Para una **lista** de todas las gemas instaladas localmente:

Para obtener una **lista** completa de las gemas en RubyForge:
{% highlight sh %}
$ gem list
{% endhighlight %}

Para obtener una lista (muy larga) de todas las gemas disponibles en RubyGems.org:

{% highlight sh %}
$ gem list --remote
$ gem list -r
{% endhighlight %}

Para alistar sólo las gemas que tienes instaladas, quita la
opción—remote.
#### ¡Ayuda!

Para acceder a la documentación disponible dentro de su terminal:

{% highlight sh %}
$ gem list
$ gem help
{% endhighlight %}

Para obtener más información sobre el uso de RubyGems, estudia [la
documentación oficial][12] que incluye ejemplos de cómo usar gemas en
tus programas Ruby.
Por ejemplo, `gem help commands` es muy útiles ya que lista de todos los comandos de `gem`.

### Cómo instalar RubyGems
#### Crear tus propias gemas

Para instalar RubyGems, sigue las instrucciones que se detallan en
[https://rubygems.org/pages/download][13].
RubyGems.org tiene [varias guías] [3] sobre este tema. También es posible que desee investigar [Bundler] [9], una herramienta que le ayuda a administrar las dependencias de una aplicación y se puede usar junto con RubyGems.



[1]: https://rubygems.org/
[2]: https://github.com/
[3]: http://rubyforge.org/
[4]: http://rubyforge.org/softwaremap/trove_list.php
[5]: http://rubyforge.org/register/
[6]: http://raa.ruby-lang.org/
[7]: http://raa.ruby-lang.org/cat.rhtml?category_major=Library;category_minor=Database
[8]: http://raa.ruby-lang.org/cat.rhtml?category_major=Library;category_minor=Net
[9]: http://raa.ruby-lang.org/cat.rhtml?category_major=Library;category_minor=HTML
[10]: http://raa.ruby-lang.org/cat.rhtml?category_major=Library;category_minor=XML
[11]: http://raa.ruby-lang.org/cat.rhtml?category_major=Library;category_minor=Physics
[12]: http://guides.rubygems.org
[13]: https://rubygems.org/pages/download
[2]: https://rubygems.org/pages/download/
[3]: http://guides.rubygems.org/
[5]: https://github.com/
[6]: https://www.ruby-toolbox.com/
[7]: http://guides.rubygems.org/command-reference/
[9]: http://bundler.io/
2 changes: 1 addition & 1 deletion id/community/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ untuk memulai petualangan Anda:
: Sekarang adalah waktu yang tepat untuk mengikuti perkembangan Ruby.
Jika berminat untuk membantu, mulailah dari sini.

[Blog tentang Ruby](weblogs/)
[Blog Ruby](weblogs/)
: Sangat jarang yang terjadi pada komunitas Ruby tidak dibicarakan dalam
*blog*. Kami memiliki sebuah daftar saran yang bagus untuk Anda agar
*up to date*.
Expand Down
Loading

0 comments on commit 147828d

Please sign in to comment.