কম্পিউটার টিউটোরিয়াল

গোপন জেমস আবিষ্কার: রেইলস ৪.২-এ শক্তিশালী কিন্তু উপেক্ষিত ফিচার

রেইলস ৪.২-এর প্রথম বিটা গত সপ্তাহ ঘোষণা হয়েছিল, এবং এটি ইতিমধ্যে চমৎকার মনে হচ্ছে। আমি ActiveJob, Web Console, Adequate Record, এবং ফরেন কি সাপোর্ট নিজের অ্যাপগুলোর জন্য ব্যবহার করতে খুব এক্সাইটেড।

কিন্তু রেইলসের সুন্দর্য트는 ডিটেইলসে নিহিত। এবং যদি আপনি একটু গভীরে খুঁজেন, তবে আপনি কিছু কম আডভার্টাইজড ফিচার পাবেন যা আপনার রেইলসের সাথে প্রতিদিনের কাজকে পুরোপুরি উন্নত করবে।

সহজে কনফিগ ফাইল লোড করা

ঠিক আছে, আমি বায়েসড হতে পারি। কিন্তু কনফিগ ফাইল লোড করার একটি বিল্ট-ইন উপায় থাকা চমৎকার হবে।

config_for, রেইলস ৪.২-এ নতুন, ঠিক যেমন আপনি এক্সপেক্ট করবেন সেভাবে কাজ করে:

config/redis.yml
development:
  host: localhost
  port: 6379
test:
  host: localhost
  port: 6379
production:
  host: redis-production
  port: 6379
irb(main):001:0> Rails.application.config_for(:redis)
=> {"host"=>"localhost", "port"=>6379}

অর্থাৎ, আপনি config_for(:redis) কল করলে, এটি আপনার রেইলস অ্যাপে config/redis.yml খুঁজে বের করবে, পার্স করবে, এবং আপনার RAILS_ENV-এর জন্য সঠিক কনফিগারেশন রিটার্ন করবে।

এটি আপনাকে yaml-এ ERB রাখতেও দেয়:

config/redis.yml
development:
  host: localhost
  port: <%= ENV['REDIS_PORT'] %>
test:
  host: localhost
  port: <%= ENV['REDIS_PORT'] %>
production:
  host: redis-production
  port: <%= ENV['REDIS_PORT'] %>
$ REDIS_PORT=6380 bin/rails c
Loading development environment (Rails 4.2.0.beta1)
irb(main):001:0> Rails.application.config_for(:redis)
=> {"host"=>"localhost", "port"=>6380}

যদি আপনার অ্যাপে অনেক সার্ভিস কনফিগার থাকে, তবে এটি আপনার ইনিশিয়ালাইজারগুলো অনেক সহজ করে দেবে।

আপনার অ্যাপস বুটস্ট্র্যাপ করা

অধিকাংশ রেইলস অ্যাপের চেষ্টা করার আগে কিছু কমান্ড রান করতে হয়। এমনকি অধিকাংশ খালি রেইলস অ্যাপের জন্যও ডেটাবেস সেট আপ করা প্রয়োজন বুট হওয়ার আগে।

তাই, রেইলস, একবার আবার কনভেনশন ওভার কনফিগারেশন মেনে, আপনার সেটআপ কোডের জন্য একটি নির্দিষ্ট জায়গা তৈরি করেছে: bin/setup।

ডিফল্টটি ভালো। কিন্তু bin/setup আপনার অ্যাপ শুরু করার জন্য প্রয়োজনীয় যেকোনো অন্যান্য কোড রাখার জন্যও সঠিক জায়গা।

তাই এখন যেহেতু এটি কনভেনশন, যদি আপনি ইতিমধ্যে আপনার অ্যাপের জন্য একটি বুটস্ট্র্যাপ স্ক্রিপ্ট লিখে ফেলেছেন, তবে সেটিকে bin/setup নাম দিন, যাতে আপনার অ্যাপ ব্যবহারকারীরা সহজে শুরু করতে পারে।

bin/setup আপনাকে নতুন রেইলস অ্যাপ জেনারেট করার সময় একটা কম ডিসিশন নেওয়ার সুযোগ দেয়। এবং একবার আপনি git pull-এর পর bin/setup রান করার অভ্যাস করলে, আপনাকে নতুন অ্যাপ জেনারেট করার সময় rake db:setup রান করা মনে রাখার প্রয়োজন থাকবে না।

আপনার হ্যাশ ভ্যালু ট্রান্সফর্ম করুন

এটি আরেকটি জিনিস যা আমার খুব দরকার পড়ে এবং আমি চাই এটি রুবিতে বিল্ট-ইন হতো। যখন আপনি একটি হ্যাশে transform_values কল করেন, তবে এটি হ্যাশ ভ্যালুতে map কল করার মত কাজ করে, এবং অরিজিনাল কীগুলো সরি রিপ্লেসড ভ্যালুসহ একটি নতুন হ্যাশ রিটার্ন করে:

h = {a: 1, b: 2, c: 3}
h.transform_values { |v| v * 2 } # => {a: 2, b: 4, c: 6}

সিম্পল যথেষ্ট। কিন্তু আপনি অবাক হবেন জানতে যে এটি কতবার কাজে আসে।

বোনাস: আরও কনফিগারেশন!

রেইলস ৪.২ আপনার নিজস্ব গ্লোবাল কনফিগারেশন সেট করার একটি সিম্পল উপায় দেয়:

Rails.application.config.x.some_configuration_key = "Some Value"
Rails.application.config.x.some_configuration_key # => "Some Value"
Rails.configuration.x.some_configuration_key # => "Some Value"

এটি খুব ভালো কাজ করে যখন আপনি এটিকে config_for এর সাথে কাম্বাইন করেন:

app_config = Rails.application.config_for(:app)
Rails.application.config.x.block_phone_calls = app_config["block_phone_calls"]

এখনো আছে!

লাগছে রেইলস ৪.২ একটি চমৎকার রিলিজ হতে যাচ্ছে। কিন্তু এই ছোট ছোট রিফাইনমেন্টগুলোই রেইলসে প্রতিদিন কাজ করার কথা খুব চমৎকার করে। তাই, যদি আপনি এখনো না করেন, তবে ৪.২ রিলিজ নোটসে দ্রুত একবার নজর দিয়ে দেখুন কোন অন্যান্য হেল্পফুল উন্নতিগুলো আপনি খুঁজে পেতে পারেন।

(এবং আপনি যদি কিছু কুল জিনিস খুঁজে পান, তবে সেটি নিজের पास রাখবেন না। এখানে শেয়ার করুন, যাতে আমরা সবাই কিছু নতুন শিখতে পারি!)

  1. Opera GX vs Opera — কোন ব্রাউজার ভালো?

  2. Opera GX vs Opera — কোন ব্রাউজার ভালো?

  3. অ্যান্ড্রয়েডে গুগল অ্যাসিস্ট্যান্টের সেরা ফিচারগুলো

  4. টেক-ফ্রেন্ডলি ৫টি সেরা ব্যাকপ্যাক: গ্যাজেট নিরাপদে বহনের জন্য