Class: BrickFTP::Configuration
- Inherits:
-
Object
- Object
- BrickFTP::Configuration
- Defined in:
- lib/brick_ftp/configuration.rb
Constant Summary collapse
- DEFAULT_OPEN_TIMEOUT =
10- DEFAULT_READ_TIMEOUT =
30- DEFAULT_PROFILE =
'global'.freeze
- CONFIG_FILE_PATH =
File.('~/.brick_ftp/config').freeze
- STORABLE_CONFIGURATION_KEYS =
Name of storable configurations. (TODO: log_path, log_level, log_formatter)
%w(subdomain api_key open_timeout read_timeout).freeze
Instance Attribute Summary collapse
-
#api_key ⇒ String
Access key of API.
-
#config_file_path ⇒ String
readonly
Path for configuration file.
-
#log_formatter ⇒ Logger::Formatter
Log formatter.
-
#log_level ⇒ Integer
Log level.
-
#logger ⇒ Logger
Logger.
-
#open_timeout ⇒ Integer
Open timeout.
-
#profile ⇒ String
readonly
Name of configuration profile.
-
#read_timeout ⇒ Integer
Read timeout.
-
#session ⇒ BrickFTP::API::Authentication::Session
Authentication session for cookie auth.
-
#subdomain ⇒ String
Subdomain of API endpoint.
Instance Method Summary collapse
-
#api_host ⇒ String
Host name of API endpoint.
-
#initialize(profile: DEFAULT_PROFILE, config_file_path: CONFIG_FILE_PATH) ⇒ Configuration
constructor
A new instance of Configuration.
- #save! ⇒ Object
Constructor Details
#initialize(profile: DEFAULT_PROFILE, config_file_path: CONFIG_FILE_PATH) ⇒ Configuration
Returns a new instance of Configuration.
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/brick_ftp/configuration.rb', line 52 def initialize(profile: DEFAULT_PROFILE, config_file_path: CONFIG_FILE_PATH) @profile = profile @config_file_path = config_file_path load_config_file(config_file_path) self.subdomain = ENV.fetch('BRICK_FTP_SUBDOMAIN', inifile[profile]['subdomain']) self.api_key = ENV.fetch('BRICK_FTP_API_KEY', inifile[profile]['api_key']) self.session = nil self.open_timeout = (inifile[profile]['open_timeout'] || DEFAULT_OPEN_TIMEOUT).to_i self.read_timeout = (inifile[profile]['read_timeout'] || DEFAULT_READ_TIMEOUT).to_i self.logger = Logger.new(STDOUT) self.log_level = Logger::WARN self.log_formatter = Logger::Formatter.new logger.level = log_level dirty_attributes.clear end |
Instance Attribute Details
#api_key ⇒ String
Access key of API. If not specified, get value from enviroment variable ‘BRICK_FTP_API_KEY`.
17 18 19 |
# File 'lib/brick_ftp/configuration.rb', line 17 def api_key @api_key end |
#config_file_path ⇒ String (readonly)
Path for configuration file.
11 12 13 |
# File 'lib/brick_ftp/configuration.rb', line 11 def config_file_path @config_file_path end |
#log_formatter ⇒ Logger::Formatter
Log formatter
29 30 31 |
# File 'lib/brick_ftp/configuration.rb', line 29 def log_formatter @log_formatter end |
#log_level ⇒ Integer
Log level
26 27 28 |
# File 'lib/brick_ftp/configuration.rb', line 26 def log_level @log_level end |
#logger ⇒ Logger
Logger.
23 24 25 |
# File 'lib/brick_ftp/configuration.rb', line 23 def logger @logger end |
#open_timeout ⇒ Integer
Open timeout
32 33 34 |
# File 'lib/brick_ftp/configuration.rb', line 32 def open_timeout @open_timeout end |
#profile ⇒ String (readonly)
Name of configuration profile.
8 9 10 |
# File 'lib/brick_ftp/configuration.rb', line 8 def profile @profile end |
#read_timeout ⇒ Integer
Read timeout
35 36 37 |
# File 'lib/brick_ftp/configuration.rb', line 35 def read_timeout @read_timeout end |
#session ⇒ BrickFTP::API::Authentication::Session
Authentication session for cookie auth.
20 21 22 |
# File 'lib/brick_ftp/configuration.rb', line 20 def session @session end |
#subdomain ⇒ String
Subdomain of API endpoint. If not specified, get value from enviroment variable ‘BRICK_FTP_SUBDOMAIN`.
14 15 16 |
# File 'lib/brick_ftp/configuration.rb', line 14 def subdomain @subdomain end |
Instance Method Details
#api_host ⇒ String
Host name of API endpoint.
72 73 74 |
# File 'lib/brick_ftp/configuration.rb', line 72 def api_host "#{subdomain}.brickftp.com" end |
#save! ⇒ Object
90 91 92 93 94 95 96 |
# File 'lib/brick_ftp/configuration.rb', line 90 def save! dirty_attributes.each do |key| inifile[profile][key] = send(key) end FileUtils.mkdir_p(File.dirname(inifile.filename)) unless File.exist?(File.dirname(inifile.filename)) inifile.save end |