标签: load-path

为什么Ruby 1.9.2删除"." 来自LOAD_PATH,有什么替代方案?

Ruby 1.9.2的最新变更集不再使当前目录.成为您的目录LOAD_PATH.我有一些非常重要的Rakefiles假设它.是其中的一部分LOAD_PATH,所以这打破了它们(他们报告"没有这样的文件加载"所有基于项目路径的require语句).这样做有什么特别的理由吗?

至于一个修复,添加$: << "."到处都有效,但看起来非常h​​acky,我不想这样做.使Rakefiles 1.9.2+兼容的首选方法是什么?

ruby rake require load-path

154
推荐指数
5
解决办法
4万
查看次数

将目录添加到$ LOAD_PATH(Ruby)

我已经看到两种常用的技术,用于将当前正在执行的文件的目录添加到$ LOAD_PATH(或$ :).如果你不使用宝石,我会看到这样做的好处.显然,一个看起来比另一个看起来更冗长,但有理由与其中一个相提并论吗?

第一个,冗长的方法(可能是过度杀伤):

$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__)))
Run Code Online (Sandbox Code Playgroud)

而且更直接,快速和肮脏:

$:.unshift File.dirname(__FILE__)
Run Code Online (Sandbox Code Playgroud)

有理由和其他人一起去吗?

ruby rubygems load-path

90
推荐指数
5
解决办法
9万
查看次数

在rails app中组织Locale文件

我目前在我的root应用程序的config/locales中有以下4个文件:

-en.yml
-de.yml
-simple_form.en.yml
-simple_form.de.yml
Run Code Online (Sandbox Code Playgroud)

在我的application.rb中,它驻留在spec/dummy文件夹中以测试应用程序gem我有以下代码行,它似乎正在按预期检索翻译:

# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.i18n.default_locale = :de
Run Code Online (Sandbox Code Playgroud)

我现在希望引入结构到我的locales文件夹的文件结构但是当我添加其他文件夹并更改application.rb中的加载路径时,我得到翻译未找到错误.这是我的尝试:

尝试在我的根应用程序的config/locales中包含结构:

-views
  -en.yml
  -de.yml
-models
  -en.yml
  -de.yml
-forms
  -simple_form.en.yml
  -simple_form.de.yml
Run Code Online (Sandbox Code Playgroud)

我在application.rb中的加载路径更改为:

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
Run Code Online (Sandbox Code Playgroud)

根据以下rails指南:http: //guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-domain-name

locale internationalization load-path ruby-on-rails-3 i18n-gem

17
推荐指数
2
解决办法
8048
查看次数

什么是红宝石中的"$:"?

通常可以在.gemspec文件中看到.例如.i18n.gemspec.

$: << File.expand_path('../lib', __FILE__)
Run Code Online (Sandbox Code Playgroud)

ruby rubygems load-path

12
推荐指数
2
解决办法
895
查看次数

Ruby在路径中明确要求"没有这样的文件加载"错误

我一直试图得到一个ruby文件,需要另一个ruby文件,我觉得我疯了.我的设置如下

'/ raid1/ruby​​-code/benchmark /'中的两个文件

CommandRunner
Benchmarker

Benchmarker是目前的主要程序,并且想要CommandRunner,我尝试了很多不同的东西,但没有一个能够工作.以下列出了我在Benchmarker开头所提出的所有内容

require 'CommandRunner'
require './CommandRunner'
$LOAD_PATH.unshift File.expand_path(File.dirname($PROGRAM_NAME))
require 'CommandRunner'
$LOAD_PATH.unshift File.expand_path(File.dirname($PROGRAM_NAME))
require './CommandRunner'

我也使用require_relative尝试了所有上述排列.我已经尝试过将文件加载到emacs内的irb中,我已经在命令行中尝试过了.在irb中的某一点,它会加载一次

require 'CommandRunner'
然后加载,直到我将其切换回'./CommandRunner',然后再次加载.

我实际上有错误说

