class Eco::API::Session::Config::Apis
Public Instance Methods
active_api()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 43 def active_api self["active-api"] end
active_name()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 54 def active_name self["active-name"] end
active_name=(name)
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 47 def active_name=(name) raise "'#{name}' Api environment not defined" if !apis[name] self["active-name"] = name self["active-api"] = apis[name] self end
active_root_name()
click to toggle source
the active environment
# File lib/eco/api/session/config/apis.rb, line 59 def active_root_name active_name end
add(name, key:, host:, version: :internal, mode: :local, user_key: nil, external_key: nil)
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 29 def add(name, key:, host:, version: :internal, mode: :local, user_key: nil, external_key: nil) apis[name] = Session::Config::Api.new( name, key: key, host: host, version: version, mode: mode, root: self, user_key: user_key, external_key: external_key ) self end
any_defined?(*names)
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 23 def any_defined?(*names) [names].flatten.any? do |name| self.defined?(name) end end
api(logger = ::Logger.new(IO::NULL), version: nil)
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 70 def api(logger = ::Logger.new(IO::NULL), version: nil) unless active_api raise "There's no 'active_api'. Use apis.active_name='api_enviro_name' to set the active api" end active_api.api(version: version, logger: logger) end
apis()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 7 def apis self["apis"] ||= {} end
apis?()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 11 def apis? apis.keys.length > 0 end
default_user_key()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 81 def default_user_key self["user_key"] end
default_user_key=(key)
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 77 def default_user_key=(key) self["user_key"] = key end
defined?(name)
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 19 def defined?(name) apis.key?(name) end
enviros()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 15 def enviros apis.keys end
one_off()
click to toggle source
service_up?()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 63 def service_up? @api_test ||= Session::Config::Api.api_class(active_api.version).new("foobar", host: active_api.host, logger: ::Logger.new(IO::NULL)) status = @api_test.client.get("/policy_groups").status # 401 Unauthorized "Permission denied. API key may be invalid." status == 401 end
Private Instance Methods
env_file_set_var(file, var, value)
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 141 def env_file_set_var(file, var, value) begin pattern = /"#{var}=(?<value>[^ \r\n]+)"/ File.open(file, "w+") do |fd| found = false fd.each_line do |line| if match = line.match(pattern) found = true # IO::SEEK_CUR => Seeks to _amount_ plus current position fd.seek(-(line.length + 1), IO::SEEK_CUR) fd.write line.gsub(match[:value], value) end end fd << "#{var}=#{value}" unless found end rescue StandardError => e puts "#{e}" return false end return true end
one_off?()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 95 def one_off? @is_one_off ||= SCR.get_arg("-api-key") || SCR.get_arg("-one-off") end
one_off_enviro()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 135 def one_off_enviro return @one_off_enviro if instance_variable_defined?(:@one_off_enviro) enviro = SCR.get_arg("-enviro") ? SCR.get_arg("-enviro", with_param: true) : "live" @one_off_enviro ||= enviro.downcase end
one_off_key()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 99 def one_off_key return @one_off_key if instance_variable_defined?(:@one_off_key) if one_off? Dotenv.load("./.env_one_off") SCR.get_arg("-api-key", with_param: true).yield_self do |key| one_off_key_env(key) end end end
one_off_key_env(key)
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 109 def one_off_key_env(key) if one_off? if key env_file_set_var("./.env_one_off", one_off_key_env_var, key) key else Dotenv.load("./.env_one_off") ENV[one_off_key_env_var].tap do |k| raise "At least the first time, you should provide the -api-key" unless k end end end end
one_off_key_env_var()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 123 def one_off_key_env_var @one_off_key_env_var ||= "#{one_off_org}_KEY" end
one_off_org()
click to toggle source
# File lib/eco/api/session/config/apis.rb, line 127 def one_off_org return @one_off_org if instance_variable_defined?(:@one_off_org) unless org = SCR.get_arg("-org", with_param: true) raise("You should specify -org NAME when using -api-key or -one-off") end @one_off_org ||= "#{org.downcase.split(/[^a-z]+/).join("_")}_#{one_off_enviro.gsub(".", "_")}".to_sym end