Class: ObjectInspector::Scope
- Inherits:
-
Object
- Object
- ObjectInspector::Scope
- Defined in:
- lib/object_inspector/scope.rb
Overview
Defines a predicate method that matches #names and responds with ‘true`. This is a prettier way to test for a given type of “scope” within objects.
It is possible to pass in multiple scope names to match on.
‘:all` is a “wild card” scope name, and will match on all scope names.
Passing a block to a scope predicate falls back to the out-of-scope placeholder (‘*` by default) if the scope does not match.
Instance Attribute Summary collapse
-
#names ⇒ Array<#to_s>
The current value of names.
Instance Method Summary collapse
-
#==(other) ⇒ TrueClass, FalseClass
(also: #eql?)
Compare self with the passed in object.
-
#initialize(*names) ⇒ Scope
constructor
:reek:FeatureEnvy.
- #inspect ⇒ Object
-
#join_flags(flags, separator: ObjectInspector.configuration.flags_separator) ⇒ Object
Join the passed in flags with the passed in separator.
-
#join_info(items, separator: ObjectInspector.configuration.info_separator) ⇒ Object
Join the passed in items with the passed in separator.
-
#join_issues(issues, separator: ObjectInspector.configuration.issues_separator) ⇒ Object
Join the passed in issues with the passed in separator.
-
#join_name(parts, separator: ObjectInspector.configuration.name_separator) ⇒ Object
Join the passed in name parts with the passed in separator.
-
#to_a ⇒ Array<#to_s>
The current value of names.
-
#to_s(separator: ", ") ⇒ String
The contents of #names, joined by ‘, `.
Constructor Details
#initialize(*names) ⇒ Scope
:reek:FeatureEnvy
34 35 36 37 |
# File 'lib/object_inspector/scope.rb', line 34 def initialize(*names) names = names.empty? ? %w[self] : names.flatten @names = names.map! { |name| String(name) }.sort! end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args) ⇒ Object (private)
109 110 111 112 113 114 115 116 |
# File 'lib/object_inspector/scope.rb', line 109 def method_missing(method_name, *args, &) if method_name[-1] == "?" scope_name = method_name[0..-2] evaluate_match(scope_name, &) else super end end |
Instance Attribute Details
#names ⇒ Array<#to_s>
29 30 31 |
# File 'lib/object_inspector/scope.rb', line 29 def names @names end |
Instance Method Details
#==(other) ⇒ TrueClass, FalseClass Also known as: eql?
Compare self with the passed in object.
88 89 90 |
# File 'lib/object_inspector/scope.rb', line 88 def ==(other) names == Array(other).map(&:to_s).sort! end |
#inspect ⇒ Object
103 104 105 |
# File 'lib/object_inspector/scope.rb', line 103 def inspect "<#{self.class.name} :: #{names.inspect}>" end |
#join_flags(flags, separator: ObjectInspector.configuration.flags_separator) ⇒ Object
Join the passed in flags with the passed in separator.
54 55 56 57 58 59 |
# File 'lib/object_inspector/scope.rb', line 54 def join_flags( flags, separator: ObjectInspector.configuration.flags_separator ) _join(flags, separator) end |
#join_info(items, separator: ObjectInspector.configuration.info_separator) ⇒ Object
Join the passed in items with the passed in separator.
76 77 78 79 80 81 |
# File 'lib/object_inspector/scope.rb', line 76 def join_info( items, separator: ObjectInspector.configuration.info_separator ) _join(items, separator) end |
#join_issues(issues, separator: ObjectInspector.configuration.issues_separator) ⇒ Object
Join the passed in issues with the passed in separator.
65 66 67 68 69 70 |
# File 'lib/object_inspector/scope.rb', line 65 def join_issues( issues, separator: ObjectInspector.configuration.issues_separator ) _join(issues, separator) end |
#join_name(parts, separator: ObjectInspector.configuration.name_separator) ⇒ Object
Join the passed in name parts with the passed in separator.
43 44 45 46 47 48 |
# File 'lib/object_inspector/scope.rb', line 43 def join_name( parts, separator: ObjectInspector.configuration.name_separator ) _join(parts, separator) end |
#to_a ⇒ Array<#to_s>
99 100 101 |
# File 'lib/object_inspector/scope.rb', line 99 def to_a names end |
#to_s(separator: ", ") ⇒ String
94 95 96 |
# File 'lib/object_inspector/scope.rb', line 94 def to_s(separator: ", ") to_a.join(separator) end |