标签: rake

Ruby Gem中未初始化的常量Rake :: DSL

我一直在努力更新我的宝石(https://github.com/ivanoats/whm_xml_api_ruby上的 whm_xml ),以使其与ruby 1.9.2,最新的rubygems,最新的捆绑包,最新的rdoc,最新的rake一起使用.它在1.8.7中工作正常,但仅在1.9.2中有"未初始化的常量Rake :: DSL"错误.我认为rake 0.9.2固定了但可能没有?我在StackOverflow上已经阅读了很多,但仍然被卡住了.关于在哪里看的任何想法?

ivan:~/Development/ruby/whm_xml_api_ruby [git:master+]  ? bundle exec rake -T
(in /Users/ivan/Development/ruby/whm_xml_api_ruby)
rake aborted!
uninitialized constant Rake::DSL
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:6:in `<module:Rake>'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:3:in `<top (required)>'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rdoc-3.6.1/lib/rdoc/task.rb:37:in `require'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rdoc-3.6.1/lib/rdoc/task.rb:37:in `<top (required)>'
/Users/ivan/Development/ruby/whm_xml_api_ruby/Rakefile:3:in `require'
/Users/ivan/Development/ruby/whm_xml_api_ruby/Rakefile:3:in `<top (required)>'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2373:in `load'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2058:in    `standard_exception_handling'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:1991:in `run'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/bin/rake:32:in `<top (required)>'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `load'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `<main>'
Run Code Online (Sandbox Code Playgroud)

ruby rake gem rubygems

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

使用Rake运行Ruby单元测试

我正在研究使用Rake构建工具来自动运行单元测试.我在网上搜索过,但所有的例子都是使用rails.我通常只是编写小型命令行程序或简单的Sinatra应用程序.

所以我提出了以下(可能是坏的)解决方案,它只是模仿我在命令行上会做的事情:(我只是以一个单元测试为例.)

desc 'Run unit tests'
task :test do
    sh 'ruby -I lib test/test_entry.rb'
end
task :default => :test
Run Code Online (Sandbox Code Playgroud)

它有效,但我不禁想到必须有更好的方法,只是写作require 'test/test_entry.rb'不起作用.我遇到require问题,Ruby无法找到lib所有文件所在的目录.

ruby rake

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

在Eclipse中使用rake构建C++项目

我有一个C++项目,我使用rake而不是make构建.要在Eclipse中进行设置,我禁用了CDT和Scanner构建器,并创建了一个指向rake可执行文件的rake构建器.这会导致项目正确构建Ctrl- B.但是,C++错误解析器似乎没有在输出上踢.我需要做什么才能获得错误解析器处理的g ++输出?

c++ eclipse rake rakefile

32
推荐指数
1
解决办法
1159
查看次数

为什么Python项目中没有用于自动化的Makefile?

我想,作为一个长期的Python程序员,如果Python文化的一个核心方面很长一段时间让我失望:我们做什么而不是Makefiles?

我看过的大多数ruby项目(不仅仅是rails)使用Rake,在node.js开始流行之后不久,就有了蛋糕.在许多其他(编译和非编译)语言中有经典的Make文件.

但在Python中,似乎没有人需要这样的基础设施.我在GitHub上随机选择了Python项目,除了安装之外,他们没有自动化setup.py.

这背后的原因是什么?

什么都没有自动化?大多数程序员喜欢手动运行样式检查,测试等吗?

一些例子:

  • dependencies 设置virtualenv并安装依赖项
  • check调用pep8pylint命令行工具.
  • test任务依赖于dependencies允许的virtualenv,启动硒服务器的集成测试,并呼吁nosetest
  • coffeescript任务编译所有coffeescripts到minified javascript
  • runserver任务依赖于dependenciescoffeescript
  • deploy任务依赖于checktest和部署项目.
  • docs任务使用适当的参数调用sphinx

他们中的一些只是一个或两个人,但恕我直言,他们加起来.由于Makefile,我不必记住它们.

澄清一下:我不是在寻找Rake的Python等价物.摊铺机我很高兴.我在找原因.

python rake automation makefile

31
推荐指数
4
解决办法
9464
查看次数

在Carrierwave中重新处理图像

假设我的模型有一个图像,:thumb客户想要:tiny:nano缩略图.

如何使用rake任务重新处理所有现有图像?

我发现了一个rake任务,我认为会这样做https://gist.github.com/777788但它给了我错误.

rake ruby-on-rails carrierwave ruby-on-rails-3.1

31
推荐指数
1
解决办法
8016
查看次数

加载rake文件并从其他文件运行任务

目前我正在尝试拆分我的rake文件以更好地组织它们.为此,我在rake我的assets目录中添加了一个文件夹,为每组任务保存一个rake文件.

由于我来自PHP,我只有非常基本的Ruby/Rake知识,并且无法在加载文件后运行我的命名空间默认操作.

Rake :: Task ...内部的通配out -string在app:initCL处抛出一个错误:

rake aborted! 
uninitialized constant TASK
Run Code Online (Sandbox Code Playgroud)

这是命名空间/类(如果这是正确的单词).

task :default => [ 'app:init' ]
namespace :app do

    rake_dir   = "#{Dir.pwd}/assets/rake/"
    rake_files = FileList.new( "#{rake_dir}*" )

    desc "Loads rake modules (Default action)"
    task :init do
        puts "\t Importing rake files for processing"

        puts "\t loading..."
        rake_files.each() { |rake|
            puts "\t #{rake}"
            require rake
            # @link rubular.com
            name = rake.split( rake_dir ).last.gsub( /.rb\z/, '' )
            puts "\t #{name}" …
Run Code Online (Sandbox Code Playgroud)

rake rakefile

31
推荐指数
3
解决办法
2万
查看次数

如何将Rake任务添加到默认的Rake任务?

不知怎的,Rspec和Cucumber正在将它变成我的默认rake任务(这很好,因为我想要它们).但我已尝试将其他任务添加到默认任务,但它没有任何效果.

将任务添加到默认rake任务的正确方法是什么?

ruby rake

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

使用CarrierWave,Rails 3上传种子文件

我正在尝试使用CarrierWave在Rails 3中使用图像播种数据库,但是我尝试的任何内容似乎都无法手动上传它们.

pi = ProductImage.new(:product => product)
pi.image = File.open(File.join(Rails.root, 'test.jpg'))
pi.store_image! # tried with and without this
product.product_images << pi
product.save!
Run Code Online (Sandbox Code Playgroud)

有人知道如何使用CarrierWave种子吗?

ruby rake ruby-on-rails seed carrierwave

30
推荐指数
2
解决办法
2万
查看次数

FactoryGirl搞砸了rake db:migrate进程

我在Ruby on Rails 3中使用Rspec(2.11.0)和FactoryGirl(4.0.0)进行TDD/BDD.我有一个类别模型的工厂:

FactoryGirl.define "Category" do
  factory :category do
    name "Foo"
  end
end
Run Code Online (Sandbox Code Playgroud)

如果我删除,创建然后在测试环境中迁移数据库我收到此错误:

rake aborted!
Could not find table 'categories'
Run Code Online (Sandbox Code Playgroud)

出现此问题的原因是FactoryGirl期望表已经存在(出于某些奇怪的原因).如果我从我的rails应用程序中删除spec文件夹并且这样做db:migrate,它可以工作.此外,如果我factory-girl-rails从我的标记,Gemfile因为:require => false它也有效(然后我必须发表评论,以便运行rspec).

我在这里找到了一些关于这个问题的信息:https://github.com/thoughtbot/factory_girl/issues/88

我有什么不对劲吗?如何在db:migration任务中"通过"FactoryGirl阶段?

bdd rake rspec ruby-on-rails factory-bot

30
推荐指数
2
解决办法
8570
查看次数

如何将独立的Python脚本集成到Rails应用程序中?

我有一个程序,它有一个小的文件结构,然后运行使用

python do_work.py foo bar
Run Code Online (Sandbox Code Playgroud)

我希望我的Rails用户按下按钮并为他们发生这种情况,结果要么上传到某个地方,要么只是作为下载链接或类似的东西抛出 - 输出do_work.py(比方说,它result.txt)

我还想澄清一下,脚本会在文件系统上创建3个独立的文件,这些文件不是文本文件(这应该不重要,这里不是问题)

最好的方法是什么?可以rake运行exec Python吗?更重要的是,这在heroku上是可行的吗?

我在我的系统上安装了Python,但sockmonk提供的答案似乎不起作用 - 它返回nil.请注意,其他命令ls似乎有效.

这可能是权限问题吗?

def index
    value = %x( python --version )
    render :text => value
end
Run Code Online (Sandbox Code Playgroud)

顺便说一句,尝试这个irb:

%x(python)
Run Code Online (Sandbox Code Playgroud)

打开irb的Python终端INSIDE.然而,无论出于何种原因,它都不会占用.

ruby python rake ruby-on-rails heroku

30
推荐指数
1
解决办法
9902
查看次数