Class: Skylight::UserConfig

Inherits:
Object show all
Defined in:
lib/skylight/user_config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ UserConfig

Returns a new instance of UserConfig.



8
9
10
11
12
# File 'lib/skylight/user_config.rb', line 8

def initialize(config)
  @config = config
  @file_path = nil
  reload
end

Instance Attribute Details

#disable_dev_warningObject

Returns the value of attribute disable_dev_warning.



6
7
8
# File 'lib/skylight/user_config.rb', line 6

def disable_dev_warning
  @disable_dev_warning
end

#disable_env_warningObject

Returns the value of attribute disable_env_warning.



6
7
8
# File 'lib/skylight/user_config.rb', line 6

def disable_env_warning
  @disable_env_warning
end

Instance Method Details

#disable_dev_warning?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/skylight/user_config.rb', line 35

def disable_dev_warning?
  disable_dev_warning || ENV.fetch("SKYLIGHT_DISABLE_DEV_WARNING", nil) =~ /^true$/i
end

#disable_env_warning?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/skylight/user_config.rb', line 39

def disable_env_warning?
  disable_env_warning
end

#file_pathObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/skylight/user_config.rb', line 14

def file_path
  return @file_path if @file_path

  config_path =
    @config[:user_config_path] ||
      begin
        require "etc"
        home_dir =
          ENV.fetch("HOME", nil) || Etc.getpwuid.dir ||
            (ENV.fetch("USER", nil) && File.expand_path("~#{ENV.fetch("USER", nil)}"))
        if home_dir
          File.join(home_dir, ".skylight")
        else
          raise ConfigError,
                "The Skylight `user_config_path` must be defined since the home directory cannot be inferred"
        end
      end

  @file_path = File.expand_path(config_path)
end

#reloadObject



43
44
45
46
47
48
49
# File 'lib/skylight/user_config.rb', line 43

def reload
  config = File.exist?(file_path) ? YAML.load_file(file_path) : false
  return unless config

  self.disable_dev_warning = !!config["disable_dev_warning"]
  self.disable_env_warning = !!config["disable_env_warning"]
end

#saveObject



51
52
53
54
# File 'lib/skylight/user_config.rb', line 51

def save
  FileUtils.mkdir_p(File.dirname(file_path))
  File.open(file_path, "w") { |f| f.puts YAML.dump(to_hash) }
end

#to_hashObject



56
57
58
# File 'lib/skylight/user_config.rb', line 56

def to_hash
  { "disable_dev_warning" => disable_dev_warning, "disable_env_warning" => disable_env_warning }
end