RailsIran

پروژه جدید

دانلود
ric new — ساخت پروژه‌ی جدید

 برای ساخت یک پروژه‌ی Rails کاملا جدید  داخل یک کانتینر داکر از این دستور استفاده کنید. این دستور فایل‌های پروژه را به دایرکتوری فعلی شما کپی می‌کند تا بتوانید با ادیتور دلخواهتان آن‌ها را ویرایش کنید.

$ ric new

نحوه‌ی استفاده

$ ric new myapp
$  ric new myapp --css tailwind
$  ric new myapp --js three
$  ric new myapp --js p5 --local

آرگومان <myapp> هم نام پروژه و هم نام پوشه‌ای است که در دایرکتوری فعلی ساخته خواهد شد. از حروف کوچک انگلیسی، اعداد، خط تیره، آندرلاین و نقطه استفاده کنید.

کاری که انجام می‌دهد (به ترتیب)

اول، بر اساس flagهایی که داده‌اید (در پایین توضیح داده شده) یک ایمیج پایه انتخاب می‌کند.

دوم، آن ایمیج را از رجیستری railsiran دانلود می‌کند. اگر --local داده باشید، به جای دانلود، به دنبال ایمیجی می‌گردد که از قبل روی سیستم شما باشد.

سوم، یک کانتینر داکر به نام <name> از روی آن ایمیج اجرا می‌کند.

چهارم، workspace داخل کانتینر را به <name> تغییر نام می‌دهد.

پنجم، پروژه را از کانتینر به مسیر ./<name>/ روی سیستم شما کپی می‌کند تا ادیتور شما بتواند فایل‌ها را ببیند.

ششم، یک config/master.key جدید می‌سازد و config/credentials.yml.enc را با آن دوباره رمزگذاری می‌کند تا پروژه‌ی شما credentialهای منحصربه‌فرد خودش را داشته باشد. دو پروژه‌ی ساخته‌شده با ric new هرگز master key مشترکی ندارند.

وقتی هر شش مرحله تمام شد، شما یک کانتینر در حال اجرا، یک پوشه‌ی پروژه روی دیسک، و یک پورت روی میزبان دارید (پیش‌فرض 3000، در صورت اشغال بودن، خودکار یک پورت بالاتر).

Flagها

بدون flag

$ ric new myapp

ایمیج ri_base را دانلود می‌کند. این variant حداقلی است: Rails 8 با SQLite و Solid Trifecta (شامل solid_queue، solid_cache و solid_cable). نه CSS framework دارد و نه کتابخانه‌ی جاوااسکریپت. وقتی می‌خواهید از پایه‌ی تمیز شروع کنید یا قصد دارید asset stack مخصوص خودتان را اضافه کنید، از این استفاده کنید.

--css tailwind

$ ric new myapp --css tailwind

ایمیج ri_tailwind را دانلود می‌کند. مثل ایمیج پایه است، به علاوه‌ی این که tailwindcss-rails از قبل نصب و پیکربندی شده است. می‌توانید از همان commit اول، utility classهای Tailwind را در viewهایتان بنویسید.

--js three

$ ric new myapp --js three

ایمیج ri_three را دانلود می‌کند. این ایمیج Tailwind است به علاوه‌ی three.js که در importmap پین شده. وقتی می‌خواهید WebGL یا گرافیک سه‌بعدی آماده باشد، از این استفاده کنید — نیازی به مرحله‌ی جداگانه‌ی npm install نیست.

از آنجایی که variant three روی variant Tailwind ساخته شده، Tailwind از قبل داخل آن هست. نیازی نیست همراه آن --css tailwind هم بدهید؛ ric این ترکیب را به عنوان زائد رد می‌کند.

--js p5

$ ric new myapp --js p5

ایمیج ri_p5 را دانلود می‌کند. Tailwind به علاوه‌ی p5.js، باز هم از طریق importmap. برای creative coding، هنر تولیدی (generative art) یا visualization سریع از این استفاده کنید.

همان قاعده‌ی --js three اعمال می‌شود: Tailwind از قبل داخل آن هست، پس با --css tailwind ترکیب نکنید.

--js react

$ ric new myapp --js react

ایمیج ri_react را دانلود می‌کند. Tailwind به علاوه‌ی React که از طریق importmap لود می‌شود. وقتی می‌خواهید کامپوننت‌های React داخل یک اپلیکیشن Rails بنویسید بدون رفتن به سمت toolchain جداگانه‌ی Node، از این استفاده کنید.

همان قاعده اعمال می‌شود: Tailwind از قبل داخل آن هست، پس با --css tailwind ترکیب نکنید.

--local

$ ric new myapp --local $ ric new myapp --js three --local

مرحله‌ی دانلود را رد می‌کند و از یک ایمیج که از قبل روی داکر محلی شما وجود دارد استفاده می‌کند. این وقتی مفید است که خودتان ایمیج‌های ric را به صورت محلی می‌سازید (مستندات variantهای ایمیج را ببینید) و می‌خواهید آن‌ها را قبل از آپلود به رجیستری امتحان کنید. می‌توانید آن را با هر کدام از flagهای variant ترکیب کنید.

نکات رایج

پوشه نباید از قبل وجود داشته باشد. اگر ./<name>/ وجود داشته باشد، ric از بازنویسی خودداری می‌کند — اول آن را تغییر نام دهید یا حذف کنید.

نام‌هایی که با عدد شروع می‌شوند رد می‌شوند، چون Ruby و Rails آن‌ها را به عنوان نام ماژول قبول نمی‌کنند. مجموعه‌ی کامل کاراکترهای مجاز شامل حروف کوچک انگلیسی، اعداد، خط تیره، آندرلاین و نقطه است.

تداخل پورت‌ها خودکار مدیریت می‌شود: ric از 3000 شروع به جستجو می‌کند و اولین پورت آزاد را برمی‌دارد. اگر پروژه‌ی خود را روی پورت 3000 نمی‌بینید، یعنی چیز دیگری روی سیستم شما به آن گوش می‌داده است.