Module: Slodd::Config

Defined in:
lib/slodd/config.rb

Class Method Summary collapse

Class Method Details

.attributesObject



49
50
51
52
53
54
55
56
57
58
# File 'lib/slodd/config.rb', line 49

def self.attributes
   {
      owner: owner,
      repo: repo,
      token: token,
      path: path,
      ref: ref,
      url: url,
    }.delete_if { |k, v| v.nil? }
end

.database_settingsObject



21
22
23
24
# File 'lib/slodd/config.rb', line 21

def self.database_settings
  settings = { adapter: "mysql2", host: host, username: username }
  password ? settings.merge(password: password) : settings
end

.databasesObject



16
17
18
19
# File 'lib/slodd/config.rb', line 16

def self.databases
  return @@databases.split if defined?(@@databases)
  []
end

.defaultsObject



8
9
10
11
12
# File 'lib/slodd/config.rb', line 8

def self.defaults
  self.path = "db/schema.rb"
  self.username = "root"
  self.host = "localhost"
end

.fetcherObject



34
35
36
37
38
39
40
41
42
43
# File 'lib/slodd/config.rb', line 34

def self.fetcher
  if github
    validate_github
    Github.new(attributes)
  elsif url
    Http.new(attributes)
  elsif path
    Local.new(attributes)
  end
end

.ownerObject



26
27
28
# File 'lib/slodd/config.rb', line 26

def self.owner
  github.split("/")[0] if github
end

.repoObject



30
31
32
# File 'lib/slodd/config.rb', line 30

def self.repo
  github.split("/")[1] if github
end

.resetObject



60
61
62
63
64
65
66
67
68
69
# File 'lib/slodd/config.rb', line 60

def self.reset
  defaults
  self.github = nil
  self.password = nil
  self.url = nil
  self.token = nil
  self.databases = nil
  self.ref = nil
  instance_eval { remove_class_variable "@@databases" } if defined?(@@databases)
end

.validate_githubObject



45
46
47
# File 'lib/slodd/config.rb', line 45

def self.validate_github
  fail ArgumentError unless owner && repo && token
end