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
@@ -1,57 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rubigen'
|
3
|
-
require 'active_support'
|
4
|
-
|
5
|
-
class FlowGenerator < RubiGen::Base
|
6
|
-
default_options :author => nil
|
7
|
-
attr_reader :site_name,:name
|
8
|
-
|
9
|
-
def initialize(runtime_args, runtime_options = {})
|
10
|
-
super
|
11
|
-
usage if args.size != 2
|
12
|
-
@name = args.shift
|
13
|
-
@site_name=args.shift
|
14
|
-
check_if_site_exists
|
15
|
-
extract_options
|
16
|
-
end
|
17
|
-
|
18
|
-
def check_if_site_exists
|
19
|
-
unless File.directory?(File.join(destination_root,'lib','sites',site_name.underscore))
|
20
|
-
$stderr.puts "******No such site #{site_name} exists.******"
|
21
|
-
usage
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def manifest
|
26
|
-
record do |m|
|
27
|
-
m.template "flow.rb.erb", File.join('lib','sites', site_name.underscore, "flows", "#{name.underscore}.rb")
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
protected
|
32
|
-
def banner
|
33
|
-
<<-EOS
|
34
|
-
Creates a taza flow for a given taza site, site you are making a flow for must exist first.
|
35
|
-
|
36
|
-
USAGE: #{$0} #{spec.name} flow_name site_name
|
37
|
-
EOS
|
38
|
-
end
|
39
|
-
|
40
|
-
def add_options!(opts)
|
41
|
-
# opts.separator ''
|
42
|
-
# opts.separator 'Options:'
|
43
|
-
# For each option below, place the default
|
44
|
-
# at the top of the file next to "default_options"
|
45
|
-
# opts.on("-a", "--author=\"Your Name\"", String,
|
46
|
-
# "Some comment about this option",
|
47
|
-
# "Default: none") { |options[:author]| }
|
48
|
-
# opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
49
|
-
end
|
50
|
-
|
51
|
-
def extract_options
|
52
|
-
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
53
|
-
# Templates can access these value via the attr_reader-generated methods, but not the
|
54
|
-
# raw instance variable value.
|
55
|
-
# @author = options[:author]
|
56
|
-
end
|
57
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rubigen'
|
3
|
-
require 'active_support'
|
4
|
-
|
5
|
-
class PageGenerator < RubiGen::Base
|
6
|
-
default_options :author => nil
|
7
|
-
attr_reader :site_name,:name
|
8
|
-
|
9
|
-
def initialize(runtime_args, runtime_options = {})
|
10
|
-
super
|
11
|
-
usage if args.size != 2
|
12
|
-
@name = args.shift
|
13
|
-
@site_name=args.shift
|
14
|
-
check_if_site_exists
|
15
|
-
extract_options
|
16
|
-
end
|
17
|
-
|
18
|
-
def check_if_site_exists
|
19
|
-
unless File.directory?(File.join(destination_root,'lib','sites',site_name.underscore))
|
20
|
-
$stderr.puts "******No such site #{site_name} exists.******"
|
21
|
-
usage
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def manifest
|
26
|
-
record do |m|
|
27
|
-
m.template "page.rb.erb", File.join('lib','sites', site_name.underscore, "pages", "#{name.underscore}_page.rb")
|
28
|
-
m.template "functional_page_spec.rb.erb", File.join('spec','isolation',site_name.underscore,"#{name.underscore}_page_spec.rb")
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
protected
|
33
|
-
def banner
|
34
|
-
<<-EOS
|
35
|
-
Creates a taza page for a given taza site, site you are making a page for must exist first.
|
36
|
-
|
37
|
-
USAGE: #{$0} #{spec.name} page_name site_name
|
38
|
-
EOS
|
39
|
-
end
|
40
|
-
|
41
|
-
def add_options!(opts)
|
42
|
-
# opts.separator ''
|
43
|
-
# opts.separator 'Options:'
|
44
|
-
# For each option below, place the default
|
45
|
-
# at the top of the file next to "default_options"
|
46
|
-
# opts.on("-a", "--author=\"Your Name\"", String,
|
47
|
-
# "Some comment about this option",
|
48
|
-
# "Default: none") { |options[:author]| }
|
49
|
-
# opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
50
|
-
end
|
51
|
-
|
52
|
-
def extract_options
|
53
|
-
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
54
|
-
# Templates can access these value via the attr_reader-generated methods, but not the
|
55
|
-
# raw instance variable value.
|
56
|
-
# @author = options[:author]
|
57
|
-
end
|
58
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rubigen'
|
3
|
-
require 'active_support'
|
4
|
-
|
5
|
-
class PartialGenerator < RubiGen::Base
|
6
|
-
default_options :author => nil
|
7
|
-
attr_reader :site_name,:name
|
8
|
-
|
9
|
-
def initialize(runtime_args, runtime_options = {})
|
10
|
-
super
|
11
|
-
usage if args.size != 2
|
12
|
-
@name = args.shift
|
13
|
-
@site_name=args.shift
|
14
|
-
check_if_site_exists
|
15
|
-
extract_options
|
16
|
-
end
|
17
|
-
|
18
|
-
def check_if_site_exists
|
19
|
-
unless File.directory?(File.join(destination_root,'lib','sites',site_name.underscore))
|
20
|
-
$stderr.puts "******No such site #{site_name} exists.******"
|
21
|
-
usage
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def manifest
|
26
|
-
record do |m|
|
27
|
-
m.template "partial.rb.erb", File.join('lib','sites', site_name.underscore, "pages", "partials", "#{name.underscore}.rb")
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
protected
|
32
|
-
def banner
|
33
|
-
<<-EOS
|
34
|
-
Creates a taza partial for a given taza site, site you are making a partial for must exist first.
|
35
|
-
|
36
|
-
USAGE: #{$0} #{spec.name} partial_name site_name
|
37
|
-
EOS
|
38
|
-
end
|
39
|
-
|
40
|
-
def add_options!(opts)
|
41
|
-
# opts.separator ''
|
42
|
-
# opts.separator 'Options:'
|
43
|
-
# For each option below, place the default
|
44
|
-
# at the top of the file next to "default_options"
|
45
|
-
# opts.on("-a", "--author=\"Your Name\"", String,
|
46
|
-
# "Some comment about this option",
|
47
|
-
# "Default: none") { |options[:author]| }
|
48
|
-
# opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
49
|
-
end
|
50
|
-
|
51
|
-
def extract_options
|
52
|
-
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
53
|
-
# Templates can access these value via the attr_reader-generated methods, but not the
|
54
|
-
# raw instance variable value.
|
55
|
-
# @author = options[:author]
|
56
|
-
end
|
57
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rubigen'
|
3
|
-
require 'active_support'
|
4
|
-
|
5
|
-
class SiteGenerator < RubiGen::Base
|
6
|
-
default_options :author => nil
|
7
|
-
attr_reader :name
|
8
|
-
|
9
|
-
def initialize(runtime_args, runtime_options = {})
|
10
|
-
super
|
11
|
-
usage if args.empty?
|
12
|
-
@name = args.shift
|
13
|
-
extract_options
|
14
|
-
end
|
15
|
-
|
16
|
-
def manifest
|
17
|
-
record do |m|
|
18
|
-
site_path = File.join('lib','sites')
|
19
|
-
m.template "site.rb.erb", File.join(site_path,"#{name.underscore}.rb")
|
20
|
-
m.directory File.join(site_path,"#{name.underscore}")
|
21
|
-
m.directory File.join(site_path,("#{name.underscore}"),"flows")
|
22
|
-
m.directory File.join(site_path,("#{name.underscore}"),"pages")
|
23
|
-
m.directory File.join(site_path,("#{name.underscore}"),"pages","partials")
|
24
|
-
m.directory File.join('spec','isolation',name.underscore)
|
25
|
-
m.directory File.join('spec','support',name.underscore)
|
26
|
-
m.template "site.yml.erb", File.join('config',"#{name.underscore}.yml")
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
protected
|
31
|
-
def banner
|
32
|
-
<<-EOS
|
33
|
-
Creates a taza site.
|
34
|
-
|
35
|
-
USAGE: #{$0} #{spec.name} name
|
36
|
-
EOS
|
37
|
-
end
|
38
|
-
|
39
|
-
def add_options!(opts)
|
40
|
-
# opts.separator ''
|
41
|
-
# opts.separator 'Options:'
|
42
|
-
# For each option below, place the default
|
43
|
-
# at the top of the file next to "default_options"
|
44
|
-
# opts.on("-a", "--author=\"Your Name\"", String,
|
45
|
-
# "Some comment about this option",
|
46
|
-
# "Default: none") { |options[:author]| }
|
47
|
-
# opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
48
|
-
end
|
49
|
-
|
50
|
-
def extract_options
|
51
|
-
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
52
|
-
# Templates can access these value via the attr_reader-generated methods, but not the
|
53
|
-
# raw instance variable value.
|
54
|
-
# @author = options[:author]
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rubigen'
|
3
|
-
require 'taza'
|
4
|
-
class TazaGenerator < RubiGen::Base
|
5
|
-
DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
|
6
|
-
Config::CONFIG['ruby_install_name'])
|
7
|
-
|
8
|
-
default_options :author => nil
|
9
|
-
|
10
|
-
attr_reader :name
|
11
|
-
|
12
|
-
def initialize(runtime_args, runtime_options = {})
|
13
|
-
super
|
14
|
-
usage if args.empty?
|
15
|
-
@destination_root = File.expand_path(args.shift)
|
16
|
-
@name = base_name
|
17
|
-
extract_options
|
18
|
-
end
|
19
|
-
|
20
|
-
def manifest
|
21
|
-
record do |m|
|
22
|
-
create_directories(m)
|
23
|
-
m.template "rakefile.rb.erb", "Rakefile"
|
24
|
-
m.template "Gemfile.erb", "Gemfile"
|
25
|
-
m.template "config.yml.erb", File.join("config","config.yml")
|
26
|
-
m.template "spec_helper.rb.erb", File.join("spec","spec_helper.rb")
|
27
|
-
m.dependency "install_rubigen_scripts", [destination_root, 'taza'],
|
28
|
-
:shebang => options[:shebang], :collision => :force
|
29
|
-
m.template "console.erb", File.join("script","console"), {:chmod => 0755}
|
30
|
-
m.template "console.cmd.erb", File.join("script","console.cmd")
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def create_directories(m)
|
35
|
-
BASEDIRS.each { |path| m.directory path }
|
36
|
-
m.directory File.join('lib','sites')
|
37
|
-
m.directory File.join('spec','isolation')
|
38
|
-
m.directory File.join('spec','integration')
|
39
|
-
m.directory File.join('spec','story')
|
40
|
-
m.directory 'script'
|
41
|
-
end
|
42
|
-
|
43
|
-
protected
|
44
|
-
def banner
|
45
|
-
<<-EOS
|
46
|
-
USAGE: #{spec.name} path/for/your/test/project [options]
|
47
|
-
EOS
|
48
|
-
end
|
49
|
-
|
50
|
-
def add_options!(opts)
|
51
|
-
opts.separator ''
|
52
|
-
opts.separator 'Options:'
|
53
|
-
# For each option below, place the default
|
54
|
-
# at the top of the file next to "default_options"
|
55
|
-
# opts.on("-a", "--author=\"Your Name\"", String,
|
56
|
-
# "Some comment about this option",
|
57
|
-
# "Default: none") { |options[:author]| }
|
58
|
-
opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
59
|
-
end
|
60
|
-
|
61
|
-
def extract_options
|
62
|
-
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
63
|
-
# Templates can access these value via the attr_reader-generated methods, but not the
|
64
|
-
# raw instance variable value.
|
65
|
-
# @author = options[:author]
|
66
|
-
end
|
67
|
-
|
68
|
-
# Installation skeleton. Intermediate directories are automatically
|
69
|
-
# created so don't sweat their absence here.
|
70
|
-
BASEDIRS = %w(
|
71
|
-
lib
|
72
|
-
config
|
73
|
-
script
|
74
|
-
spec
|
75
|
-
)
|
76
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
<%= "#Generated at #{Time.now}" %>
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
require 'bundler/setup'
|
5
|
-
require 'taza/tasks'
|
6
|
-
|
7
|
-
Taza::Rake::Tasks.new do |t|
|
8
|
-
file_hole = FileUtils.mkdir_p "artifacts/#{Time.now.to_i}"
|
9
|
-
t.spec_opts = ["--require taza",
|
10
|
-
"--format html --out #{file_hole}/index.html",
|
11
|
-
"--format p" ,
|
12
|
-
"--format FailingExamplesFormatter --out #{file_hole}/failing_examples.txt"]
|
13
|
-
end
|
data/spec/flow_generator_spec.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
class Taza::Site
|
4
|
-
def flows
|
5
|
-
flows = []
|
6
|
-
Dir.glob(File.join(path,'flows','*.rb')).each do |file|
|
7
|
-
require file
|
8
|
-
|
9
|
-
flows << "#{self.class.parent.to_s}::#{File.basename(file,'.rb').camelize}".constantize
|
10
|
-
end
|
11
|
-
flows
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "Flow Generation" do
|
16
|
-
include RubiGen::GeneratorTestHelper
|
17
|
-
include Helpers::Generator
|
18
|
-
include Helpers::Taza
|
19
|
-
|
20
|
-
before :all do
|
21
|
-
@site_name = "Foo"
|
22
|
-
@site_folder = File.join(PROJECT_FOLDER,'lib','sites',"gap")
|
23
|
-
@site_file = File.join(PROJECT_FOLDER,'lib','sites',"gap.rb")
|
24
|
-
@flow_name = "CheckOut"
|
25
|
-
end
|
26
|
-
|
27
|
-
before :each do
|
28
|
-
run_generator('taza', [APP_ROOT], generator_sources)
|
29
|
-
@site_class = generate_site(@site_name)
|
30
|
-
end
|
31
|
-
|
32
|
-
after :each do
|
33
|
-
bare_teardown
|
34
|
-
end
|
35
|
-
|
36
|
-
it "should give you usage if you do not give two arguments" do
|
37
|
-
FlowGenerator.any_instance.expects(:usage)
|
38
|
-
lambda { run_generator('flow', [@flow_name], generator_sources) }.should raise_error
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should give you usage if you give a site that does not exist" do
|
42
|
-
FlowGenerator.any_instance.expects(:usage)
|
43
|
-
$stderr.expects(:puts).with(regexp_matches(/NoSuchSite/))
|
44
|
-
lambda { run_generator('flow', [@flow_name,"NoSuchSite"], generator_sources) }.should raise_error
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
data/spec/page_generator_spec.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'rubygems'
|
3
|
-
require 'fileutils'
|
4
|
-
require 'taza/page'
|
5
|
-
|
6
|
-
describe "Page Generation" do
|
7
|
-
include RubiGen::GeneratorTestHelper
|
8
|
-
include Helpers::Generator
|
9
|
-
include Helpers::Taza
|
10
|
-
|
11
|
-
before :all do
|
12
|
-
@page_name = "CheckOut"
|
13
|
-
end
|
14
|
-
|
15
|
-
before :each do
|
16
|
-
run_generator('taza', [APP_ROOT], generator_sources)
|
17
|
-
@site_class = generate_site('Gap')
|
18
|
-
end
|
19
|
-
|
20
|
-
after :each do
|
21
|
-
bare_teardown
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should give you usage if you do not give two arguments" do
|
25
|
-
PageGenerator.any_instance.expects(:usage)
|
26
|
-
lambda { run_generator('page', [@page_name], generator_sources) }.should raise_error
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should give you usage if you give a site that does not exist" do
|
30
|
-
PageGenerator.any_instance.expects(:usage)
|
31
|
-
$stderr.expects(:puts).with(regexp_matches(/NoSuchSite/))
|
32
|
-
lambda { run_generator('page', [@page_name,"NoSuchSite"], generator_sources) }.should raise_error
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should generate a page spec that can be required" do
|
36
|
-
run_generator('page', [@page_name,@site_class.to_s], generator_sources)
|
37
|
-
page_functional_spec = File.join(PROJECT_FOLDER,'spec','isolation',@site_class.to_s.underscore,'check_out_page_spec.rb')
|
38
|
-
system("ruby -c #{page_functional_spec} > #{null_device}").should be_true
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should be able to access the generated page from the site" do
|
42
|
-
run_generator('page', [@page_name,@site_class.to_s], generator_sources)
|
43
|
-
stub_settings
|
44
|
-
stub_browser
|
45
|
-
@site_class.new.check_out_page
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should be able to access the generated page for its site" do
|
49
|
-
stub_browser
|
50
|
-
stub_settings
|
51
|
-
new_site_class = generate_site('Pag')
|
52
|
-
run_generator('page', [@page_name,@site_class.to_s], generator_sources)
|
53
|
-
run_generator('page', [@page_name,new_site_class.to_s], generator_sources)
|
54
|
-
new_site_class.new.check_out_page.class.should_not eql(@site_class.new.check_out_page.class)
|
55
|
-
end
|
56
|
-
end
|