Class: GraphQL::Rubocop::GraphQL::BaseCop
- Inherits:
-
RuboCop::Cop::Base
- Object
- RuboCop::Cop::Base
- GraphQL::Rubocop::GraphQL::BaseCop
- Extended by:
- RuboCop::Cop::AutoCorrector
- Defined in:
- lib/graphql/rubocop/graphql/base_cop.rb
Direct Known Subclasses
DefaultNullTrue, DefaultRequiredTrue, FieldTypeInBlock, RootTypesInBlock
Instance Method Summary collapse
-
#source_without_keyword_argument(send_node, pair_node) ⇒ Object
Return the source of
send_node
, but without the keyword argument represented bypair_node
.
Instance Method Details
#source_without_keyword_argument(send_node, pair_node) ⇒ Object
Return the source of send_node
, but without the keyword argument represented by pair_node
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/graphql/rubocop/graphql/base_cop.rb', line 11 def source_without_keyword_argument(send_node, pair_node) # work back to the preceding comma first_pos = pair_node.location.expression.begin_pos end_pos = pair_node.location.expression.end_pos node_source = send_node.source_range.source node_first_pos = send_node.location.expression.begin_pos relative_first_pos = first_pos - node_first_pos relative_last_pos = end_pos - node_first_pos begin_removal_pos = relative_first_pos while node_source[begin_removal_pos] != "," begin_removal_pos -= 1 if begin_removal_pos < 1 raise "Invariant: somehow backtracked to beginning of node looking for a comma (node source: #{node_source.inspect})" end end end_removal_pos = relative_last_pos cleaned_node_source = node_source[0...begin_removal_pos] + node_source[end_removal_pos..-1] cleaned_node_source end |