Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails rake任务显示Errno::enoint的版本返回错误:没有这样的文件或目录@rb_sysopen-version_Ruby On Rails_Rake_Rake Task - Fatal编程技术网

Ruby on rails Rails rake任务显示Errno::enoint的版本返回错误:没有这样的文件或目录@rb_sysopen-version

Ruby on rails Rails rake任务显示Errno::enoint的版本返回错误:没有这样的文件或目录@rb_sysopen-version,ruby-on-rails,rake,rake-task,Ruby On Rails,Rake,Rake Task,所以像许多人一样,我正在利用“隔离”来尝试学习一些新技能,特别是rake任务 我正在尝试构建一个rake任务来版本我的rails应用程序。我发现一个问题的答案吸引了我的眼球,所以我试着用它来回答。但是,当我尝试运行任务时,它会给我这个错误 错误: ╰─ rake version:minor

所以像许多人一样,我正在利用“隔离”来尝试学习一些新技能,特别是rake任务

我正在尝试构建一个rake任务来版本我的rails应用程序。我发现一个问题的答案吸引了我的眼球,所以我试着用它来回答。但是,当我尝试运行任务时,它会给我这个错误

错误:

╰─ rake version:minor                                                                                                                                                                                                                      ─╯
rake aborted!
VERSION file not found or unreadable.
/Users/taurengroup/Desktop/Roadze TMS/roadze-web/lib/tasks/version.rake:21:in `rescue in read_version'
/Users/taurengroup/Desktop/Roadze TMS/roadze-web/lib/tasks/version.rake:17:in `read_version'
/Users/taurengroup/Desktop/Roadze TMS/roadze-web/lib/tasks/version.rake:52:in `<main>'
/Users/taurengroup/Desktop/Roadze TMS/roadze-web/Rakefile:6:in `<top (required)>'  

Caused by:
Errno::ENOENT: No such file or directory @ rb_sysopen - VERSION
/Users/taurengroup/Desktop/Roadze TMS/roadze-web/lib/tasks/version.rake:19:in `read'
/Users/taurengroup/Desktop/Roadze TMS/roadze-web/lib/tasks/version.rake:19:in `read_version'
/Users/taurengroup/Desktop/Roadze TMS/roadze-web/lib/tasks/version.rake:52:in `<main>'
/Users/taurengroup/Desktop/Roadze TMS/roadze-web/Rakefile:6:in `<top (required)>'
从那里我希望能够在我的应用程序的某个地方填充这个

config/initializers/version.rb
目前看起来是这样的:

module RoadzeWeb
  class Application
    VERSION
  end
end
def valid?(version)
  pattern = /^\d+\.\d+\.\d+(\-(dev|beta|rc\d+))?$/
  raise "Tried to set invalid version: #{version}" unless version =~ pattern
end

def correct_version(version)
  ver, flag = version.split '-'
  v = ver.split '.'
  (0..2).each do |n|
    v[n] = v[n].to_i
  end
  [v.join('.'), flag].compact.join '-'
end

def read_version
  File.read 'VERSION'
rescue StandardError
  raise 'VERSION file not found or unreadable.'
end

def write_version(version)
  valid? version
  begin
    File.open 'VERSION', 'w' do |file|
      file.write correct_version(version)
    end
  rescue StandardError
    raise 'VERSION file not found or unwritable.'
  end
end

def reset(current, which)
  version, flag = current.split '-'
  v = version.split '.'
  which.each do |part|
    v[part] = 0
  end
  [v.join('.'), flag].compact.join '-'
end

def increment(current, which)
  version, flag = current.split '-'
  v = version.split '.'
  v[which] = v[which].to_i + 1
  [v.join('.'), flag].compact.join '-'
end

desc 'Prints the current application version'
version = read_version
task :version do
  puts <<~HELP
    Available commands are:
    -----------------------
    rake version:write[version]   # set custom version in the x.x.x-? format
    rake version:patch            # increment the patch x.x.x+1 (keeps any flags on)
    rake version:minor            # increment minor and reset patch x.x+1.0 (keeps any flags on)
    rake version:major            # increment major and reset others x+1.0.0 (keeps any flags on)
    rake version:dev              # set the dev flag on x.x.x-dev
    rake version:beta             # set the beta flag on x.x.x-beta
    rake version:rc               # set or increment the rc flag x.x.x-rcX
    rake version:release          # removes any flags from the current version

  HELP
  puts "Current version is: #{version.green}"
end

namespace :version do
  desc 'Write version explicitly by specifying version number as a parameter'
  task :write, [:version] do |_task, args|
    write_version args[:version].strip
    puts "Version explicitly written: #{read_version.green}"
  end

  desc 'Increments the patch version'
  task :patch do
    new_version = increment read_version, 2
    write_version new_version
    puts "Application patched: #{new_version.green}"
  end

  desc 'Increments the minor version and resets the patch'
  task :minor do
    incremented = increment read_version, 1
    new_version = reset incremented, [2]
    write_version new_version
    puts "New version released: #{new_version.green}"
  end

  desc 'Increments the major version and resets both minor and patch'
  task :major do
    incremented = increment read_version, 0
    new_version = reset incremented, [1, 2]
    write_version new_version
    puts "Major application version change: #{new_version.green}. Congratulations!"
  end

  desc 'Sets the development flag on'
  task :dev do
    version, flag = read_version.split '-'
    new_version = [version, 'dev'].join '-'
    write_version new_version
    puts "Version in development: #{new_version.green}"
  end

  desc 'Sets the beta flag on'
  task :beta do
    version, flag = read_version.split '-'
    new_version = [version, 'beta'].join '-'
    write_version new_version
    puts "Version in beta: #{new_version.green}"
  end

  desc 'Sets or increments the rc flag'
  task :rc do
    version, flag = read_version.split '-'
    rc = /^rc(\d+)$/.match flag
    new_version = if rc
                    [version, "rc#{rc[1].to_i + 1}"].join '-'
                  else
                    [version, 'rc1'].join '-'
                  end
    write_version new_version
    puts "New version release candidate: #{new_version.green}"
  end

  desc 'Removes any version flags'
  task :release do
    version, flag = read_version.split '-'
    write_version version
    puts "Released stable version: #{version.green}"
  end
