class Shaman::Deploy
Attributes
environment[R]
options[R]
Public Class Methods
new(args, options)
click to toggle source
# File lib/shaman/deploy.rb, line 5 def initialize(args, options) error!('Must specify environment') if args.count < 1 @environment = args.first @options = options verify_options end
Public Instance Methods
deploy()
click to toggle source
# File lib/shaman/deploy.rb, line 12 def deploy prompt.ok "Connecting to #{LABS_URL}/api/v1/releases" response = HTTP.post("#{LABS_URL}/api/v1/releases", form: deploy_options) response.code == 200 ? prompt.ok(response.body.to_s) : error!(response.body.to_s) end
Private Instance Methods
config()
click to toggle source
# File lib/shaman/deploy.rb, line 40 def config @config ||= YAML.load_file(options.config || PROJECT_CONFIG_PATH)[environment] end
deploy_options()
click to toggle source
# File lib/shaman/deploy.rb, line 22 def deploy_options raise 'Wrong environment' if config.nil? @deploy_options ||= { environment_token: config[:token], release: HTTP::FormData::File.new(options.file || config[:release_path]), message: message || '', token: options.token || ENV['SHAMAN_TOKEN'], minimum_version: options.minimum_version || false, name: options.release_name || '' } end
gcommit()
click to toggle source
# File lib/shaman/deploy.rb, line 45 def gcommit @gcommit ||= Git.open('.').gcommit(options.commit || 'HEAD') end
message()
click to toggle source
# File lib/shaman/deploy.rb, line 49 def message options.git ? gcommit.message : options.message || ask_editor(nil, 'vi') end
verify_options()
click to toggle source
# File lib/shaman/deploy.rb, line 34 def verify_options deploy_options.each do |key, value| raise "Please specify #{key}" if value.nil? end end