Class: Transpec::Syntax::RSpecConfigure
- Inherits:
-
Transpec::Syntax
- Object
- Transpec::Syntax
- Transpec::Syntax::RSpecConfigure
- Includes:
- Mixin::RSpecRails, Mixin::Send, ConfigModification
- Defined in:
- lib/transpec/syntax/rspec_configure.rb,
lib/transpec/syntax/rspec_configure/mocks.rb,
lib/transpec/syntax/rspec_configure/framework.rb,
lib/transpec/syntax/rspec_configure/expectations.rb,
lib/transpec/syntax/rspec_configure/config_modification.rb
Defined Under Namespace
Modules: ConfigModification Classes: Expectations, Framework, Mocks
Constant Summary
Constants included from Util
Util::LITERAL_TYPES, Util::WHITESPACES
Instance Attribute Summary
Attributes inherited from Transpec::Syntax
#node, #project, #report, #runtime_data, #source_rewriter
Instance Method Summary collapse
- #block_arg_name ⇒ Object
-
#convert_deprecated_options! ⇒ Object
rubocop:disable MethodLength.
- #dynamic_analysis_target? ⇒ Boolean
- #expectations ⇒ Object
- #expose_dsl_globally=(value) ⇒ Object
- #infer_spec_type_from_file_location! ⇒ Object
- #infer_spec_type_from_file_location? ⇒ Boolean
- #mocks ⇒ Object
Methods included from Mixin::Send
#arg_node, #arg_nodes, #arg_range, #args_range, #method_name, #parentheses_range, #range_after_arg, #range_in_between_receiver_and_selector, #range_in_between_selector_and_arg, #receiver_node, #receiver_range, #selector_range
Methods included from Mixin::Send::TargetDetection
Methods included from Mixin::RSpecRails
Methods included from ConfigModification::ConfigAddition
#add_config!, #block_node_to_insert_code, #body_indentation, #config_variable_name, #empty_block_body?, #generate_config_lines
Methods included from Util
beginning_of_line_range, block_node_taken_by_method, chainable_source, const_name, contain_here_document?, each_backward_chained_node, each_forward_chained_node, each_line_range, expand_range_to_adjacent_whitespaces, find_consecutive_whitespace_position, first_block_arg_name, here_document?, in_explicit_parentheses?, indentation_of_line, line_range, literal?, proc_literal?, range_from_arg
Methods inherited from Transpec::Syntax
#add_record, #conversion_target?, #dependent_syntaxes, #expression_range, #initialize, #inspect, #parent_node, #rspec_version, snake_case_name, standalone?, #static_context_inspector
Methods included from Collection
#all_syntaxes, #inherited, #mixins, #require_all, #standalone_syntaxes
Methods included from DynamicAnalysis
#register_dynamic_analysis_request
Constructor Details
This class inherits a constructor from Transpec::Syntax
Instance Method Details
#block_arg_name ⇒ Object
110 111 112 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 110 def block_arg_name first_block_arg_name(block_node) end |
#convert_deprecated_options! ⇒ Object
rubocop:disable MethodLength
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 70 def # rubocop:disable MethodLength replace_config!(:backtrace_clean_patterns, :backtrace_exclusion_patterns) replace_config!(:backtrace_clean_patterns=, :backtrace_exclusion_patterns=) replace_config!(:color_enabled=, :color=) if rspec_version.config_output_stream_available? replace_config!(:output, :output_stream) replace_config!(:output=, :output_stream=) replace_config!(:out, :output_stream) replace_config!(:out=, :output_stream=) end if rspec_version.config_pattern_available? replace_config!(:filename_pattern, :pattern) replace_config!(:filename_pattern=, :pattern=) end if rspec_version.config_backtrace_formatter_available? replace_config!(:backtrace_cleaner, :backtrace_formatter) end if rspec_version.config_predicate_color_enabled_available? replace_config!(:color?, :color_enabled?) end if rspec_version.config_predicate_warnings_available? replace_config!(:warnings, :warnings?) end end |
#dynamic_analysis_target? ⇒ Boolean
25 26 27 28 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 25 def dynamic_analysis_target? return false unless super const_name(receiver_node) == 'RSpec' && method_name == :configure && parent_node.block_type? end |
#expectations ⇒ Object
100 101 102 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 100 def expectations @expectations ||= Expectations.new(self) end |
#expose_dsl_globally=(value) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 30 def expose_dsl_globally=(value) comment = <<-END.gsub(/^\s+\|/, '').chomp |Setting this config option `false` removes rspec-core's monkey patching of the |top level methods like `describe`, `shared_examples_for` and `shared_context` |on `main` and `Module`. The methods are always available through the `RSpec` |module like `RSpec.describe` regardless of this setting. |For backwards compatibility this defaults to `true`. | |https://relishapp.com/rspec/rspec-core/v/3-0/docs/configuration/global-namespace-dsl END set_config_value!(:expose_dsl_globally, value, comment) end |
#infer_spec_type_from_file_location! ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 43 def infer_spec_type_from_file_location! return if infer_spec_type_from_file_location? return unless rspec_rails? # Based on the deprecation warning in RSpec 2.99: # https://github.com/rspec/rspec-rails/blob/ab6313b/lib/rspec/rails/infer_type_configuration.rb#L13-L22 # and the Myron's post: # http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#filetype_inference_disabled_by_default comment = <<-END.gsub(/^\s+\|/, '').chomp |rspec-rails 3 will no longer automatically infer an example group's spec type |from the file location. You can explicitly opt-in to the feature using this |config option. |To explicitly tag specs without using automatic inference, set the `:type` |metadata manually: | | describe ThingsController, :type => :controller do | # Equivalent to being in spec/controllers | end END add_config!(:infer_spec_type_from_file_location!, nil, comment) end |
#infer_spec_type_from_file_location? ⇒ Boolean
66 67 68 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 66 def infer_spec_type_from_file_location? !find_config_node(:infer_spec_type_from_file_location!).nil? end |