Class: Transpec::Syntax::RSpecConfigure
- Inherits:
-
Syntax
- Object
- Syntax
- Transpec::Syntax::RSpecConfigure
show all
- 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 Method Summary
collapse
#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
#conversion_target?
#rspec_rails?
#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
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)
= <<-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, )
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?
= <<-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, )
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
|
#mocks ⇒ Object
76
77
78
|
# File 'lib/transpec/syntax/rspec_configure.rb', line 76
def mocks
@mocks ||= Mocks.new(self, source_rewriter)
end
|