Что <appname> .rb файл в / lib, обычно используемом для в проекте Ruby?

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

Хорошее форматирование является одним способом увеличить N, полезные комментарии - другой.

6
задан Community 23 May 2017 в 10:32
поделиться

2 ответа

Обычно (и, конечно, в примере с rake) файл appname.rb является ярлыком, требующим множества других файлов. Если вы посмотрите на этот файл в проекте Rake на GitHub, большая часть того, что он делает, требует файлов в каталоге lib / rake и включает модули по мере необходимости.

5
ответ дан 10 December 2019 в 02:50
поделиться

Основываясь на Ответ Эмили :

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

Таким образом, шаблон будет выглядит так:

# in foo_project/lib/foo.rb:
module Foo
  autoload :Bar, 'foo/bar'
  autoload :Baz, 'foo/baz'
end

# in foo_project/lib/foo/bar.rb:
module Foo
  class Bar
  ...
end

# in foo_project/lib/foo/baz.rb:
module Foo
  class Baz
  ...
end

Затем в своем проекте вы можете сделать следующее:

require 'foo'
# note: no require 'foo/bar' or 'foo/baz'
my_bar = Foo::Bar.new
4
ответ дан 10 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: