Class: WatirSplash::Generators::Page

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/watirsplash/generators/page.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.source_rootObject



14
15
16
# File 'lib/watirsplash/generators/page.rb', line 14

def self.source_root
  File.dirname(__FILE__) + "/templates"
end

Instance Method Details

#formatted_namespaceObject



27
28
29
# File 'lib/watirsplash/generators/page.rb', line 27

def formatted_namespace
  Thor::Util.snake_case(namespace)
end

#formatted_page_nameObject



23
24
25
# File 'lib/watirsplash/generators/page.rb', line 23

def formatted_page_name
  Thor::Util.snake_case(page_name)
end

#generateObject



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_bodyObject



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_pathObject



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_bodyObject



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