gonzedge/rambling-trie

View on GitHub
.reek.yml

Summary

Maintainability
Test Coverage
---
exclude_paths:
  - tasks
  - spec

detectors:
  Attribute:
    exclude:
      # Need these setters for compression
      - 'Rambling::Trie::Nodes::Node#children_tree'
      - 'Rambling::Trie::Nodes::Node#parent'
      - 'Rambling::Trie::Nodes::Node#value'
      # All Properties are settable by clients because of config convention
      - 'Rambling::Trie::Configuration::Properties'

  ControlParameter:
    enabled: false

  DuplicateMethodCall:
    exclude:
      # Not actual duplicates, the underlying var is mutated
      - 'Rambling::Trie::Nodes::Compressed'

  FeatureEnvy:
    exclude:
      - 'Rambling::Trie::Container#concat' # needs to access words array to add all words _and_ values
      - 'Rambling::Trie::Compressor' # needs to access node internals to perform compression
      - 'Rambling::Trie::Nodes::Compressed#partial_word_chars?' # needs access to child letter to figure out compressed letters

  NestedIterators:
    exclude:
      - 'Rambling::Trie#create' # inner iteration goes through each word in given file
      - 'Rambling::Trie::Container#words_within_root' # inner iteration does a match of each prefix
      - 'Rambling::Trie::Enumerable#each' # inner iteration goes through each word in children_tree

  NilCheck:
    exclude:
      - 'Rambling::Trie::Configuration::ProviderCollection#contains?' # necessary for steep type check

  TooManyMethods:
    exclude:
      - 'Rambling::Trie::Container' # Container is the lib API entry point
      - 'Rambling::Trie::Nodes::Node' # Node is the main building block

  TooManyStatements:
    max_statements: 10

  UnusedParameters:
    exclude:
      # Rambling::Trie::Nodes::Node has some abstract methods
      - 'Rambling::Trie::Nodes::Node#children_match_prefix'
      - 'Rambling::Trie::Nodes::Node#closest_node'
      - 'Rambling::Trie::Nodes::Node#partial_word_chars?'
      - 'Rambling::Trie::Nodes::Node#word_chars?'
      # Rambling::Trie::Readers::Reader is an abstract class
      - 'Rambling::Trie::Readers::Reader#each_word'
      # Rambling::Trie::Serializers::Serializer is an abstract class
      - 'Rambling::Trie::Serializers::Serializer#dump'
      - 'Rambling::Trie::Serializers::Serializer#load'

  UtilityFunction:
    public_methods_only: true
    exclude:
      # Rambling::Trie::Serializers::File are intentionally using ::File methods
      - 'Rambling::Trie::Serializers::File#dump'
      - 'Rambling::Trie::Serializers::File#load'