রুবি: ইন্টারেক্টিভ রুবি কনসোলে (আইআরবি) কোনও ফাইল কীভাবে লোড করবেন?


84

রুবির সাথে কীভাবে প্রোগ্রাম করবেন তা শিখতে আমি আইআরবি (ইন্টারেক্টিভ রুবি কনসোল) ব্যবহার করছি। আমি যদি প্রথমে আমার প্রোগ্রামগুলিকে একটি পাঠ্য সম্পাদকটিতে লিখি তবে কনসোলে কোনও ফাইল লোড করব কী করে?


আপনি কি অর্জন করতে চান [এটি] [1]? [1]: stackoverflow.com/a/2652558/919641
pjam

4
উত্স ("filename.rb")
আসাদ ইব্রাহিম

উত্তর:


86

আপনার যদি কেবল একটি ফাইল আইআরবিতে লোড করতে হয় irb -r ./your_file.rbতবে আপনি একই ডিরেক্টরিতে থাকলে এটির সাথে অনুরোধ করতে পারেন ।

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


4
আপনি যদি প্রতিটি ফাইলের মধ্যে just -r এর চেয়ে বেশি যুক্ত করতে চান, তবে আমি যা করি তা কাজ করে। এটি আমি কীভাবে আমার সমস্ত ফাইলগুলিকে আইআরবিতে লোড করি যাতে আমি আমার অ্যাপের সমস্ত জিনিস আইআরবির মধ্যে প্রবেশ করতে পারি, অবশ্যই আমি বুট ফাইলটি আইআরবিতে লোড করতে একটি রেক স্ক্রিপ্ট ব্যবহার করি যাতে আমি ঠিক পারি rake irbএবং এটি আমার জন্য সব কিছু করে does
থার্মাটিক্স

এই আমার মানুষ পড়ার পর প্রথম প্রচেষ্টা ছিল, কিন্তু আমি -r some_file.rb ব্যবহার করেন, 30 মিনিট পরে আমি এই এবং অ্যাড পাওয়া ./, ধন্যবাদ xD
অ্যালেক্সিস

উবুন্টু 16.04 এ, আমি বিন্দুটি irb -r /foo/foo.rb
সরিয়েছি

এটি ফাইল থেকে ভেরিয়েবলগুলিতে অ্যাক্সেস দেয় না।
রেডন রোসবারো

49

উবুন্টু ১৪.০৪-এ রুবি ১.৯.৩ ব্যবহার করে, আমি বর্তমান ডিরেক্টরি থেকে irbনিম্নলিখিত কমান্ড লাইনের সাথে ফাইলগুলি লোড করতে সক্ষম হয়েছি :

irb -I . -r foo.rb

যেখানে foo.rbফাইল আমি কি আমার বর্তমান ডিরেক্টরি থেকে লোড করতে চান হয়। -Iবিকল্প বর্তমান ডিরেক্টরী (যোগ করার জন্য প্রয়োজনীয় .হিসাবে রুবি মানুষ পৃষ্ঠা থেকে ব্যাখ্যা, রুবি এর লোড পথে)। এটি requireবর্তমান ডিরেক্টরি থেকে ফাইলগুলিকে সম্ভব করে তোলে , যা সমাপ্তির -rবিকল্পটি irb

আমি যখন এই সমস্যাটি পেলাম তখন মূল কীটি আমার পক্ষে সুস্পষ্ট ছিল না সেটি হ'ল -Iবিকল্প। একবার আপনি যে কি, আপনি কল করতে পারেন require 'foo.rb'মধ্যে থেকে irbবর্তমান ডিরেক্টরির মধ্যে কোনো ফাইল জন্য। এবং অবশ্যই, আপনি যে ডিরেক্টরিটি চান তা কেবল বিকল্পের .সাহায্যে নির্দিষ্ট করতে পারেন -I। লোড পাথের একাধিক ডিরেক্টরি অন্তর্ভুক্ত করার জন্য এগুলি একটি কোলন দিয়ে আলাদা করুন (:), যেমন:

irb -I foo/:bar/:baz/

এই কমান্ডের ডিরেক্টরি যোগ হবে foo, barএবং bazরুবি এর লোড পথের দিকে।

চূড়ান্ত বিকল্পটি হ'ল ফাইলটি ব্যবহার করার সময় requireবা -rলোড করার সময় ফাইলের আপেক্ষিক বা পরম পথ ব্যবহার করা :

irb -r ./foo.rb

বা এর মধ্যে থেকে irb:

> require './foo.rb'

আপনার সমাধানের ফলাফলটি 'রুবি foo.rb' কল করার মতো, তবে কমপক্ষে আপনি দেখতে পাচ্ছেন কী চলছে। তবে আমি কনসোলটি উন্মুক্ত রাখতে চাই, তাই আমি আরও কিছু কমান্ড কার্যকর করতে পারি। কোন ধারণা?
পল ভার্সচুর

33

টাইপ করুন irb

এবং তারপর

require './ruby_file.rb'

