Class: ClassAction::RSpec::HaveClassActionMatcher
- Inherits:
-
Object
- Object
- ClassAction::RSpec::HaveClassActionMatcher
- Defined in:
- lib/class_action/rspec/have_class_action_matcher.rb
Instance Method Summary collapse
- #description ⇒ Object
- #failure_message ⇒ Object
- #failure_message_when_negated ⇒ Object
-
#initialize(action_name) ⇒ HaveClassActionMatcher
constructor
A new instance of HaveClassActionMatcher.
- #matches?(controller) ⇒ Boolean
- #using_class(klass) ⇒ Object
Constructor Details
#initialize(action_name) ⇒ HaveClassActionMatcher
Returns a new instance of HaveClassActionMatcher.
6 7 8 |
# File 'lib/class_action/rspec/have_class_action_matcher.rb', line 6 def initialize(action_name) @action_name = action_name.to_s end |
Instance Method Details
#description ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/class_action/rspec/have_class_action_matcher.rb', line 29 def description if @klass "have class action :#{@action_name} using class #{@klass}" else "have class action :#{@action_name}" end end |
#failure_message ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/class_action/rspec/have_class_action_matcher.rb', line 37 def case @reason when :unsupported "expected controller of class #{@controller.class} to have class action :#{@action_name}, but it does not support class actions" when :incorrect_class "expected action #{@controller.class}##{@action_name} to use class #{@klass}, but it used #{@found_class}" when :not_a_class_action "expected action #{@controller.class}##{@action_name} to be a class action" else "expected controller of class #{@controller.class} to have class action :#{@action_name}" end end |
#failure_message_when_negated ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/class_action/rspec/have_class_action_matcher.rb', line 50 def if @klass "expected #{@controller.class}##{@action_name} not to be a class action using class #{@klass}" else "expected #{@controller.class}##{@action_name} not to be a class action" end end |
#matches?(controller) ⇒ Boolean
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/class_action/rspec/have_class_action_matcher.rb', line 15 def matches?(controller) @controller = controller @reason = :unsupported and return false unless controller.respond_to?(:_class_action, true) @reason = :not_an_action and return false unless controller.respond_to?(@action_name) @reason = :not_a_class_action and return false unless controller.respond_to?(:"_#{@action_name}_action_class", true) if @klass @found_class = controller.send(:"_#{@action_name}_action_class").class @reason = :incorrect_class and return false if @found_class != @klass end true end |
#using_class(klass) ⇒ Object
10 11 12 13 |
# File 'lib/class_action/rspec/have_class_action_matcher.rb', line 10 def using_class(klass) @klass = klass self end |