Class: ConvenientService::RSpec::PrimitiveMatchers::Classes::IncludeInOrder
- Inherits:
-
Object
- Object
- ConvenientService::RSpec::PrimitiveMatchers::Classes::IncludeInOrder
- Defined in:
- lib/convenient_service/rspec/primitive_matchers/classes/include_in_order.rb
Instance Method Summary collapse
- #description ⇒ String
- #failure_message ⇒ String
- #failure_message_when_negated ⇒ String
- #initialize(keywords) ⇒ void constructor
- #matches?(string) ⇒ Boolean
Constructor Details
#initialize(keywords) ⇒ void
17 18 19 |
# File 'lib/convenient_service/rspec/primitive_matchers/classes/include_in_order.rb', line 17 def initialize(keywords) @keywords = keywords end |
Instance Method Details
#description ⇒ String
46 47 48 |
# File 'lib/convenient_service/rspec/primitive_matchers/classes/include_in_order.rb', line 46 def description "include in order #{printable_keywords}" end |
#failure_message ⇒ String
53 54 55 |
# File 'lib/convenient_service/rspec/primitive_matchers/classes/include_in_order.rb', line 53 def "expected `#{string.inspect}` include in order #{printable_keywords}" end |
#failure_message_when_negated ⇒ String
60 61 62 |
# File 'lib/convenient_service/rspec/primitive_matchers/classes/include_in_order.rb', line 60 def "expected `#{string.inspect}` NOT include in order #{printable_keywords}" end |
#matches?(string) ⇒ Boolean
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/convenient_service/rspec/primitive_matchers/classes/include_in_order.rb', line 31 def matches?(string) @string = string return false if keywords.empty? scanner = ::StringScanner.new(string) keywords .map { |keyword| keyword.instance_of?(::String) ? ::Regexp.new(::Regexp.escape(keyword)) : keyword } .all? { |keyword| scanner.scan_until(keyword) } end |