class Everyleaf::EmbulkHelper::Tasks::Generator::Gemfiles
Constants
- DEFAULT_EMBULK_GEMFILE_TEMPLATE
Public Instance Methods
gemfiles()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/generator/gemfiles.rb, line 21 def gemfiles logger.info "Generate Embulk gemfiles from '#{min_version}' to latest" init create_gemfiles logger.info "Updated Gemfiles '#{min_version}' to '#{embulk_versions.max}'" end
install_tasks()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/generator/gemfiles.rb, line 12 def install_tasks namespace :generate do desc "Generate gemfiles to test this plugin with released Embulk versions (since MIN_VERSION)" task :gemfiles do gemfiles end end end
Private Instance Methods
create_gemfile(version, name = nil)
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/generator/gemfiles.rb, line 67 def create_gemfile(version, name = nil) erb = ERB.new(gemfile_template_path.read) File.open(gemfiles_dir.join("embulk-#{name || version}"), "w") do |f| f.write erb.result(binding()) end end
create_gemfiles()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/generator/gemfiles.rb, line 49 def create_gemfiles FileUtils.mkdir_p(gemfiles_dir) Dir[gemfiles_dir.join("embulk-*")].each{|f| File.unlink(f)} target_versions.each do |version| create_gemfile(version) end # e.g. embulk-0.6-latest target_versions_without_patch.each do |version| create_gemfile("~> #{version}", "#{version}-latest") end # embulk-latest create_gemfile("> #{min_version}", "latest") end
gemfile_template_path()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/generator/gemfiles.rb, line 78 def gemfile_template_path root_dir.join(options[:gemfile_template] || DEFAULT_EMBULK_GEMFILE_TEMPLATE) end
init()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/generator/gemfiles.rb, line 30 def init FileUtils.mkdir_p File.dirname(gemfile_template_path) unless File.exists?(gemfile_template_path) logger.info "Generate gemfiles template file (#{gemfile_template_path})" File.open(gemfile_template_path, "w") do |f| f.write initial_template end end end
initial_template()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/generator/gemfiles.rb, line 40 def initial_template <<-ERB source 'https://rubygems.org/' gemspec :path => '#{gemspec_path.dirname.relative_path_from(gemfiles_dir)}/' gem "embulk", "<%= version %>" ERB end
min_version()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/generator/gemfiles.rb, line 74 def min_version Gem::Version.new(ENV["MIN_VERSION"] || options[:min_version] || "0.0.1") end
target_versions()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/generator/gemfiles.rb, line 82 def target_versions embulk_versions.find_all do |version| version >= min_version end end
target_versions_without_patch()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/generator/gemfiles.rb, line 88 def target_versions_without_patch target_versions.map do |version| major, minor, _ = version.segments Gem::Version.new([major, minor, 0].join(".")) # NOTE: "~> 0.1.0" -> 0.1.x (< 0.2) / "~> 0.1" -> 0.x (< 1.0) end.uniq end