创建Ruby gem/';要求';错误:无法加载此类文件(LoadError)
我正在尝试创建我的第一个Ruby gem,但在第一行“require”上出现了加载错误 在我的gem文件夹中,我有3个类,包括'version.rb'(发生LoadError的地方) version.rb创建Ruby gem/';要求';错误:无法加载此类文件(LoadError),ruby,module,rubygems,require,Ruby,Module,Rubygems,Require,我正在尝试创建我的第一个Ruby gem,但在第一行“require”上出现了加载错误 在我的gem文件夹中,我有3个类,包括'version.rb'(发生LoadError的地方) version.rb module OptimalBankroll VERSION = "0.0.1" end numeric.rb(我修改numeric类,以便使用的任何整数/浮点将更改为百分比: module OptimalBankroll class Numeric def to_percentag
module OptimalBankroll
VERSION = "0.0.1"
end
numeric.rb(我修改numeric类,以便使用的任何整数/浮点将更改为百分比:
module OptimalBankroll
class Numeric
def to_percentage
self.to_f / 100
end
end
end
bet_size.rb(例如:BetSize.new.amount(1000,1),返回==>10
module OptimalBankroll
class BetSize
def amount(bankroll, unit)
bankroll.round(2) * unit.round(2).to_percentage
end
end
end
optimal_bankroll.rb(这里是我获取LoadError的地方)
我完全不喜欢创建Ruby gems,所以任何建议都会很有帮助,谢谢!如果传递到
require
的字符串不是绝对路径,它将只检查$LOAD\u path
中指定目录中的文件。通常,这些文件放在lib/
中,并添加到$LOAD\u path中e> 在gemspec中。确保在gemspec中有以下行:
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
因此,为了满足您的工作需要,您需要使用以下文件夹结构:
/
└── lib/
└── optimal_bankroll.rb
└── optimal_bankroll/
└── version.rb
└── numeric.rb
└── bet_size.rb
使用上述目录方案是标准做法,应避免更改$LOAD\u PATH
以匹配文件的放置位置,而不是相反
下面是一个关于如何使用bundler创建gem的指南。如果您刚刚开始gem开发,您可能会发现它很有用。您永远不应该在gem中弄乱$LOAD\u PATH
。使用RubyGems这样的包管理系统的全部意义在于它可以为您设置环境!@JörgWMittag您会怎么做建议?我遇到了与OP类似的问题,但我不想使用$LOAD\u PATH
/
└── lib/
└── optimal_bankroll.rb
└── optimal_bankroll/
└── version.rb
└── numeric.rb
└── bet_size.rb