Tag: ruby

在Ruby中形成卫生shell命令或系统调用

我正在构建一个可以帮助我管理服务器的守护进程。 Webmin运行良好,就像打开服务器的shell一样,但我更喜欢能够从我设计的UI控制服务器操作,并向最终用户公开一些function。 守护程序将从队列中获取操作并执行它们。 但是,由于我将接受用户的输入,我想确保他们不被允许在特权shell命令中注入危险的东西。 这是一个例证我问题的片段: def perform system “usermod -p #{@options[‘shadow’]} #{@options[‘username’]}” end 一个解释更多的要点: https : //gist.github.com/773292 如果对这种情况进行典型的输入和消毒输入就足够了,我并不乐观,作为一名设计师,我没有大量与安全相关的经验。 我知道这对我来说应该是显而易见的 ,但事实并非如此! 如何确保将创建和序列化操作的Web应用程序无法将危险文本传递到接收操作的特权进程? 谢谢您的帮助 ARB

正则表达式“char类错误中的空范围”

我的代码中有一个正则表达式,它匹配url的模式并抛出错误: /^(http|https):\/\/([\w-]+\.)+[\w-]+([\w- .\/?%&=]*)?$/ 错误是“char类错误中的空范围”。 我找到了原因([\w- .\/?%&=]*)? 部分。 Ruby似乎认识到了-在\w- . 作为范围的运算符而不是字面值- 。 在向破折号添加转义后,问题就解决了。 但最初的正则表达式在我的同事的机器上运行良好。 我们使用相同版本的osx,rails和ruby:Ruby版本是ruby 1.9.3p194,rails是3.1.6,osx是10.7.5。 在我们将代码部署到我们的Heroku服务器之后,一切都运行良好。 为什么我的环境只有这个正则表达式的错误? Ruby正则表达式解释的机制是什么?

Ruby:从没有Rails的gem访问rake任务

我知道可以在Ruby gem中的许多地方定义Rake任务: 在Rakefile里面 内部tasks/*.rake 在lib/tasks/*.rake 我已经读过,当要在gem本身执行任务时,应该使用前两个。 当希望公开任务时,似乎应该选择第三种选择。 网上有许多教程演示了使用Rails从gem加载Rake任务的各种方法,即利用Rails::RailTie 。 但是,我想找到一种在不需要Rails的情况下在另一个gem中使用依赖gem的任务的方法。 有一个简单的解决方案吗? 有人会善意地描述正确的方法,或概述哪些方法可行? UPDATE 我已经尝试创建一个文件bin/my-gem ,以便在系统上用于从my-gem执行Rake任务。 我把以下内容放在里面; #!/usr/bin/env ruby require ‘rubygems’ require ‘rake’ task=ARGV[0] spec = Gem::Specification.find_by_name(‘dsi_core’) Dir[“#{spec.gem_dir}/lib/tasks/*.rake”].each {|file| puts file and Rake::load_rakefile(file)} Rake::Task.clear # Avoid tasks being loaded several times in dev mode Rake::Task[task].reenable # Support re-execution of a task. Rake::Task[task].invoke 部分内容基于此SOpost 。 遗憾的是我做错了,因为在安装gem之后运行my-gem mytask并在lib/test.rake定义了lib/test.rake然后输出以下内容: […]

Rails迁移:尝试将列的类型从字符串更改为整数

我在rails应用程序中使用rails generate migrations命令创建了一个表。 这是迁移文件: class CreateListings < ActiveRecord::Migration def change create_table :listings do |t| t.string :name t.string :telephone t.string :latitude t.string :longitude t.timestamps end end end 然后我想将纬度和经度存储为整数,所以我试图运行: rails generate migration changeColumnType 并且该文件的内容是: class ChangeColumnType < ActiveRecord::Migration def up #change latitude columntype from string to integertype change_column :listings, :latitude, :integer change_column :listings, :longitude, :integer #change longitude […]

在`Dir.entries`中排序顺序

是否存在Dir.entries返回结果的固定/默认排序顺序? 根据经验,我知道前两个条目是”.” 和”..” 。

如何在jRuby中启用C扩展支持?

我想安装一个gem,但是我收到以下错误: Building native extensions. This could take a while… ERROR: Error installing twitter-login: ERROR: Failed to build gem native extension. C:/nwcloud/jruby-1.7.2/bin/jruby.exe extconf.rb NotImplementedError: C extension support is not enabled. Pass -Xcext.enabled=true to JRuby or set JRUBY_OPTS or modify .jrubyrc to enable. 我也用同样的问题阅读了这个问题,但我甚至不知道如何使用这三个选项启用支持,因为我不知道如何将-Xcext.enabled=true传递给JRuby或设置JRUBY_OPTS或修改.jrubyrc启用。 任何人都可以帮我解决我的初学者问题吗?

Heroku和Rails:Postgres的Gem加载错误,但它在GEMFILE中指定

所以我试图将一个小项目部署到Heroku,但是当我部署它并试图运行heroku run rake db:migrate它返回了我以下错误: rake aborted! Gem::LoadError: Specified ‘postgresql’ for database adapter, but the gem is not loaded. Add `gem ‘pg’` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord). /app/vendor/bundle/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/connection_specification.rb:177:in `rescue in spec’ /app/vendor/bundle/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/connection_specification.rb:174:in `spec’ /app/vendor/bundle/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_handling.rb:50:in `establish_connection’ /app/vendor/bundle/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/railtie.rb:120:in `block (2 levels) in ‘ /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval’ /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook’ /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/lazy_load_hooks.rb:28:in `block […]

使用OpenSSL进行数字签名validation

如何在Ruby中使用OpenSSLvalidationCMS / PKCS#7消息? PKCS#7消息用作用户消息的数字签名,因此我需要签署新的用户消息并validation传入的消息。 我没有在文档和谷歌中找到任何有用的东西。 我发现很少有用于签名的代码示例,但没有用于validation: signed = OpenSSL::PKCS7::sign(crt, key, data, [], OpenSSL::PKCS7::DETACHED)

RubyInstaller 2.2.1和Rails – Rake无法加载Nokogiri

最近我在Windows上安装了Ruby 2.2.1和新的RubyInstaller。 为了检查一切是否正常工作,我进入了一个rails应用程序并运行了bundle install ,运行正常。 但是,当我使用bunle exec rake test运行bunle exec rake test ,我收到以下错误: rake aborted! LoadError: cannot load such file — nokogiri/nokogiri D:/Dev/Grummle/config/application.rb:7:in `’ D:/Dev/Grummle/Rakefile:4:in `’ LoadError: cannot load such file — nokogiri/2.2/nokogiri D:/Dev/Grummle/config/application.rb:7:in `’ D:/Dev/Grummle/Rakefile:4:in `’ (See full trace by running task with –trace) Bundler说这是Using nokogiri 1.6.5 。 此外,rake任务在Ruby 2.1.5中运行良好。 我很欣赏有关如何解决问题的想法。 谢谢! 🙂

Ruby正则表达式匹配url

可能重复: 正则表达式匹配URL 正则表达式删除ruby中url的网页部分 我正在寻找一个正则表达式来解析文件中的所有url。 我尝试了谷歌搜索后获得的许多正则表达式,但在一个或另一个案例中失败了。 我的想法是写一个在begening检查http或https的presense,它将匹配所有内容,直到它看到一个空格。 有任何想法吗 ? 注意:我不需要解析url但删除文件中的所有url或至少使其无法读取。