Class: Fasterer::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/fasterer/config.rb

Constant Summary collapse

FILE_NAME =
'.fasterer.yml'
SPEEDUPS_KEY =
'speedups'
EXCLUDE_PATHS_KEY =
'exclude_paths'

Instance Method Summary collapse

Instance Method Details

#fileObject



19
20
21
22
23
24
25
26
27
# File 'lib/fasterer/config.rb', line 19

def file
  @file ||= begin
    return nil_file unless File.exist?(FILE_NAME)
    # Yaml.load_file returns false if the content is blank
    loaded = YAML.load_file(FILE_NAME) || nil_file
    # if the loaded file misses any of the two keys.
    loaded.merge!(nil_file) { |_k, v1, v2| v1 || v2 }
  end
end

#ignored_filesObject



14
15
16
17
# File 'lib/fasterer/config.rb', line 14

def ignored_files
  @ignored_files ||=
    file[EXCLUDE_PATHS_KEY].flat_map { |path| Dir[path] }
end

#ignored_speedupsObject



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

def ignored_speedups
  @ignored_speedups ||=
    file[SPEEDUPS_KEY].select { |_, value| value == false }.keys.map(&:to_sym)
end

#nil_fileObject



29
30
31
# File 'lib/fasterer/config.rb', line 29

def nil_file
  { SPEEDUPS_KEY => {}, EXCLUDE_PATHS_KEY => [] }
end