`require_relative': no such file to load -- 
/raid1/ruby-code/benchmark/CommandRunner (LoadError)

这是文件的正确路径!

我已经把它切换到加载,这似乎是有效的,我看到奇怪的行为,但这可能是我.有谁知道这里会发生什么?

ruby scripting require load-path

11
推荐指数
1
解决办法
1万
查看次数

如何确定默认的Ruby LOAD_PATH?

假设我编译自己的新Ruby(MRI 1.9.3),默认的LOAD_PATH是什么,如何计算?

ruby require load-path

11
推荐指数
1
解决办法
3998
查看次数

添加到列表的加载路径似乎不起作用

每当我看到一些emacs软件包的安装说明时,它始终建议使用add-to-list 'load-path它永远不会对我有用.由于某种原因,我必须使用load-file.例如,这不起作用:

(add-to-list 'load-path "~/.emacs.d/jade-mode")
(require 'sws-mode)
(require 'jade-mode)    
(add-to-list 'auto-mode-alist '("\\.styl$" . sws-mode))
(add-to-list 'auto-mode-alist '("\\.jade$" . sws-mode))
Run Code Online (Sandbox Code Playgroud)

但这会奏效:

(load-file "~/.emacs.d/jade-mode/sws-mode.el")
(load-file "~/.emacs.d/jade-mode/jade-mode.el")
(require 'sws-mode)
(require 'jade-mode)    
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么?编辑:我在MAC OS X 10.5上使用Carbon Emacs

emacs dot-emacs load-path

9
推荐指数
1
解决办法
9318
查看次数

gulp-sass可以解决load_path支持吗?

问题:我正在使用gulp-sass并且想要定义一个load_path,这样我就不必拥有真正长的@import规则voor bower依赖关系,例如

@import "normalize"
Run Code Online (Sandbox Code Playgroud)

代替

@import "../../../../../bower_components/bootstrap-sass/assets/stylesheets/bootstrap/normalize"
Run Code Online (Sandbox Code Playgroud)

当使用gulp-sass使用LibSass引擎处理sass文件时,我实现这一目标的最佳方法是什么?

css import sass load-path gulp-sass

9
推荐指数
1
解决办法
4555
查看次数

从Gem添加到Rails autoload_path

我想编写一个将app/services目录添加到Rails应用程序的gem .

由于我想从Gem中添加它,我想出了这个解决方案:

class Railtie < ::Rails::Railtie
  config.after_initialize do |app|
    ::Rails.logger.info "adding #{ActiveService::Configuration.path} to autoload_path"
    app.config.autoload_paths = [ActiveService::Configuration.path] + app.config.autoload_paths
  end
end
Run Code Online (Sandbox Code Playgroud)

问题是这config.autoload_path是一个冻结的数组,因此修改它似乎不是一个好主意.

有关如何以更好的方式实现这一目标的任何建议?

gem load-path ruby-on-rails-3

8
推荐指数
1
解决办法
4048
查看次数

为什么我不能在ruby的父目录中需要一个文件?

请注意,我没有使用Rails.我有一个目录结构,如:

foo/
bar/
base_classes/
base_classes.rb
Run Code Online (Sandbox Code Playgroud)

base_classes.rb:

 Dir.glob(File.expand_path(File.join("base_classes/config/constants", "*.rb"))) { |file| require file}
 Dir.glob(File.expand_path(File.join("base_classes", "*.rb"))) { |file| require file}
Run Code Online (Sandbox Code Playgroud)

当我在这个根目录

>> require 'base_classes' #=> true
>> Card.load!
[stuff happens]
Run Code Online (Sandbox Code Playgroud)

但是,当我在foo /并执行以下任一操作时:

>> require '../base_classes' #=> true
>> require File.expand_path("../base_classes.rb") #=> true
>> require File.expand_path("../base_classes") #=> true
>> Card.load!
>> NameError: uninitialized constant Card
Run Code Online (Sandbox Code Playgroud)

ruby require load-path

8
推荐指数
1
解决办法
7128
查看次数