module Howitzer::Utils::StringExtensions

This module extends standard String class with useful methods for Cucumber step definitions

Public Instance Methods

as_email_class() click to toggle source

Returns an email class by name @example

'Reset Password'.as_email_class #=> ResetPasswordEmail

@see Howitzer::Email

# File lib/howitzer/utils/string_extensions.rb, line 50
def as_email_class
  as_class('Email')
end
as_page_class() click to toggle source

Returns a page class by name @example

'home'.as_page_class #=> HomePage

@see Howitzer::Web::Page

# File lib/howitzer/utils/string_extensions.rb, line 41
def as_page_class
  as_class('Page')
end
displayed?() click to toggle source

Waits until a page is opened or raises error @example

'home'.displayed? #=> HomePage.displayed?

@see Howitzer::Web::Page.displayed?

# File lib/howitzer/utils/string_extensions.rb, line 32
def displayed?
  as_page_class.displayed?
end
given() click to toggle source

Returns an instantiated page by name @example

'home'.given #=> HomePage.given

@see Howitzer::Web::Page.given

# File lib/howitzer/utils/string_extensions.rb, line 23
def given
  as_page_class.given
end
on(&block) click to toggle source

Executes code in context of the page @example

'home'.on { puts 1 } #=> HomePage.on { puts 1 }

@see Howitzer::Web::Page.on

# File lib/howitzer/utils/string_extensions.rb, line 59
def on(&block)
  as_page_class.on(&block)
end
open(*args, **options) click to toggle source

Opens a page by name @example

'home'.open #=> HomePage.open

@see Howitzer::Web::Page.open

# File lib/howitzer/utils/string_extensions.rb, line 10
def open(*args, **options)
  if options.present?
    as_page_class.open(*args, **options)
  else
    as_page_class.open(*args)
  end
end

Private Instance Methods

as_class(type) click to toggle source
# File lib/howitzer/utils/string_extensions.rb, line 65
def as_class(type)
  "#{gsub(/\s/, '_').camelize}#{type}".constantize
end