Reactivecocoa: Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с прСфиксами rac_ Π² Swift 3?

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 10 июл. 2016  Β·  15ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: ReactiveCocoa/ReactiveCocoa

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ Swift API ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ соглашСниС ΠΎ Π½ΠΈΠΆΠ½ΠΈΡ… рСгистрах Π²Π΅Ρ€Π±Π»ΡŽΠ΄Π°.

Π’ настоящСС врСмя Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π±Π°Π·Π΅ ΠΊΠΎΠ΄Π° Swift: NotificationCenter.rac_notifications(forName:object:) ΠΈ URLSession.rac_data(with:) . Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ IIRC ΠΌΡ‹ собираСмся ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Rex ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ рСпозитория Cocoa Bindings Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚, слСдуСт Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ прСфиксы rex_ .

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π»ΠΈ Π½Π°ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ?

Для Π΄Π²ΡƒΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π² этом Ρ€Π΅ΠΏΠΎ, вСроятно, самоС Π½Π΅ΠΊΡ€Π΅Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ имя - makeProducer .

НачинайтС ΠΈΠΌΠ΅Π½Π° Ρ„Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с Β«makeΒ», egxmakeIterator ().

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ: послС Π²Ρ‚ΠΎΡ€ΠΎΠΉ мысли, для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π΅ΡΡ имя, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ доставлСно, Π±Ρ‹Π»ΠΎ Π±Ρ‹ подходящим IMO, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, просто notifications(forName:object:) .

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Одна ΠΈΠ· Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ сдСлали с SnapKit, - это созданиС структуры, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, API RAC ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

struct UIButtonRACDSL {
    var pressed: Signal<UIButton, NoError>
    init(button: UIButton) { }
}

extension UIButton {
    var rac: UIButtonRACDSL { return UIButtonRACDSL(button: self) }
}

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΏΠΎ этому ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ обСспСчиваСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ.

ВсС 15 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ прСфиксов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚ΠΈΠΏΡ‹ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ΠΌΠΈ - ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв. Или ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… сСбС. Π― Π½Π° Π·Π°Π±ΠΎΡ€Π΅.

Если ΠΌΡ‹ ΠΈΡ… сохраним, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ здСсь rac_ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ΄ ΠΎΡ‚ Rex) ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ прСфикс для ReactiveSwift.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ прСфикса привязок Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅Π½ с сохранСнными свойствами, Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ для Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ прокси, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ всС ΠΈΠ· Π½ΠΈΡ….

Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

view.bindables.text <~ property

// `view.bindables` is of type `Bindings<UIView>`, which conforms to `BindingsProtocol`
// that requires an associated type `Owner`.
//
// `view.bindables.text` is provided by the extension to `BindingsProtocol` for all
//`Owner` inherited from `UIView`.

(Или просто rac ? Но я полагаю, Ρ‡Ρ‚ΠΎ ΠΈ ReactiveSwift, ΠΈ ReactiveCocoa ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ привязки)

... Или просто Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ это view.textProxy , view.reactiveText ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π°.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ: я собрал быстрый ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ (https://github.com/RACCommunity/Rex/pull/143).

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ 2: Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ бСспорядок. :ΠΏ

ReactiveCocoa 5+ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ совмСстим с Rex. RAC ΠΏΠΎΠ³Π»ΠΎΡ‚ΠΈΡ‚ РСкса.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, я ΠΈΠΌΠ΅Π» Π² Π²ΠΈΠ΄Ρƒ Ρ‚Π΅ привязки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ принСс РСкс. Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅, Ссли это ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° бСспорядок. 😸

outlets Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄Π΅Π½Ρ‚ΠΎΠΌ.

"Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ" Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для быстрого языка. Β«rac_Β» ΠΈ Β«rex_Β» - ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠ»ΠΎΡ…ΠΈΠ΅ наимСнования. Π― Π²Ρ‹Π±Π΅Ρ€Ρƒ Β«Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉΒ», Β«Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉΒ» ΠΈΠ»ΠΈ «сигнал», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ view.reactiveText, view.activeText ΠΈΠ»ΠΈ view.signalText.

Благодаря Swift ΠΈ модулям большС Π½Π΅Ρ‚ риска ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π²ΠΎ врСмя выполнСния ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅Ρ‚ нСобходимости Π² прСфиксах. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π°Π²Π°ΠΉ просто бросим ΠΈΡ…! : D

Для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² это Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. Но Π½Π°ΠΌ всС Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ свойствам, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ свойства Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹. πŸ˜•

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° основС прокси bindable Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ view.bindables.something , ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти Ρ‚Π°ΠΊΠΈΠ΅ ярлыки, ΠΊΠ°ΠΊ %view.something . πŸ˜•

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ / ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ Π²ΠΎ врСмя компиляции ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π² Swift 3.0. Π’Π°ΠΊΠΈΠ΅ прСдлоТСния, ΠΊΠ°ΠΊ использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ магичСских свойств, просто ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ столкновСния ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

Π― Π±Ρ‹ рискнул ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π² ΠΎΠ±ΠΌΠ΅Π½ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ ΡΡ‚Π΅Π½ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ ...

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠΊΠ° застряли с прСфиксами для свойств.

Одна ΠΈΠ· Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ сдСлали с SnapKit, - это созданиС структуры, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, API RAC ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

struct UIButtonRACDSL {
    var pressed: Signal<UIButton, NoError>
    init(button: UIButton) { }
}

extension UIButton {
    var rac: UIButtonRACDSL { return UIButtonRACDSL(button: self) }
}

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΏΠΎ этому ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ обСспСчиваСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ.

Π”Π°, я ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» ΠΎΠ± этом Ρ€Π°Π½ΡŒΡˆΠ΅ с вСрсиСй Π½Π° основС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Он замСняСт ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сокращСниС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. ИМО, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ rac качСствС ΠΈΠΌΠ΅Π½ΠΈ свойства, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² любом случаС это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ распространСнноС сокращСниС.

https://github.com/RACCommunity/Rex/pull/143

rac свойство выглядСло Π±Ρ‹ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡ΠΈΡ‰Π΅ ... ВАК ΠžΠ§Π•ΠΠ¬ !!! : heart_eyes:

Π― Π΄ΡƒΠΌΠ°ΡŽ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΡ€Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ RxSwift.

https://github.com/ReactiveX/RxSwift/blob/4952adb27c684b47792923b00015516849061eab/RxCocoa/Common/Reactive.swift
https://github.com/ReactiveX/RxSwift/blob/4952adb27c684b47792923b00015516849061eab/RxCocoa/iOS/UIControl%2BRx.swift

Они Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ структуру Reactive которая являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ хотят Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π² Reactive . ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΎΠ½ΠΈ смодСлировали это ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ .lazy Π‘Π²ΠΈΡ„Ρ‚Π°.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это Π½Π΅ воровство.

https://github.com/RACCommunity/Rex/pull/143/commit/86f03c3b2d4759c87254a9ea3b28939f23f6be56
😜

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