module Everyleaf::EmbulkHelper::Tasks::Common
Attributes
options[R]
Public Class Methods
included(klass)
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/common.rb, line 25 def self.included(klass) Tasks.register(klass) end
new(options = {})
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/common.rb, line 19 def initialize(options = {}) raise "options should be a Hash, given #{options.class}: #{options} " unless options.is_a?(Hash) @options = options validate_options end
Public Instance Methods
embulk_versions()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/common.rb, line 66 def embulk_versions embulk_tags.map{|tag| Gem::Version.new(tag["name"][/v(.*)/, 1])}.sort end
gemfiles_dir()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/common.rb, line 54 def gemfiles_dir root_dir.join("gemfiles") end
gemspec_path()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/common.rb, line 46 def gemspec_path Pathname.new(File.expand_path(options[:gemspec])) end
install_tasks()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/common.rb, line 29 def install_tasks raise NotImplementedError end
logger()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/common.rb, line 42 def logger ::Logger.new(STDERR) end
required_options()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/common.rb, line 58 def required_options [] # Implement this in subclass if needed end
root_dir()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/common.rb, line 50 def root_dir gemspec_path.dirname end
validate_options()
click to toggle source
# File lib/everyleaf/embulk_helper/tasks/common.rb, line 33 def validate_options raise OptionError, "gemspec file path is required" unless options[:gemspec] raise OptionError, "gemspec file '#{options[:gemspec]}' is not found" unless File.exists?(options[:gemspec]) required_options.map(&:to_sym).each do |opt| raise OptionError, "#{opt} is required" unless options[opt] end end