Class: Fasterer::FileTraverser
- Inherits:
-
Object
- Object
- Fasterer::FileTraverser
- Defined in:
- lib/fasterer/file_traverser.rb
Constant Summary collapse
- CONFIG_FILE_NAME =
'.fasterer.yml'- SPEEDUPS_KEY =
'speedups'- EXCLUDE_PATHS_KEY =
'exclude_paths'
Instance Attribute Summary collapse
-
#ignored_paths ⇒ Object
readonly
Returns the value of attribute ignored_paths.
-
#ignored_speedups ⇒ Object
readonly
Returns the value of attribute ignored_speedups.
Instance Method Summary collapse
- #config_file ⇒ Object
-
#initialize(path) ⇒ FileTraverser
constructor
A new instance of FileTraverser.
- #set_ignored_paths ⇒ Object
- #set_ignored_speedups ⇒ Object
- #traverse ⇒ Object
Constructor Details
#initialize(path) ⇒ FileTraverser
Returns a new instance of FileTraverser.
18 19 20 21 22 23 |
# File 'lib/fasterer/file_traverser.rb', line 18 def initialize(path) @path = Pathname(path) @parse_error_paths = [] set_ignored_speedups set_ignored_paths end |
Instance Attribute Details
#ignored_paths ⇒ Object (readonly)
Returns the value of attribute ignored_paths.
16 17 18 |
# File 'lib/fasterer/file_traverser.rb', line 16 def ignored_paths @ignored_paths end |
#ignored_speedups ⇒ Object (readonly)
Returns the value of attribute ignored_speedups.
16 17 18 |
# File 'lib/fasterer/file_traverser.rb', line 16 def ignored_speedups @ignored_speedups end |
Instance Method Details
#config_file ⇒ Object
46 47 48 |
# File 'lib/fasterer/file_traverser.rb', line 46 def config_file File.exists?(CONFIG_FILE_NAME) && YAML.load_file(CONFIG_FILE_NAME) end |
#set_ignored_paths ⇒ Object
40 41 42 43 44 |
# File 'lib/fasterer/file_traverser.rb', line 40 def set_ignored_paths @ignored_paths = if config_file && config_file[EXCLUDE_PATHS_KEY] config_file[EXCLUDE_PATHS_KEY].flat_map {|path| Dir[path] } end || [] end |
#set_ignored_speedups ⇒ Object
34 35 36 37 38 |
# File 'lib/fasterer/file_traverser.rb', line 34 def set_ignored_speedups @ignored_speedups = if config_file && config_file[SPEEDUPS_KEY] config_file[SPEEDUPS_KEY].select {|_, value| value == false }.keys.map(&:to_sym) end || [] end |
#traverse ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/fasterer/file_traverser.rb', line 25 def traverse if @path.directory? traverse_directory(@path) else scan_file(@path) end output_parse_errors if parse_error_paths.any? end |