Π‘ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΏΠ°Π΄Π΅ΠΆΠ΅ΠΉ ΡΡΡΡΠΊΠΈΡ ΠΈΠΌΡΠ½, ΡΠ°ΠΌΠΈΠ»ΠΈΠΉ ΠΈ ΠΎΡΡΠ΅ΡΡΠ². ΠΡ Π·Π°Π΄Π°ΡΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ Π² ΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠ°Π΄Π΅ΠΆΠ΅, Π° ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π² Π½ΡΠΆΠ½ΠΎΠΌ Π²Π°ΠΌ. ΠΡΠΎΡΡΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΠΈ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ°ΠΊ ΠΆΠ΅.
Petrovich ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠΎΠ» ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ, ΠΎΡΡΠ΅ΡΡΠ²Ρ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² Gemfile:
gem 'petrovich', '~> 1.0'
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π³Π΅ΠΌ cΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Bundler:
$ bundle
ΠΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ:
$ gem install petrovich
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π³Π΅ΠΌΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Ruby Π½Π΅ ΠΌΠ»Π°Π΄ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ 1.9.3. Petrovich Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Ruby on Rails ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π² Π»ΡΠ±ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Ruby.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡ Π·Π°Π΄Π°ΡΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΡΠ°ΠΌΠΈΠ»ΠΈΡ, ΠΈΠΌΡ ΠΈ ΠΎΡΡΠ΅ΡΡΠ²ΠΎ) Π² ΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠ°Π΄Π΅ΠΆΠ΅, Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π΅Π»Π°Π΅Ρ Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΏΠΎΠ» - ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π΅Π³ΠΎ, ΡΡΠΎ ΠΏΠΎΠ²ΡΡΠΈΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈ Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. ΠΡΠ»ΠΈ ΠΏΠΎΠ» Π½Π΅ ΡΠΊΠ°Π·Π°Π½, ΡΠΎ Petrovich ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΈΠΌΠ΅ΡΡ:
# Π‘ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π² Π΄Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°Π΄Π΅ΠΆ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° `dative`. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ `genitive`,
# `dative`, `accusative`, `instrumental`, `prepositional`.
Petrovich(
lastname: 'Π‘Π°Π»ΡΡΠΊΠΎΠ²-Π©Π΅Π΄ΡΠΈΠ½',
firstname: 'ΠΠΈΡ
Π°ΠΈΠ»',
middlename: 'ΠΠ²Π³ΡΠ°ΡΠΎΠ²ΠΈΡ',
).dative.to_s # => Π‘Π°Π»ΡΡΠΊΠΎΠ²Ρ-Π©Π΅Π΄ΡΠΈΠ½Ρ ΠΠΈΡ
Π°ΠΈΠ»Ρ ΠΠ²Π³ΡΠ°ΡΠΎΠ²ΠΈΡΡ
# Π‘ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π² ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°Π΄Π΅ΠΆ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° `to` ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ ΠΎΡΡΠ΅ΡΡΠ²Π°.
# ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ `firstname`, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠΌΡ.
Petrovich(
firstname: 'ΠΠ²Π°Π½',
middlename: 'ΠΠ΅ΡΡΠΎΠ²ΠΈΡ',
).to(:instrumental).middlename # => ΠΠ΅ΡΡΠΎΠ²ΠΈΡΠ°
# Π‘ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»
# ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΏΠΎΠ», ΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΠΉΡΠ΅ Π΅Π³ΠΎ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°Ρ
,
# ΡΡΠΎΠ±Ρ ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π²Π΅ΡΠ½ΡΠΌ.
# ΠΡΠ»ΠΈ ΠΏΠΎΠ» Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½, ΡΠΎ Π³Π΅ΠΌ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
# ΠΠΎΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: male, female.
Petrovich(
lastname: 'ΠΠ½Π΄ΡΠ΅ΠΉΡΡΠΊ',
firstname: 'Π‘Π°ΡΠ°',
gender: :male
).to(:instrumental).to_s # => ΠΠ½Π΄ΡΠ΅ΠΉΡΡΠΊΡ Π‘Π°ΡΠ΅
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π½ΠΈΠΆΠ΅.
ΠΠ΅ΡΠΎΠ΄ | ΠΠ°Π΄Π΅ΠΆ | Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΡΡΠΈΠΉ Π²ΠΎΠΏΡΠΎΡ |
---|---|---|
genitive | ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ | ΠΠΎΠ³ΠΎ? |
dative | Π΄Π°ΡΠ΅Π»ΡΠ½ΡΠΉ | ΠΠΎΠΌΡ? |
accusative | Π²ΠΈΠ½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ | ΠΠΎΠ³ΠΎ? |
instrumental | ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ | ΠΠ΅ΠΌ? |
prepositional | ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ½ΡΠΉ | Π ΠΊΠΎΠΌ? |
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π°
ΠΡΠΈΠΌΠ΅ΡΡ:
Petrovich(
lastname: 'Π‘ΠΊΠ»ΠΈΡΠ°ΡΠΎΠ²ΡΠΊΠΈΠΉ'
).gender # => :male
Petrovich(
firstname: 'ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ°',
lastname: 'Π‘ΠΊΠ»ΠΈΡΠ°ΡΠΎΠ²ΡΠΊΠ°Ρ'
).female? # => true
Petrovich(
lastname: 'Π‘ΠΊΠ»ΠΈΡΠ°ΡΠΎΠ²ΡΠΊΠΈΠΉ'
).male? # => true
Petrovich(
firstname: 'Π‘Π°ΡΠ°',
lastname: 'ΠΠ½Π΄ΡΠ΅ΠΉΡΡΠΊ'
).androgynous? # => true
Petrovich(
firstname: 'Π‘Π°ΡΠ°',
lastname: 'ΠΠ½Π΄ΡΠ΅ΠΉΡΡΠΊ'
gender: :male,
).male? # => true
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
ΠΡΠΈΠΌΠ΅ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ²:
petrovich -l ΠΠ²Π°Π½ΠΎΠ² -f ΠΠ²Π°Π½ -m ΠΠ²Π°Π½ΠΎΠ²ΠΈΡ -g male -c accusative
petrovich -l ΠΠ²Π°Π½ΠΎΠ² -f ΠΠ²Π°Π½ -m ΠΠ²Π°Π½ΠΎΠ²ΠΈΡ -c accusative -n
petrovich -l ΠΠ²Π°Π½ΠΎΠ² -f ΠΠ²Π°Π½ -m ΠΠ²Π°Π½ΠΎΠ²ΠΈΡ -c accusative -o
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ: petrovich --help
.
ΠΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ rake
.
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΡΡ "Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎΡΡΠΈ" ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΈΠ»ΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ rake evaluate
, ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΎΡΡΡΡ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΠΈ
ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π΅ Π±ΡΠ»Π° Π±Ρ ΡΡΠΎΠ»Ρ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π° Π±Π΅Π· ΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΠ°Π²Π»Π° Π‘ΠΊΡΡΠ»ΡΠ²Π°, ΠΠΈΠΊΠΈΡΡ ΠΠΎΠΌΡΡΠ΅Π³ΠΎ, ΠΠ³ΠΎΡΡ ΠΠΎΡΠΊΠ°ΡΡΠ²Π°, ΠΈ Π΄ΡΡΠ³ΠΈΡ Ρ ΠΎΡΠΎΡΠΈΡ Π»ΡΠ΄Π΅ΠΉ.
ΠΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΡ ΠΠ½Π΄ΡΠ΅Ρ ΠΠΈΠ»ΡΠΆΠΎ Π·Π° ΡΠΎ, ΡΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΠ» Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆ ΠΠ΅ΡΡΠΎΠ²ΠΈΡΠ° Π² Π½Π°ΡΠ΅ΠΌ Π»ΠΎΠ³ΠΎΡΠΈΠΏΠ΅.
ΠΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΡΡ Petrovich Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠ΅ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ https://github.com/petrovich. Π Π΅Π±ΡΡΠ°, ΡΠΏΠ°ΡΠΈΠ±ΠΎ!
Π‘ΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅
ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΡΠ»ΠΈ Π±Π°Π³ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ, ΡΠ°ΠΊ ΠΈ Π² Π±Π°Π·Π΅ ΠΏΡΠ°Π²ΠΈΠ», ΡΠΎ Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡΠΊΠ½ΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ Π²Π½Π΅ΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΡΠ° ΠΏΠΎΠΌΠΎΡΡ Π½Π΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ! ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΈ ΠΏΠ°Π΄Π΅ΠΆΠ΅ΠΉ ΠΈΠΌΡΠ½, ΡΠ°ΠΌΠΈΠ»ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΡΡΠ΅ΡΡΠ², ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π² Issues Π½Π° GitHub. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π° ΠΈ, ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ΅ΡΠ΅Π½Π°.
ΠΠ΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request