Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

ตั้งค่า Ruby & Rails ให้สะดวก: Configurations ตรงกันข้ามเครื่องมือเพื่อพัฒนาเร็วขึ้น

หลังสร้าง Rails apps ไปหลายตัว คุณจะมีวิธีทำงานที่ชอบ เช่น อยากให้ awesome_print ใน Rails consoles เสมอ หรือ rails new สร้างโปรเจกต์用 rspec แทน minitest

แค่ระบุ preferences ทุกครั้งที่รันคำสั่ง อาจแค่รำคาญนิดหน่อย แตง่ายมากที่จะลืม และโกรธตอนคอมพิวเตอร์ไม่ทำสิ่งที่คุณคิดว่าสั่งแล้ว:

$ rails new best_app_ever
^C (sigh...)
$ rm -r best_app_ever
$ rails new best_app_ever --template=my_template

มีวิธีง่ายกว่า ด้วยการปรับเล็กน้อย คำสั่งเหล่านี้จะจำ preferences คุณ ไม่ต้องระบุซ้ำ

จับ preferences ด้วย .rc files

Ruby tools หลายตัวให้เก็บ preferences ด้วย .rc files อย่างง่าย

.rc files อยู่ใน home directory:

$ ls ~/.*rc
.bashrc .irbrc .screenrc .gemrc .railsrc .zshrc

และให้คำสั่งอย่าง gem, irb, rails หา preferences คุณ นี่คือ .rc files ที่ควรลอง:

.irbrc

ตอนรัน rails console อยากเห็น objects awesome_printed โดย default พิมพ์ AwesomePrint.irb! ทุกครั้ง ตั้งใน ~/.irbrc:

~/.irbrc
require "awesome_print"
AwesomePrint.irb!

ครั้งหน้าที่เริ่ม rails console objects จะพิมพ์สวยขึ้นอัตโนมัติ

.irbrc ยังดีสำหรับ hacky convenience methods ช่วยเล่นกับ objects:

~/.irbrc
require "awesome_print"
AwesomePrint.irb!
# returns instance methods on klass that aren't already on Object
def m(klass)
  klass.public_instance_methods - Object.public_instance_methods
end
~/Source/rcfiles jweiss$ bin/rails c
Loading development environment (Rails 4.1.1)
irb(main):001:0> m ActiveRecord::Base
[ [ 0] [](attr_name) ActiveRecord::Base (ActiveRecord::AttributeMethods) (unbound)
[ 1] []=(attr_name, value) ActiveRecord::Base (ActiveRecord::AttributeMethods) (unbound)
[ 2] _commit_callbacks() ... about 200 more methods...

ปรับแต่ง environment แบบนี้ คุณจะรู้สึกว่า libraries ที่ใช้เป็น ของคุณ ไม่ใช่แค่ libraries ที่คุณ ใช้

.gemrc

Rubygems มี .rc file ของตัวเอง ทำให้จัดการ gems สะดวก เยอะใช้ .gemrc ข้าม rdoc และ ri generation ทำให้ gems install เร็วขึ้น:

~/.gemrc
gem: --no-document

แตทำอะไรได้อีกเยอะ มีค่าอื่นปรับใน .gemrc เช่น :sources: (หา gems ที่ gem servers อื่น) และ :backtrace: (ดู full backtrace ตอน error):

~/.gemrc
gem: --no-document
:backtrace: true
:sources:
  - https://my.internal.gem.server
  - https://rubygems.org

ดู settings อื่นๆ ใน gem environment command documentation

.railsrc

หลายปีก่อน Rails 3 ทำให้ generate apps ไม่ใช้ default stack ง่าย ถ้าอยาก app ไม่ใช้ minitest (เพื่อใส่ rspec หลัง) ง่ายแค่:

$ rails new my_awesome_app --skip-test-unit

หรือที่ทำงานมี project template เอง:

$ rails new my_awesome_corporate_app --template=https://example.com/my_app_template

คุ้นเคย stack แล้ว จะอยากใช้ทุกโปรเจกต์ใหม่ แตง่ายลืมเพิ่ม parameters ตอน generate ตั้งใน .railsrc:

~/.railsrc
--template=https://example.com/my_app_template
--database=postgresql

ตอนนี้รัน rails new ด้วย parameters ถูกต้องทุกครั้ง และอยาก override สำหรับโปรเจกต์เดียว ทำได้ด้วย --no-skip-test-unit commands

ทำให้ environment เป็นของคุณ

การ config เล็กน้อยล่วงหน้า ทำให้ environment รู้สึกเหมือนบ้าน ข้ามความเจ็บปวดรันคำสั่งโดยไม่มี parameters ที่อยากได้ ไม่ต้องขุด docs หา options ถูกต้อง และเข้าสู่ส่วนสนุกของการเขียนโค้ดทันที