Class: Gemstash::Configuration
- Inherits:
-
Object
- Object
- Gemstash::Configuration
- Defined in:
- lib/gemstash/configuration.rb
Overview
:nodoc:
Defined Under Namespace
Classes: MissingFileError
Constant Summary collapse
- DEFAULTS =
{ cache_type: "memory", base_path: File.("~/.gemstash"), db_adapter: "sqlite3", bind: "tcp://0.0.0.0:9292", rubygems_url: "https://rubygems.org", protected_fetch: false, fetch_timeout: 20, # Actual default for db_connection_options is dynamic based on the adapter db_connection_options: {}, puma_threads: 16 }.freeze
- DEFAULT_FILE =
File.("~/.gemstash/config.yml").freeze
Instance Method Summary collapse
- #[](key) ⇒ Object
-
#database_connection_config ⇒ Hash
Sequel connection configuration hash.
- #default?(key) ⇒ Boolean
-
#initialize(file: nil, config: nil) ⇒ Configuration
constructor
A new instance of Configuration.
Constructor Details
#initialize(file: nil, config: nil) ⇒ Configuration
Returns a new instance of Configuration.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/gemstash/configuration.rb', line 30 def initialize(file: nil, config: nil) if config @config = DEFAULTS.merge(config).freeze return end raise MissingFileError, file if file && !File.exist?(file) file ||= default_file if File.exist?(file) @config = parse_config(file) @config = DEFAULTS.merge(@config) @config.freeze else @config = DEFAULTS end end |
Instance Method Details
#[](key) ⇒ Object
52 53 54 |
# File 'lib/gemstash/configuration.rb', line 52 def [](key) @config[key] end |
#database_connection_config ⇒ Hash
Returns Sequel connection configuration hash.
57 58 59 60 61 62 63 64 65 66 |
# File 'lib/gemstash/configuration.rb', line 57 def database_connection_config case self[:db_adapter] when "sqlite3" { max_connections: 1 }.merge(self[:db_connection_options]) when "postgres", "mysql", "mysql2" { max_connections: self[:puma_threads] + 1 }.merge(self[:db_connection_options]) else raise "Unsupported DB adapter: '#{self[:db_adapter]}'" end end |
#default?(key) ⇒ Boolean
48 49 50 |
# File 'lib/gemstash/configuration.rb', line 48 def default?(key) @config[key] == DEFAULTS[key] end |