Class: Fasterer::FileTraverser

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

Constant Summary collapse

CONFIG_FILE_NAME =
'.fasterer.yml'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ FileTraverser

Returns a new instance of FileTraverser.



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

def initialize(path)
  @path = Pathname(path)
  @parse_error_paths = []
  set_ignored_speedups
end

Instance Attribute Details

#ignored_speedupsObject (readonly)

Returns the value of attribute ignored_speedups.



12
13
14
# File 'lib/fasterer/file_traverser.rb', line 12

def ignored_speedups
  @ignored_speedups
end

Instance Method Details

#config_fileObject



35
36
37
# File 'lib/fasterer/file_traverser.rb', line 35

def config_file
  File.exists?(CONFIG_FILE_NAME) && YAML.load_file(CONFIG_FILE_NAME)
end

#set_ignored_speedupsObject



29
30
31
32
33
# File 'lib/fasterer/file_traverser.rb', line 29

def set_ignored_speedups
  @ignored_speedups = if config_file
    config_file['speedups'].select {|_, value| value == false }.keys.map(&:to_sym)
  end || []
end

#traverseObject



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

def traverse
  if @path.directory?
    traverse_directory(@path)
  else
    scan_file(@path)
  end
  output_parse_errors if parse_error_paths.any?
end