ผม update Ruby และ upgrade projects ไม่กี่โครงการ และพบ RubyGems features สนุกที่ไม่รู้มาก่อน:
ตอน Executables เก่า
เคย用 rvm จัดการ Ruby versions แตครั้งล่าสุด setup เครื่อง ลองไม่ใช้ ไม่ต้อง Gemsets ตอน有 Bundler และ Homebrew update Ruby
ใช้ได้ดี จน update Ruby แล้ว rails new, bundle install commands พัง จะชี้ไป เก่า Ruby version
แก้ได้โดย uninstall/reinstall gems ทีละตัว แตแค่ crazy ลอง gem pristine:
gem pristine --all --only-executables
gem pristine reset gem กลับสู่ version ที่ download ต้นทาง เหมือน uninstall/reinstall (ช่วยตอนแก้ไข gem debug แล้วลืม revert)
--all = all gems, --only-executables = แค่ files เช่น /usr/local/bin/rails และ /usr/local/bin/bundle นั่นคือ แค่ fix scripts ที่用รัน gem จาก command line
คำสั่งนี้ reset /usr/local/bin/rails กลับสู่สภาพตอน uninstall/reinstall
หนึ่งนาที กลับมาทำงานต่อได้
ตอนต้องการ Version เก่า
ตอนเขียน post เรื่อง respond_to สร้าง tiny apps 学习 用 Rails versions ต่างๆ ดูว่าแต่ละ version จัดการ respond_to และ respond_with ยังไง
Generate Rails app แต่ละตัวด้วย version ใด ไม่ต้อง:
gem install rails -v 4.0.0 rails new respond_to_4.0 gem uninstall rails gem install rails -v 4.1.0 rails new respond_to_4.1 gem uninstall rails
มีวิธีง่าย บอก RubyGems version ที่อยากรัน บน command line ด้วย underscores:
rails _4.0.0_ new respond_to_4.0 rails _4.1.0_ new respond_to_4.1
Fuzzy Gem Versions
แตส่วนก่อนยังมีปัญหา ไม่อยาก install 4.0.0 จริงๆ อยาก latest version ของ 4.0 พร้อม minor updates
จำได้ไหมว่า latest minor version ของ Rails 4.0 คืออะไร?
มีหลายวิธี lookup แตทำไมต้อง lookup ถ้า RubyGems ทำให้ได้?
gem install rails -v "~>4.0.0"
用 version strings จาก Bundler ได้หมด:
gem install rails -v ">3.1, <4.1"
有用! โดยเฉพาะผมที่เกลียดทำงานซ้ำที่คอมพิวเตอร์ทำได้ดีกว่า
แตคุณไม่ต้อง รู้ ทั้งหมด
ตอนเจอปัญหาไม่รู้มี easy answer แตคุณเดาได้ว่าน่าจะมี
สถานการณ์เหล่านี้แก้เองได้ แต repetitive และ annoying
เวลาเจอ repetitive, annoying task ใน project ที่用เยอะ มันหมายถึง 2 อย่าง:
- ใครสร้าง automate ไปแล้ว, หรือ
- หลายคนหวังว่า คุณ จะ automate
ก่อนทำ busywork ขุดลึกลงไปนิดหน่อย สืบสวนเล็กน้อย คุ้มเวลา
โพสต์นี้ส่งให้ list เท่านั้น สมัครรับ posts เหล่านี้ทุกวันศุกร์ได้ที่นี่!