paulfioravanti/resume

View on GitHub
.reek.yml

Summary

Maintainability
Test Coverage
detectors:
  DataClump:
    # NOTE: The Prawn API and the functional nature of how the resume is
    # generated tends to generate what OO would consider data clumps
    exclude:
      - "Resume::CLI::ContentParser"
      - "Resume::PDF::Entry::Content"
  DuplicateMethodCall:
    exclude:
      # NOTE: This is due to the OptionParser syntax
      - "Resume::CLI::ArgumentParser#parser"
  FeatureEnvy:
    # NOTE: Many of the exclusions here are due to reek not being able to see
    # `module_function` methods aren't instance methods that need to refer to a
    # `self`.
    exclude:
      - "Resume::CLI::ArgumentParser#parser"
      - "Resume::CLI::ContentParser#parse_hash"
      - "Resume::CLI::ContentParser#munge_hash_value"
      - "Resume::CLI::ContentParser#parse_array"
      - "Resume::PDF::EmploymentHistory#footer"
      - "Resume::PDF::Entry::Content#details"
      - "Resume::PDF::Entry::Header#formatted_text_box_header"
      - "Resume::PDF::Entry::Heading#generate"
      - "Resume::PDF::ImageLink#generate"
      - "Resume::PDF::TechnicalSkills#generate_table"
  NestedIterators:
    # NOTE: some of the exclusions are here because reek considers
    # passing a block to File.open an iterator, which I do not
    exclude:
      - "Resume::PDF::Document#generate"
      - "Resume::PDF::Entry::Header#formatted_text_box_header"
      - "Resume::PDF::Entry::Header#formatted_text_header"
  TooManyStatements:
    exclude:
      - "Resume::CLI::Application#self.start"
      - "Resume::CLI::ArgumentParser#parser"
      - "Resume::CLI::FontDownloader#self.extract_fonts"
      - "Resume::PDF::Manifest#process"
exclude_paths:
  # NOTE: CI goes looking in the vendor directory and attempts to scan all files
  # in all gems, so make the exclusion explicit here.
  - "vendor"
directories:
  "spec/":
    # NOTE: Top-level documentation is done in the module/class files themselves,
    # so they don't need to be repeated for their definitions in spec files.
    IrresponsibleModule:
      enabled: false
  "lib/":
    # NOTE: I wish I didn't have to do this, but there ended up being too many
    # false positives generated.
    IrresponsibleModule:
      enabled: false