2016-07-04 2 views
1

im brand new to Ruby, и я только что закончил кодирование программы.как мне составить/скомпилировать мой проект ruby ​​

Программа имеет около 350 строк кода, 6 методов, но классов нет. он использует константы и глобальные переменные.

Согласны ли, например, иметь глобальные переменные/константы в отдельном файле? следует ли разбить все методы на разные файлы?

Какими должны быть папки, где у меня есть все файлы?

и, наконец, как я создать Makefile (или rakefile то, что это называется. У меня есть грабли rubygem)

большое спасибо

+1

Это далеко, чтобы задать общий вопрос и возьмет целую книгу, чтобы покрыть ответы. Пожалуйста, ОЧЕНЬ ОЧЕНЬ конкретный с вашими вопросами. https://www.ruby-lang.org/en/documentation/quickstart/ может помочь – jamesc

+0

Хороший ответ http://stackoverflow.com/questions/3307209/what-is-the-modern-way-to-structure-a -ruby-gem –

+1

Лучше всего задать один вопрос на вопрос. –

ответ

1

Для новичка будет достаточно следующее.

├── Gemfile 
├── Gemfile.lock 
├── app.rb 
├── config.ru 
└── lib/ 
    ├── lib1.rb 
    ├── lib2.rb 

где app.rb это вы главный файл и запустить проект, используя

рубин app.rb

Библиотека/ имеет вы библиотечные файлы lib1.rb и lib2.rb

Предположим, что вы читаете через свое приложение, а затем lib1.rb может быть tweet.rb

+0

ОК, спасибо, но у меня только 1 файл прямо сейчас. который является просто program.rb, и я запускаю его, используя 'ruby program.rb' в терминале. У меня нет файлов конфигурации или lib. мне тоже нужно создать файл рейка или достаточно 'ruby program.rb'? –

+0

Нет, вам не нужен rakefile, если вы не чувствуете, что вам это действительно нужно. – krazedkrish

0

Я рекомендую использовать Hoe: https://github.com/seattlerb/hoe

Культиватор фокусируется на сохранении все на своем месте, в удобной форме и разумно извлекая то, что ему нужно. В результате в вашем выпуске нет файлов YAML, конфигурационных каталогов, рубиновых файлов или любых других артефактов , которые у вас еще не были.

Что мне нравится, так это то, что тестовый каталог настроен по умолчанию, а запуск rake будет проходить тесты. Я требую свой lib/project_name.rb и заполните тесты.

A Hoe setup включает в себя файл Rakefile. Рейк поддерживается той же группой позади Hoe, Seattle.rb. Инфо: https://github.com/ruby/rake; docs: http://docs.seattlerb.org/rake/

Hoe позволяет превратить ваш проект в драгоценный камень, если применимо к вашему прецеденту.

Культиватор имеет кучу плагинов:

Культиватор имеет гибкую систему плагинов, которая позволяет активировать и деактивировать какие задачи доступны на данном проекте. Hoe был частично разбился на плагины, чтобы упростить обслуживание, а также , чтобы было проще отключить или заменить код, который вам не нужен.

Plus it's written by hardcore rubyists Ryan Davis (author of MiniTest) and Eric Hodel, so the code is bulletproof and the repo stays maintained.


Структура Обзор

project_dir/ 
    History.txt 
    Manifest.txt 
    README.txt 
    Rakefile 
    bin/... 
    lib/... 
    test/... 

Установка & Настройка

Установка с помощью командной строки:

gem install hoe 

настройки проекта:

sow project_name 

Документация

Hoe Documentation PDF

+1

отличный ответ, очень информативный. поэтому большое спасибо за это. но все это применимо, если у меня есть только один файл (program.rb), и я запустил терминал в терминале с помощью 'ruby program.rb'? мне все еще нужен файл rakefile или папка/файлы lib? –

+0

Всё зависит. Что ты пытаешься сделать? Если это код для чего-либо профессионального, я бы рекомендовал использовать структуру каталогов с помощью «rakefile или lib folder/files» _. Проверьте это минимальное репо, чтобы получить представление о том, как использовать Hoe для структурирования вашего кода: https://github.com/step1profit/chef_steps – SoAwesomeMan

0

"Он использует константы и глобальные переменные." О, нет, пожалуйста, не делай этого. Вы делаете свою жизнь бесполезно трудной.

Вам действительно нужно избегать использования глобальных констант и переменных, если у вас буквально нет другого варианта. Им очень сложно поддерживать порядок и, как правило, вызывать хаос в любой нетривиальной программе.

Организуйте все в своей программе в одном или более module или class определениях. Дайте им значащие имена. Вы будете использовать module для контейнеров «коллекция методов», class для того, что инкапсулирует процесс или сущность какого-то рода.

Это различие иногда трудно сделать, но для тщательного изучения и изучения различных подходов необходимо будет сделать это правильно.

Основа моего кода Ruby, является директорией bin/ для любого рода исполняемых файлов, lib/ для библиотеки файлов, test/ для тестирования коды и README файла, чтобы объяснить, что все это делает. Последние два особенно важны, поскольку непроверенный код - это не что иное, как проблема, а недокументированный код еще хуже.

Вам понадобится только Rakefile, если у вас есть какие-то процессы, которые вы должны выполнять на регулярной основе. Упаковка gem - одна из таких вещей, или как с Rails, управление миграциями баз данных. Большинство проектов не нуждаются в одном из них, но иногда полезно включить тот, который просто запускает тесты или создает документацию.

Формат Rakefile очень прост, и есть буквально миллионы примеров. Найдите тот, который делает то, что вам нужно, и адаптируйте его к вашей конкретной структуре.

Смежные вопросы