taza 0.9.1.2 → 0.9.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +6 -51
- data/README.md +1 -0
- data/bin/taza +2 -15
- data/lib/taza.rb +7 -0
- data/lib/taza/generators/flow_generator.rb +17 -0
- data/lib/taza/generators/page_generator.rb +29 -0
- data/lib/taza/generators/partial_generator.rb +33 -0
- data/lib/taza/generators/project_generator.rb +30 -0
- data/lib/taza/generators/site_generator.rb +26 -0
- data/lib/taza/generators/taza_generators.rb +18 -0
- data/lib/taza/generators/templates/flow/flow.rb.tt +9 -0
- data/lib/taza/generators/templates/page/page.rb.tt +8 -0
- data/{generators/page/templates/functional_page_spec.rb.erb → lib/taza/generators/templates/page/page_spec.rb.tt} +2 -2
- data/lib/taza/generators/templates/partial/partial.rb.tt +8 -0
- data/lib/{app_generators/taza/templates/Gemfile.erb → taza/generators/templates/project/Gemfile.tt} +1 -1
- data/lib/taza/generators/templates/project/Rakefile.tt +13 -0
- data/lib/taza/generators/templates/project/config.yml.tt +3 -0
- data/lib/{app_generators/taza/templates → taza/generators/templates/project}/console.cmd.erb +0 -0
- data/lib/{app_generators/taza/templates → taza/generators/templates/project}/console.erb +0 -0
- data/lib/{app_generators/taza/templates/spec_helper.rb.erb → taza/generators/templates/project/spec_helper.rb.tt} +0 -0
- data/lib/taza/generators/templates/project/taza.tt +3 -0
- data/lib/taza/generators/templates/site/site.rb.tt +10 -0
- data/lib/taza/generators/templates/site/site.yml.tt +3 -0
- data/lib/taza/page.rb +7 -2
- data/lib/taza/site.rb +1 -1
- data/lib/taza/version.rb +1 -1
- data/spec/generators/flow_generator_spec.rb +26 -0
- data/spec/generators/page_generator_spec.rb +53 -0
- data/spec/generators/partial_generator_spec.rb +26 -0
- data/spec/generators/project_generator_spec.rb +76 -0
- data/spec/generators/site_generator_spec.rb +57 -0
- data/spec/{taza_bin_spec.rb → generators/taza_bin_spec.rb} +0 -0
- data/spec/spec_helper.rb +27 -2
- data/spec/{array_spec.rb → taza/array_spec.rb} +0 -0
- data/spec/{browser_spec.rb → taza/browser_spec.rb} +5 -3
- data/spec/{entity_spec.rb → taza/entity_spec.rb} +0 -0
- data/spec/{fixture_spec.rb → taza/fixture_spec.rb} +2 -1
- data/spec/{fixtures_spec.rb → taza/fixtures_spec.rb} +0 -0
- data/spec/{hash_spec.rb → taza/hash_spec.rb} +0 -0
- data/spec/{page_module_spec.rb → taza/page_module_spec.rb} +0 -0
- data/spec/{page_spec.rb → taza/page_spec.rb} +5 -1
- data/spec/{settings_spec.rb → taza/settings_spec.rb} +12 -12
- data/spec/{site_fixtures_spec.rb → taza/site_fixtures_spec.rb} +0 -0
- data/spec/{site_spec.rb → taza/site_spec.rb} +8 -11
- data/spec/{string_spec.rb → taza/string_spec.rb} +0 -0
- data/spec/{taza_tasks_spec.rb → taza/taza_tasks_spec.rb} +8 -9
- data/taza.gemspec +5 -6
- metadata +145 -110
- data/generators/flow/flow_generator.rb +0 -57
- data/generators/flow/templates/flow.rb.erb +0 -9
- data/generators/page/page_generator.rb +0 -58
- data/generators/page/templates/page.rb.erb +0 -8
- data/generators/partial/partial_generator.rb +0 -57
- data/generators/partial/templates/partial.rb.erb +0 -7
- data/generators/site/site_generator.rb +0 -57
- data/generators/site/templates/site.rb.erb +0 -10
- data/generators/site/templates/site.yml.erb +0 -3
- data/lib/app_generators/taza/taza_generator.rb +0 -76
- data/lib/app_generators/taza/templates/config.yml.erb +0 -3
- data/lib/app_generators/taza/templates/rakefile.rb.erb +0 -13
- data/spec/flow_generator_spec.rb +0 -47
- data/spec/page_generator_spec.rb +0 -56
- data/spec/partial_generator_spec.rb +0 -38
- data/spec/project_generator_spec.rb +0 -42
- data/spec/site_generator_spec.rb +0 -56
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c05746f8d89bc25143d61f5dc71b933368cd5917
|
4
|
+
data.tar.gz: 16c6e84a4298dcf6ad1b30bc1f8ebff60d60998c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 85d2b1132eea00c081bbd6689bda7eb2f279556b38d6dee5919bfb56d71b2a6b271c1196a41ec6ae2a1c3fe89a423f214de5b5e3095c82b760aa69dc5e3566aa
|
7
|
+
data.tar.gz: e48081c6fa2992dfd2cab3f09f2ecbd6ba8f02295ae747ccc7486dffce969c30dc8e22e33bebd9dd80022dde7bd751a3f30883227362dd9a9fab32e81abe277c
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,59 +1,14 @@
|
|
1
|
+
language: ruby
|
1
2
|
script: "bundle exec rspec spec"
|
2
3
|
rvm:
|
3
|
-
- 1.8.7
|
4
|
-
- 1.9.2
|
5
4
|
- 1.9.3
|
5
|
+
- 2.0.0
|
6
|
+
- 2.1.0
|
6
7
|
- ruby-head
|
7
|
-
-
|
8
|
-
- jruby
|
8
|
+
- jruby-19mode
|
9
|
+
- jruby-head
|
9
10
|
- rbx
|
10
|
-
env:
|
11
|
-
-
|
12
|
-
- JRUBY_OPTS="--1.8"
|
13
|
-
- JRUBY_OPTS="--1.9"
|
14
|
-
matrix:
|
15
|
-
exclude:
|
16
|
-
# exclude 1.8.7
|
17
|
-
- rvm: 1.8.7
|
18
|
-
env: JRUBY_OPTS="--1.8"
|
19
|
-
- rvm: 1.8.7
|
20
|
-
env: JRUBY_OPTS="--1.9"
|
21
|
-
|
22
|
-
# exclude 1.9.2
|
23
|
-
- rvm: 1.9.2
|
24
|
-
env: JRUBY_OPTS="--1.8"
|
25
|
-
- rvm: 1.9.2
|
26
|
-
env: JRUBY_OPTS="--1.9"
|
27
|
-
|
28
|
-
# exclude 1.9.3
|
29
|
-
- rvm: 1.9.3
|
30
|
-
env: JRUBY_OPTS="--1.8"
|
31
|
-
- rvm: 1.9.3
|
32
|
-
env: JRUBY_OPTS="--1.9"
|
33
|
-
|
34
|
-
# exclude ruby-head
|
35
|
-
- rvm: ruby-head
|
36
|
-
env: JRUBY_OPTS="--1.8"
|
37
|
-
- rvm: ruby-head
|
38
|
-
env: JRUBY_OPTS="--1.9"
|
39
|
-
|
40
|
-
# exclude ree
|
41
|
-
- rvm: ree
|
42
|
-
env: JRUBY_OPTS="--1.8"
|
43
|
-
- rvm: ree
|
44
|
-
env: JRUBY_OPTS="--1.9"
|
45
|
-
|
46
|
-
# exclude jruby
|
47
|
-
- rvm: jruby
|
48
|
-
env:
|
49
|
-
- rvm: jruby
|
50
|
-
env: JRUBY_OPTS="--1.9"
|
51
|
-
|
52
|
-
# exclude rbx
|
53
|
-
- rvm: rbx
|
54
|
-
env: JRUBY_OPTS="--1.8"
|
55
|
-
- rvm: rbx
|
56
|
-
env: JRUBY_OPTS="--1.9"
|
57
11
|
notifications:
|
58
12
|
email:
|
59
13
|
- pnascimento@gmail.com
|
14
|
+
- oriekenjr@gmail.com
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
#taza
|
2
2
|
[](http://travis-ci.org/hammernight/taza)
|
3
|
+
[](https://codeclimate.com/github/hammernight/taza)
|
3
4
|
|
4
5
|
* https://github.com/hammernight/taza
|
5
6
|
* Wiki: http://github.com/scudco/taza/wikis
|
data/bin/taza
CHANGED
@@ -1,17 +1,4 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
require_relative '../lib/taza/generators/taza_generators'
|
2
3
|
|
3
|
-
|
4
|
-
require 'rubigen'
|
5
|
-
|
6
|
-
if %w(-v --version).include? ARGV.first
|
7
|
-
require 'taza'
|
8
|
-
puts "#{File.basename($0)} #{Taza::VERSION}"
|
9
|
-
exit(0)
|
10
|
-
end
|
11
|
-
|
12
|
-
require 'rubigen/scripts/generate'
|
13
|
-
source = RubiGen::PathSource.new(:application,
|
14
|
-
File.join(File.dirname(__FILE__), "../lib/app_generators"))
|
15
|
-
RubiGen::Base.reset_sources
|
16
|
-
RubiGen::Base.append_sources source
|
17
|
-
RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'taza')
|
4
|
+
Taza::TazaGenerators.start
|
data/lib/taza.rb
CHANGED
@@ -14,6 +14,13 @@ require 'extensions/hash'
|
|
14
14
|
require 'extensions/array'
|
15
15
|
require 'formatters/failing_examples_formatter'
|
16
16
|
|
17
|
+
#generators
|
18
|
+
require_relative 'taza/generators/project_generator'
|
19
|
+
require_relative 'taza/generators/site_generator'
|
20
|
+
require_relative 'taza/generators/page_generator'
|
21
|
+
require_relative 'taza/generators/partial_generator'
|
22
|
+
require_relative 'taza/generators/flow_generator'
|
23
|
+
|
17
24
|
module ForwardInitialization
|
18
25
|
module ClassMethods
|
19
26
|
def new(*args,&block)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'active_support/all'
|
3
|
+
|
4
|
+
module Taza
|
5
|
+
class FlowGenerator < PartialGenerator
|
6
|
+
|
7
|
+
desc "This will generate your Taza flow. Example: taza flow checkout foo"
|
8
|
+
def flow
|
9
|
+
partial
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
def create_partial
|
14
|
+
template('templates/flow/flow.rb.tt', "lib/sites/#{name}/flows/#{partial_name}.rb")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'active_support/all'
|
3
|
+
|
4
|
+
module Taza
|
5
|
+
class PageGenerator < Thor::Group
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
argument :page_name
|
9
|
+
argument :site_name
|
10
|
+
|
11
|
+
def self.source_root
|
12
|
+
File.dirname(__FILE__)
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "This will generate a Taza page for your site. Example: taza page home foo"
|
16
|
+
def page
|
17
|
+
name = site_name.underscore
|
18
|
+
|
19
|
+
if File.directory?("lib/sites/#{name}")
|
20
|
+
template('templates/page/page.rb.tt', "lib/sites/#{name}/pages/#{page_name}_page.rb")
|
21
|
+
template('templates/page/page_spec.rb.tt', "spec/isolation/#{page_name}_page_spec.rb")
|
22
|
+
else
|
23
|
+
say "No such site #{name} exists! ", :red
|
24
|
+
say "Please run 'taza create #{name}'", :green
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'active_support/all'
|
3
|
+
|
4
|
+
module Taza
|
5
|
+
class PartialGenerator < Thor::Group
|
6
|
+
attr_reader :name
|
7
|
+
include Thor::Actions
|
8
|
+
|
9
|
+
argument :partial_name
|
10
|
+
argument :site_name
|
11
|
+
|
12
|
+
def self.source_root
|
13
|
+
File.dirname(__FILE__)
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "This will generate your Taza partial. Example: taza partial navigation foo"
|
17
|
+
def partial
|
18
|
+
@name = site_name.underscore
|
19
|
+
|
20
|
+
if File.directory?("lib/sites/#{name}")
|
21
|
+
create_partial
|
22
|
+
else
|
23
|
+
say "No such site #{name} exists! ", :red
|
24
|
+
say "Please run 'taza create #{name}'", :green
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
def create_partial
|
30
|
+
template('templates/partial/partial.rb.tt', "lib/sites/#{name}/pages/partials/#{partial_name}.rb")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'active_support/all'
|
3
|
+
|
4
|
+
module Taza
|
5
|
+
class ProjectGenerator < Thor::Group
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
argument :site_name
|
9
|
+
argument :driver, :default => 'watir-webdriver'
|
10
|
+
argument :browser, :default => 'firefox'
|
11
|
+
|
12
|
+
def self.source_root
|
13
|
+
File.dirname(__FILE__)
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "This creates the Taza project structure. Example taza create foo"
|
17
|
+
def create
|
18
|
+
template('templates/project/Gemfile.tt', 'Gemfile') unless File.exists? 'Gemfile'
|
19
|
+
template('templates/project/Rakefile.tt', 'Rakefile') unless File.exists? 'Rakefile'
|
20
|
+
template('templates/project/config.yml.tt', 'config/config.yml') unless File.exists? 'config/config.yml'
|
21
|
+
empty_directory 'lib/sites'
|
22
|
+
empty_directory 'spec'
|
23
|
+
template('templates/project/spec_helper.rb.tt', 'spec/spec_helper.rb') unless File.exists? 'spec/spec_helper.rb'
|
24
|
+
empty_directory 'spec/isolation'
|
25
|
+
empty_directory 'spec/integration'
|
26
|
+
empty_directory 'bin'
|
27
|
+
template('templates/project/taza.tt', 'bin/taza') unless File.exists? 'bin/taza'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'active_support/all'
|
3
|
+
|
4
|
+
module Taza
|
5
|
+
class SiteGenerator < Thor::Group
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
argument :site_name
|
9
|
+
|
10
|
+
def self.source_root
|
11
|
+
File.dirname(__FILE__)
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "This will generate your Taza site. Example: taza site foo"
|
15
|
+
def site
|
16
|
+
name = site_name.underscore
|
17
|
+
|
18
|
+
template('templates/site/site.yml.tt', "config/#{name}.yml")
|
19
|
+
template('templates/site/site.rb.tt', "lib/sites/#{name}.rb")
|
20
|
+
empty_directory "lib/sites/#{name}"
|
21
|
+
empty_directory "lib/sites/#{name}/flows"
|
22
|
+
empty_directory "lib/sites/#{name}/pages"
|
23
|
+
empty_directory "lib/sites/#{name}/pages/partials"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
require_relative 'flow_generator'
|
4
|
+
require_relative 'partial_generator'
|
5
|
+
require_relative 'page_generator'
|
6
|
+
require_relative 'site_generator'
|
7
|
+
require_relative 'project_generator'
|
8
|
+
|
9
|
+
module Taza
|
10
|
+
class TazaGenerators < Thor
|
11
|
+
|
12
|
+
register(Taza::ProjectGenerator, 'create', "create SITE_NAME", 'This creates the Taza structure. Example: taza create foo')
|
13
|
+
register(Taza::SiteGenerator, 'site', 'site SITE_NAME', 'This will generate your Taza site. Example: taza site foo')
|
14
|
+
register(Taza::PageGenerator, 'page', 'page PAGE_NAME SITE_NAME', 'This will generate your Taza page. Example: taza page checkout foo')
|
15
|
+
register(Taza::PartialGenerator, 'partial', 'partial PARTIAL_NAME SITE_NAME', 'This will generate your Taza partial. Example: taza partial navigation foo')
|
16
|
+
register(Taza::FlowGenerator, 'flow', 'flow FLOW_NAME SITE_NAME', 'This will generate your Taza flow. Example: taza flow checkout foo')
|
17
|
+
end
|
18
|
+
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require '<%= site_name.underscore %>'
|
3
3
|
|
4
|
-
describe "<%=
|
4
|
+
describe "<%= page_name.camelize %>Page" do
|
5
5
|
it "should fail because you haven't written any tests yet" do
|
6
|
-
false.
|
6
|
+
expect(false).to be_true
|
7
7
|
end
|
8
8
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
require 'taza/tasks'
|
4
|
+
|
5
|
+
Taza::Rake::Tasks.new do |t|
|
6
|
+
file_hole = FileUtils.mkdir_p "artifacts/#{Time.now.to_i}"
|
7
|
+
t.spec_opts = [
|
8
|
+
"--require taza",
|
9
|
+
"--format html --out #{file_hole}/index.html",
|
10
|
+
"--format p",
|
11
|
+
"--format FailingExamplesFormatter --out #{file_hole}/failing_examples.txt"
|
12
|
+
]
|
13
|
+
end
|
data/lib/{app_generators/taza/templates → taza/generators/templates/project}/console.cmd.erb
RENAMED
File without changes
|
File without changes
|
File without changes
|
data/lib/taza/page.rb
CHANGED
@@ -32,6 +32,10 @@ module Taza
|
|
32
32
|
# end
|
33
33
|
# homepage.foo.click
|
34
34
|
def self.element(name,&block)
|
35
|
+
if name.nil?
|
36
|
+
raise ElementError, "Element name can not be nil"
|
37
|
+
end
|
38
|
+
|
35
39
|
if !@module.nil?
|
36
40
|
self.elements[@module] = Hash.new if self.elements[@module].nil?
|
37
41
|
self.elements[@module] = self.elements[@module].merge({ name => block })
|
@@ -42,7 +46,7 @@ module Taza
|
|
42
46
|
end
|
43
47
|
end
|
44
48
|
|
45
|
-
# A filter for
|
49
|
+
# A filter for element(s) on a page
|
46
50
|
# Example:
|
47
51
|
# class HomePage < Taza::Page
|
48
52
|
# element(:foo) {browser.element_by_xpath('some xpath')}
|
@@ -72,6 +76,7 @@ module Taza
|
|
72
76
|
end
|
73
77
|
|
74
78
|
def self.page_module(name,&block)
|
79
|
+
puts "Warning: page_module is deprecated; use a partial instead."
|
75
80
|
@module = name
|
76
81
|
yield(block)
|
77
82
|
@module = nil
|
@@ -91,7 +96,7 @@ module Taza
|
|
91
96
|
|
92
97
|
def add_element_methods(page_module = nil) # :nodoc:
|
93
98
|
self.class.elements.each do |element_name,element_block|
|
94
|
-
if
|
99
|
+
if page_module == element_name
|
95
100
|
element_block.each do |key,value|
|
96
101
|
filters = self.class.filters[element_name] + self.class.filters[:all] + self.class.filters[key]
|
97
102
|
add_element_method(:filters => filters, :element_name => key, :element_block => value)
|
data/lib/taza/site.rb
CHANGED
@@ -60,7 +60,7 @@ module Taza
|
|
60
60
|
@browser = Browser.create(config)
|
61
61
|
@i_created_browser = true
|
62
62
|
end
|
63
|
-
@browser.goto(params[:url] || config[:url])
|
63
|
+
@browser.goto(params[:url] || config[:url]) unless params[:url] == false
|
64
64
|
execute_block_and_close_browser(browser,&block) if block_given?
|
65
65
|
end
|
66
66
|
|
data/lib/taza/version.rb
CHANGED