加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在rake任务中包含Rails类?

发布时间:2020-12-17 01:26:32 所属栏目:百科 来源:网络整理
导读:我对Rails很新,所以如果我的问题没有最有意义,我会道歉. 我有一个名为PaymentGatewayCipher的类看起来像: require 'openssl'# Encapsulates payment gateway encryption / decryption utility functionsclass PaymentGatewayCipher class self def encrypt(
我对Rails很新,所以如果我的问题没有最有意义,我会道歉.

我有一个名为PaymentGatewayCipher的类看起来像:

require 'openssl'

# Encapsulates payment gateway encryption / decryption utility functions
class PaymentGatewayCipher
  class << self
    def encrypt(file,options = {})
      cipher = create_cipher
      cipher.encrypt(cipher_key)
      data = cipher.update(File.read(file))
      data << cipher.final

      if to_file = options[:to]
        # Write it out to a different file
        File.open(to_file,'wb') do |f|
          f << data
        end
      end

      data
    end

    # Decrypts the given file
    def decrypt(file)
      cipher = create_cipher
      cipher.decrypt(cipher_key)
      encrypted_data = File.open(file,'rb') {|io| io.read}
      data = cipher.update(encrypted_data)
      data << cipher.final
    end

    # Generates the cipher to be used for encryption/decryption
    def create_cipher
      OpenSSL::Cipher::Cipher.new('aes-256-cbc')
    end

    # Loads the cipher key used for the symmetric algorithm
    def cipher_key
      File.open(File.join(Rails.root,'config/mystuff/live/cipher.key'),'rb') {|io| io.read}
    end
  end
end

我想写一个rake任务来运行它来解密文件.我试过把一个文件放在tasks / Rakefile中,看起来像:

directory "tasks"

task :decrypt_test do
  puts "Decypting"
  pay_pal_config = PaymentGatewayCipher.decrypt('hpa1')
end

然而,当我运行它时,它说无法找到Class :: Rails

救命?

解决方法

使用lib / tasks文件夹,不要忘记在任务中包含rails环境:

directory "tasks"

task :decrypt_test => :environment do
  puts "Decypting"
  pay_pal_config = PaymentGatewayCipher.decrypt('hpa1')
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读