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, #report, #runtime_data, #source_rewriter
Instance Method Summary collapse
- #block_arg_name ⇒ Object
- #dynamic_analysis_target? ⇒ Boolean
- #expectations ⇒ Object
- #expose_dsl_globally=(boolean) ⇒ 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
#conversion_target?, #dependent_syntaxes, #expression_range, #initialize, #inspect, #parent_node, 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
82 83 84 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 82 def block_arg_name first_block_arg_name(block_node) end |
#dynamic_analysis_target? ⇒ Boolean
23 24 25 26 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 23 def dynamic_analysis_target? return false unless super const_name(receiver_node) == 'RSpec' && method_name == :configure && parent_node.block_type? end |
#expectations ⇒ Object
72 73 74 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 72 def expectations @expectations ||= Expectations.new(self, source_rewriter) end |
#expose_dsl_globally=(boolean) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 28 def expose_dsl_globally=(boolean) 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!(:expose_dsl_globally, boolean, comment) end |
#infer_spec_type_from_file_location! ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 41 def infer_spec_type_from_file_location! return if infer_spec_type_from_file_location? return unless rspec_rails? # rubocop:disable LineLength # # 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 # # rubocop:enable LineLength 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
68 69 70 |
# File 'lib/transpec/syntax/rspec_configure.rb', line 68 def infer_spec_type_from_file_location? !find_config_node(:infer_spec_type_from_file_location!).nil? end |