- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
标题就是问题,这里是提示它的上下文。
gem 文件:
source "http://rubygems.org"
# Specify your gem's dependencies in the gemspec
gemspec
这是 rackup 文件的顶部:
require 'rubygems'
require "bundler/setup"
在运行 rackup 文件时抛出一个错误:
<module:Rack>': GemName is not a class (TypeError)
为什么?因为我在写一个Rack中间件,标准布局是:
lib/
rack/
gem_name.rb
gem_name/
version.rb
gem_name.rb 将包含:
module Rack
class GemName
version.rb 将包含:
module Rack
module GemName
VERSION = "0.0.1"
最后,gem_name.gemspec 将包含:
require "rack/flash-in-the-pan/version"
#...
s.version = Rack::GemName::VERSION
用相同的名称命名模块和类不是问题只要您不同时需要这两个文件。 通常,这不会发生,因为您要么需要用于构建 gem 的版本,要么需要运行 gem 库,因此只需要其中之一。
但是,这次我决定使用 Bundler 来管理 gem 的依赖项。当通过 bundler 需要 gem 库时,它显然也会运行 gemspec。我可以很容易地“修复”它,我在 gemspec 中手动定义版本号。
回到我的问题 - 为什么 Bundler 需要在库的运行时查看 gemspec?
bundler (1.0.21)
非常感谢任何见解。
最佳答案
无论何时运行 bundler,它都必须解析 Gemfile 以实际找出需要加载的 gem,必须将什么添加到 $LOAD_PATH
等等。作为其中的一部分,它必须解析 gemspec
。
Gemfile.lock 包含所有 gem 的信息以及用于节省启动时间的依赖项,但它并没有减少解析 Gemfile 的需要。
您可以通过多种方式解决这个问题。两个简单的方法是使用 File.read
和一些正则表达式来提取版本。或者需要 gem_name.rb 和 gem_name/version.rb 文件。
关于ruby - Bundler:为什么它在 require "bundler/setup"上读取 gemspec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9028618/
当您编写 gemspec 文件时,摘要和描述字段之间的实际区别是什么? 最佳答案 它们用在不同的地方。 summary 可以看到你执行 gem list -d,而 description 可以在 ht
当我从 github 安装 gem 时,它给了我错误: number_internationalizer at /usr/local/rvm/gems/ruby-1.9.3-p194@number_i
我正在编写一个依赖于另一个 gem X 的 gem,但是 X 具有与我的 gem 的依赖项冲突的过时依赖项。 (具体来说,multi_json-1.7.x和X的multi_json-1.1.x有冲突)
rubygems 想知道我的开发依赖项是什么,这似乎是一个奇怪的功能,到目前为止,我从未见过它用于在运行 gem 测试时实际加载这些依赖项。 最佳答案 如果有人出于某种原因决定破解您的 gem,例如他
当我在 Gemfile 中包含我制作的 gem 时,感谢 Bundler(版本 1.0.12),然后我尝试像这样 bundle 或抓取: $ 佣金 我收到此错误消息: Invalid gemspec
当我尝试在 Windows 中使用 gems 时,出现以下错误,我也提到了 this stackoverflow post并更新了 rubygems 和 Rails。但没有什么能解决问题。 以下是
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Meaning of tilde-greater-than (~>) in version requirem
当我尝试在 Windows 中使用 gems 时出现以下错误,我还提到了 this stackoverflow post并更新了 rubygems 和 rails。但没有什么能解决问题。 下面是完
bundler since v1.7当在 gemfile 中指定多个全局源时发出警告。您可以使用 source blocks指定哪些 gem 应该来自给定的来源,但是 source个别 gem 的选项
我正在构建一个使用 rails-assets-growl gem 的 gem。可以使用 不同于 'https://rubygems.org' 的源将此 gem 添加到我的 Gemfile,如下所示:
我正在构建一个需要安装 json gem 才能运行的 gem。哪个 json gem 并不重要:json_pure、json-jruby 或基于 C 的 json。 是否有在 gemspec 中定义它
有没有一种干净的方法可以从 .gemspec 文件中提取版本字符串? (gem 尚未安装) 例如somethingcool.gemspec 是 Gem::Specification.new do |s
我几乎做了所有的事情this instruction告诉我这样做,但我遇到了一系列错误。这是日志: stanley@ubuntu:~$ mkdir railstest stanley@ubuntu:~
对于 Linux 上的 Ruby 新用户来说,没有将 openssl 编译到他们的 Ruby 中是一个相对常见的错误。我们有一个需要'openssl'的gem,每隔一段时间它就会在'openssl'上
在过去的几个月里,Ruby 依赖管理和 gem 创建的状态有了一些快速的发展,以至于我一直难以跟上一切。 如果我正在编写一个新的 gem,我用来创建我的 gemspec 的最佳工具是什么?与竞争对手相
我的 gem 中需要私有(private) gem,并且 gemspec 依赖项不能包含 git 存储库。 所以我用 geminabox 启动了我的私有(private)服务器,并将源代码添加到我的
关于 gemspecs 的文件列表。 我注意到珠宝商使用项目中的文件列表手动更新此列表。例如 Gem::Specification.new do |s| # stuff s.files = [
每当开发 gems 时,我看不出有任何理由不直接检查 Gemfile 的依赖关系。 的确,为什么要使用 .gemspec 文件来列出它们?有真正的好处吗? 最佳答案 那是因为 Gemfile 不是来自
我正在开发一个 gem(Gem A),它使用我也编写的另一个 gem(Gem B)。至此 Gem B 已添加到 Gem A 的 gemspec 中: gem.add_dependency "gem_a
例如,给定 Gemspec 文件: $:.push File.expand_path("../lib", __FILE__) # Maintain your gem's version: requir
我是一名优秀的程序员,十分优秀!