gpt4 book ai didi

ruby - 如何在 Sinatra 中使用 gem?

转载 作者:数据小太阳 更新时间:2023-10-29 08:41:13 26 4
gpt4 key购买 nike

我正在构建一个名为 Lovers 的新版 Facebook 应用程序.您可以找到 Lovers source code on GitHub .我还在为 Facebook 构建一个自定义 gem。我希望我对这个自定义 Facebook gem 所做的更改立即对 Lovers 生效。

组织其目录结构的正确方法是什么?目前,它看起来像这样:

|- config.ru
|- features
|- support
|- env.rb
|- lib
|- lovers
|= lovers.rb
|- vendor
| - facebook
| - lib
|- modules/classes here

我添加了 ./vendor/facebook/lib$LOAD_PATH来自 config.ru & env.rb .这行得通,但我应该使用 init.rb 吗?文件来做到这一点?最佳做法是什么?

最佳答案

我不会创建 vendor 文件夹,而是使用 Bundler .

创建 Gemfile 并定义所有要求。然后在你的 lovers.rb 文件中放置以下代码

require "rubygems"
require "bundler/setup"

Bundler.require(:default, (ENV["RACK_ENV"] || :development).to_sym)

我通常在根文件夹中创建一个 boot.rb 文件,然后将代码移到那里,将 lib 添加到加载路径。

# boot.rb
$:.unshift(File.dirname(__FILE__) + "/lib")

require "rubygems"
require "bundler/setup"

Bundler.require(:default, (ENV["RACK_ENV"] || :development).to_sym)


# lib/lovers.rb

require "boot"
...

关于ruby - 如何在 Sinatra 中使用 gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4929183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com