-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathRakefile
More file actions
48 lines (40 loc) · 1.57 KB
/
Copy pathRakefile
File metadata and controls
48 lines (40 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# frozen_string_literal: true
require 'bundler/gem_tasks'
require 'rspec/core/rake_task'
require 'rubocop/rake_task'
require 'receiptisan'
require 'logger'
RSpec::Core::RakeTask.new(:test)
RuboCop::RakeTask.new(:lint)
task default: :test
# rubocop:disable Metrics/BlockLength
namespace :master do
desc 'マスターキャッシュを生成する(デフォルト: 最新2年度、VERSION=YYYY 指定可)'
task :generate_cache do
master = Receiptisan::Model::ReceiptComputer::Master
logger = Logger.new($stderr, level: Logger::INFO)
loader = master::Loader.new(master::ResourceResolver.new, logger)
versions = master::Version.values.sort_by(&:year)
version_env = ENV.fetch('VERSION', nil)
target_versions = if version_env
year = Integer(version_env, 10)
versions.select { | version | version.year == year }
else
versions.last(2)
end
abort "No master version matched VERSION=#{version_env.inspect}" if target_versions.empty?
target_versions.each do | version |
loader.generate_cache(version)
puts "generated cache for master version #{version.year}"
end
end
desc '利用可能なマスターバージョン一覧を表示する'
task :list_versions do
master = Receiptisan::Model::ReceiptComputer::Master
versions = master::Version.values.sort_by(&:year)
versions.each do | version |
puts "#{version.year}: #{version.term.begin}~#{version.term.end}"
end
end
end
# rubocop:enable Metrics/BlockLength