module Slodd::Config
Public Class Methods
attributes()
click to toggle source
# File lib/slodd/config.rb, line 52 def self.attributes { owner: owner, repo: repo, token: token, path: path, ref: ref, url: url, }.delete_if { |_, v| v.nil? } end
database_settings()
click to toggle source
# File lib/slodd/config.rb, line 25 def self.database_settings settings_from_url || settings_from_args end
database_uri()
click to toggle source
# File lib/slodd/config.rb, line 74 def self.database_uri return unless ENV["DATABASE_URL"] @_database_uri ||= URI.parse(ENV["DATABASE_URL"]) end
databases()
click to toggle source
# File lib/slodd/config.rb, line 20 def self.databases self.databases = database_uri.path[1..-1] if database_uri @@databases ? @@databases.split : [] end
defaults()
click to toggle source
# File lib/slodd/config.rb, line 11 def self.defaults self.path = "db/schema.rb" self.username = "root" self.host = "localhost" self.databases = nil end
fetcher()
click to toggle source
# File lib/slodd/config.rb, line 37 def self.fetcher if github validate_github Github.new(attributes) elsif url Http.new(attributes) elsif path Local.new(attributes) end end
owner()
click to toggle source
# File lib/slodd/config.rb, line 29 def self.owner github.split("/")[0] if github end
repo()
click to toggle source
# File lib/slodd/config.rb, line 33 def self.repo github.split("/")[1] if github end
settings_from_args()
click to toggle source
# File lib/slodd/config.rb, line 79 def self.settings_from_args settings = { adapter: "mysql2", host: host, username: username } settings[:password] = password if password settings end
settings_from_url()
click to toggle source
# File lib/slodd/config.rb, line 63 def self.settings_from_url return unless database_uri self.databases = database_uri.path[1..-1] { adapter: database_uri.scheme, host: database_uri.host, username: database_uri.user, password: database_uri.password, } end
validate_github()
click to toggle source
# File lib/slodd/config.rb, line 48 def self.validate_github fail ArgumentError unless owner && repo && token end