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