Module: DeepCover::Node::Mixin::Filters

Defined in:
lib/deep_cover/node/mixin/filters.rb

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

RAISING_MESSAGES =
%i[raise exit].freeze

Instance Method Summary collapse

Instance Method Details

#is_case_implicit_else?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/deep_cover/node/mixin/filters.rb', line 37

def is_case_implicit_else?
  is_a?(Node::EmptyBody) && parent.is_a?(Node::Case) && !parent.has_else?
end

#is_default_argument?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/deep_cover/node/mixin/filters.rb', line 33

def is_default_argument?
  parent.is_a?(Node::Optarg) && simple_literal?
end

#is_raise?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/deep_cover/node/mixin/filters.rb', line 25

def is_raise?
  is_a?(Node::Send) && RAISING_MESSAGES.include?(message) && receiver == nil
end

#is_trivial_if?Boolean

Returns:

  • (Boolean)


41
42
43
44
# File 'lib/deep_cover/node/mixin/filters.rb', line 41

def is_trivial_if?
  # Supports only node being a branch or the fork itself
  parent.is_a?(Node::If) && parent.condition.simple_literal?
end

#is_warn?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/deep_cover/node/mixin/filters.rb', line 29

def is_warn?
  is_a?(Node::Send) && message == :warn
end