end
我的version.rake文件如下所示:

module RoadzeWeb
  class Application
    VERSION
  end
end
def valid?(version)
  pattern = /^\d+\.\d+\.\d+(\-(dev|beta|rc\d+))?$/
  raise "Tried to set invalid version: #{version}" unless version =~ pattern
end

def correct_version(version)
  ver, flag = version.split '-'
  v = ver.split '.'
  (0..2).each do |n|
    v[n] = v[n].to_i
  end
  [v.join('.'), flag].compact.join '-'
end

def read_version
  File.read 'VERSION'
rescue StandardError
  raise 'VERSION file not found or unreadable.'
end

def write_version(version)
  valid? version
  begin
    File.open 'VERSION', 'w' do |file|
      file.write correct_version(version)
    end
  rescue StandardError
    raise 'VERSION file not found or unwritable.'
  end
end

def reset(current, which)
  version, flag = current.split '-'
  v = version.split '.'
  which.each do |part|
    v[part] = 0
  end
  [v.join('.'), flag].compact.join '-'
end

def increment(current, which)
  version, flag = current.split '-'
  v = version.split '.'
  v[which] = v[which].to_i + 1
  [v.join('.'), flag].compact.join '-'
end

desc 'Prints the current application version'
version = read_version
task :version do
  puts <<~HELP
    Available commands are:
    -----------------------
    rake version:write[version]   # set custom version in the x.x.x-? format
    rake version:patch            # increment the patch x.x.x+1 (keeps any flags on)
    rake version:minor            # increment minor and reset patch x.x+1.0 (keeps any flags on)
    rake version:major            # increment major and reset others x+1.0.0 (keeps any flags on)
    rake version:dev              # set the dev flag on x.x.x-dev
    rake version:beta             # set the beta flag on x.x.x-beta
    rake version:rc               # set or increment the rc flag x.x.x-rcX
    rake version:release          # removes any flags from the current version

  HELP
  puts "Current version is: #{version.green}"
end

namespace :version do
  desc 'Write version explicitly by specifying version number as a parameter'
  task :write, [:version] do |_task, args|
    write_version args[:version].strip
    puts "Version explicitly written: #{read_version.green}"
  end

  desc 'Increments the patch version'
  task :patch do
    new_version = increment read_version, 2
    write_version new_version
    puts "Application patched: #{new_version.green}"
  end

  desc 'Increments the minor version and resets the patch'
  task :minor do
    incremented = increment read_version, 1
    new_version = reset incremented, [2]
    write_version new_version
    puts "New version released: #{new_version.green}"
  end

  desc 'Increments the major version and resets both minor and patch'
  task :major do
    incremented = increment read_version, 0
    new_version = reset incremented, [1, 2]
    write_version new_version
    puts "Major application version change: #{new_version.green}. Congratulations!"
  end

  desc 'Sets the development flag on'
  task :dev do
    version, flag = read_version.split '-'
    new_version = [version, 'dev'].join '-'
    write_version new_version
    puts "Version in development: #{new_version.green}"
  end

  desc 'Sets the beta flag on'
  task :beta do
    version, flag = read_version.split '-'
    new_version = [version, 'beta'].join '-'
    write_version new_version
    puts "Version in beta: #{new_version.green}"
  end

  desc 'Sets or increments the rc flag'
  task :rc do
    version, flag = read_version.split '-'
    rc = /^rc(\d+)$/.match flag
    new_version = if rc
                    [version, "rc#{rc[1].to_i + 1}"].join '-'
                  else
                    [version, 'rc1'].join '-'
                  end
    write_version new_version
    puts "New version release candidate: #{new_version.green}"
  end

  desc 'Removes any version flags'
  task :release do
    version, flag = read_version.split '-'
    write_version version
    puts "Released stable version: #{version.green}"
  end
end
def有效?(版本)
模式=/^\d+\.\d+\.\d+(\-(开发测试版)rc\d+)$/
引发“试图设置无效版本:#{version}”,除非版本=~pattern
结束
def正确版本(版本)
版本,标志=version.split'-'
v=版本拆分''
(0..2)每个|
v[n]=v[n]。对i
结束
[v.join('),标志].compact.join'-'
结束
def read_版本
File.read“VERSION”
救援标准错误
引发“找不到或无法读取版本文件”
结束
def写入_版本(版本)
有效吗?版本
开始
File.open“VERSION”,“w”do |文件|
file.write正确版本(version)
结束
救援标准错误
引发“找不到版本文件或版本文件不可写入”
结束
结束
def复位(当前,哪个)
版本,标志=current.split'-'
v=版本。拆分''
每个人都是什么角色|
v[部分]=0
结束
[v.join('),标志].compact.join'-'
结束
def增量(当前,哪个)
版本,标志=current.split'-'
v=版本。拆分''
v[which]=v[which].到_i+1
[v.join('),标志].compact.join'-'
结束
desc“打印当前应用程序版本”
版本=读取版本
任务:版本do
放