module Ey::Core::Client::Shared
Attributes
authentication[R]
cache[R]
url[R]
Public Instance Methods
metadata()
click to toggle source
@deprecated will be removed in 3.x @see {#services}
# File lib/ey-core/client.rb, line 462 def metadata services.get("core") end
require_argument(_params, *_requirements)
click to toggle source
# File lib/ey-core/client.rb, line 437 def require_argument(_params, *_requirements) params = Cistern::Hash.stringify_keys(_params) requirements = _requirements.map(&:to_s) values = params.values_at(*requirements) values.all?(&:nil?) && raise(ArgumentError.new("argument is missing or the value is empty: #{requirement}")) values.size == 1 ? values.first : values end
require_argument!(_params, *_requirements)
click to toggle source
# File lib/ey-core/client.rb, line 446 def require_argument!(_params, *_requirements) params = Cistern::Hash.stringify_keys(_params) requirements = _requirements.map(&:to_s) values = params.values_at(*requirements) values.all?(&:nil?) && raise(ArgumentError.new("argument is missing or the value is empty: #{requirement}")) requirements.each { |r| params.delete(r) } values.size == 1 ? values.first : values end
require_arguments(_params, *_requirements)
click to toggle source
# File lib/ey-core/client.rb, line 424 def require_arguments(_params, *_requirements) params = Cistern::Hash.stringify_keys(_params) requirements = _requirements.map(&:to_s) values = requirements.map do |requirement| if params[requirement].nil? raise ArgumentError, "argument is missing or the value is empty: #{requirement}" end params[requirement] end [params, *values] end
require_parameters(_params, *_requirements)
click to toggle source
strong parameter emulation
# File lib/ey-core/client.rb, line 405 def require_parameters(_params, *_requirements) params = Cistern::Hash.stringify_keys(_params) requirements = _requirements.map(&:to_s) requirements.each do |requirement| unless !params[requirement].nil? if self.class == Ey::Core::Client::Real raise ArgumentError, "param is missing or the value is empty: #{requirement}" else response( :status => 400, :body => "param is missing or the value is empty: #{requirement}") end end end values = params.values_at(*requirements) values.size == 1 ? values.first : values end
setup(options)
click to toggle source
# File lib/ey-core/client.rb, line 359 def setup(options) token_dotfile = begin if options[:config_file] YAML.load_file(options[:config_file]) || {} # if the file is empty, yaml returns false else YAML.load_file(File.expand_path("~/.ey-core")) end rescue Errno::ENOENT {} end resolved_url = options[:url] || ENV["CORE_URL"] || "https://api.engineyard.com/" @url = File.join(resolved_url, "/") # trailing slash # consistency # hash tag you're welcome @cache = if options[:cache] == true Ey::Core::MemoryCache else options[:cache] end @authentication = nil @token = if ENV["CORE_TOKEN"] ENV["CORE_TOKEN"] elsif options.has_key?(:token) && options[:token].nil? @authentication = :none else options[:token] || token_dotfile[@url] || token_dotfile[@url.gsub(/\/$/, "")] # matching with or without trailing slash end # For HMAC @auth_id = options[:auth_id] @auth_key = options[:auth_key] unless @authentication == :none if !@auth_id && !@auth_key && !@token raise "Missing token. Use Ey::Core::Client.new(token: mytoken) or add \"'#{@url}': mytoken\" to your ~/.ey-core file (see: https://cloud.engineyard.com/cli)" unless @token elsif options[:token] || (@token && !@auth_id) # token was explicitly provided @authentication = :token else @authentication = :hmac @token = nil end end @logger = options[:logger] || Logger.new(nil) end
url_for(*args)
click to toggle source
# File lib/ey-core/client.rb, line 456 def url_for(*args) File.join(@url.to_s, *args.map(&:to_s)) end