এটি ধরে নেওয়া হচ্ছে যে ruby_file.rb একই ডিরেক্টরিতে রয়েছে। সেই অনুযায়ী সামঞ্জস্য করুন।


4
আপনি ব্যবহার করতে পারেন require_relative। উদাহরণস্বরূপ require "./lib/foo"একই কাজ করেrequire_relative "lib/foo"
ডেনিস

.rbrequire './ruby_file'. I checked in alচ্ছিক , আপনি রুবি লিখতে পারেন 1.9.3p551`
AMIC MING

./ কি করে?
12

4
@ দ্য 12 টি এটি বর্তমান ডিরেক্টরিতে আপেক্ষিক পথ
উইঙ্কলারের

28

দুইটি রাস্তা:

  1. প্রোগ্রামটি না চালিয়ে উত্স লোড করতে - এটি সমস্ত ভেরিয়েবল এবং ফাংশনগুলিতে অ্যাক্সেস দেয়:

source("filename.rb")

  1. প্রোগ্রাম চালানোর জন্য এবং তারপরে ইন্টারেক্টিভ মোডে নেমে যেতে - এটি কেবল ফাংশনে অ্যাক্সেস দেয়, ভেরিয়েবলগুলি নয়:

require("filename.rb")


4
এটি স্ক্রিপ্টটি পুনরায় লোড করার পদ্ধতি, প্রশ্নের উত্তর হিসাবে উপস্থিত হয়। আমি ব্যবহার করছিলাম requireযা স্ক্রিপ্টটি পুনরায় লোড করতে প্রদর্শিত হবে না (মূল উত্সের কোনও পরিবর্তনগুলি আপনার সেশনে প্রতিফলিত হবে না), যখন sourceমূল স্ক্রিপ্টে পরিবর্তনগুলি প্রতিবিম্বিত হয় ।
মাইকেল ওয়েলচ

4

এটি আপনার রুবি উপর নির্ভর করে। রুবি ১.৮-এ আপনার বর্তমান পথ অন্তর্ভুক্ত রয়েছে, অন্যদিকে রুবি ১.৯ নেই। $:আপনার পথটি অন্তর্ভুক্ত রয়েছে কি না তা নির্ধারণের জন্য মূল্যায়ন করুন । রুবি 1.9 এ আপনাকে অবশ্যই পুরো পথটি ব্যবহার করতে হবে যা সর্বদা একটি নিরাপদ বাজি bet

তারপরে আপনি ফাইলটি অন্তর্ভুক্ত করতে requireবা ব্যবহার করতে পারেন load

requireএটি সন্ধান করার সময় আপনাকে ফাইলটির প্রত্যয় যুক্ত করার প্রয়োজন হয় না এবং কেবল একবার ফাইলটি অন্তর্ভুক্ত করা হবে। বেশিরভাগ সময় requireপরিবর্তে ব্যবহার করা উচিত load

পরীক্ষা করে দেখুন $ LOAD_PATH (রুবি) করার জন্য একটি ডিরেক্টরি যোগ করার পদ্ধতি যদি আপনি রুবি 1.8 ব্যবহার করা করতে যাচ্ছি


2

পাঠ্য সম্পাদকটিতে রুবি কোডগুলি টাইপ করুন

এটি এক্সটেনশন .rb দিয়ে সংরক্ষণ করুন (উদাহরণস্বরূপ: ডেমো.আরবি )।

লিনাক্সে, আপনার টার্মিনালটি খুলুন তারপরে ডিরেক্টরিটি সেই ফাইলের বর্তমান অবস্থানে পরিবর্তন করুন (ডিরেক্টরি পরিবর্তন করতে সিডি কমান্ড ব্যবহৃত হয়)।

এর পরে, irb এবং আপনার ফাইলের নাম টাইপ করুন (আপনার এক্সটেনশন (.rb) অন্তর্ভুক্ত করতে ভুলবেন না)।

আইআরবি ব্যবহার করে একটি রুবি ফাইল লোড করা দেখতে এখানে ক্লিক করুন

এই চিত্রটিতে, আমি একটি সাধারণ রুবি ফাইল লোড করেছি যা কেবল "রুবি" প্রিন্ট করে।


0

আইআরবি-তে পাথ লোড করার আরেকটি উপায় হ'ল টাইপ করা দরকার তা হলে ফাইলটি টার্মিনালে টেনে আনুন 🙂 লিনাক্স মিন্ট ব্যবহার করে পরীক্ষা করা।


লিনাক্স মিন্ট। দুঃখিত আমি এটি যোগ করা উচিত ছিল।
মাইক কেনেডি

0

তাদের জন্য, যারা বিভিন্ন ডিরেক্টরি থেকে .rb ফাইলটি লোড করতে চান। কেবলমাত্র ডিরেক্টরিটির একটি স্ট্রিং উপস্থাপককে $: চলকতে যুক্ত করুন।

> $: << "/directory/to/the/required/rb/file"
> require "some_file"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.