Class: WatirSplash::Generators::Page
- Inherits:
-
Thor::Group
- Object
- Thor::Group
- WatirSplash::Generators::Page
- Includes:
- Thor::Actions
- Defined in:
- lib/watirsplash/generators/page.rb
Class Method Summary collapse
Instance Method Summary collapse
- #formatted_namespace ⇒ Object
- #formatted_page_name ⇒ Object
- #generate ⇒ Object
- #page_body ⇒ Object
- #page_path ⇒ Object
- #spec_body ⇒ Object
Class Method Details
.source_root ⇒ Object
14 15 16 |
# File 'lib/watirsplash/generators/page.rb', line 14 def self.source_root File.dirname(__FILE__) + "/templates" end |
Instance Method Details
#formatted_namespace ⇒ Object
27 28 29 |
# File 'lib/watirsplash/generators/page.rb', line 27 def formatted_namespace Thor::Util.snake_case(namespace) end |
#formatted_page_name ⇒ Object
23 24 25 |
# File 'lib/watirsplash/generators/page.rb', line 23 def formatted_page_name Thor::Util.snake_case(page_name) end |
#generate ⇒ Object
18 19 20 21 |
# File 'lib/watirsplash/generators/page.rb', line 18 def generate directory("page/lib", "lib") directory("page/spec", "spec") if create_spec end |
#page_body ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/watirsplash/generators/page.rb', line 31 def page_body str = "" str += %Q[url "#{url}" ] if url elements.each do |element| name, type, locator_name, locator_value = element.split(":") str += %Q[ def #{name} #{type}(:#{locator_name} => "#{locator_value}") end ] end str end |
#page_path ⇒ Object
58 59 60 |
# File 'lib/watirsplash/generators/page.rb', line 58 def page_path "#{Thor::Util.camel_case(namespace)}::Page::#{Thor::Util.camel_case(page_name)}" end |
#spec_body ⇒ Object
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/watirsplash/generators/page.rb', line 47 def spec_body str = "#{formatted_page_name}_page = #{page_path}.new#{$/}" elements.each do |element| name, type, locator_name, locator_value = element.split(":") str += %Q[ # #{formatted_page_name}_page.#{name} # => #{type}(:#{locator_name} => "#{locator_value}") ] end str end |