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.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +6 -51
  4. data/README.md +1 -0
  5. data/bin/taza +2 -15
  6. data/lib/taza.rb +7 -0
  7. data/lib/taza/generators/flow_generator.rb +17 -0
  8. data/lib/taza/generators/page_generator.rb +29 -0
  9. data/lib/taza/generators/partial_generator.rb +33 -0
  10. data/lib/taza/generators/project_generator.rb +30 -0
  11. data/lib/taza/generators/site_generator.rb +26 -0
  12. data/lib/taza/generators/taza_generators.rb +18 -0
  13. data/lib/taza/generators/templates/flow/flow.rb.tt +9 -0
  14. data/lib/taza/generators/templates/page/page.rb.tt +8 -0
  15. data/{generators/page/templates/functional_page_spec.rb.erb → lib/taza/generators/templates/page/page_spec.rb.tt} +2 -2
  16. data/lib/taza/generators/templates/partial/partial.rb.tt +8 -0
  17. data/lib/{app_generators/taza/templates/Gemfile.erb → taza/generators/templates/project/Gemfile.tt} +1 -1
  18. data/lib/taza/generators/templates/project/Rakefile.tt +13 -0
  19. data/lib/taza/generators/templates/project/config.yml.tt +3 -0
  20. data/lib/{app_generators/taza/templates → taza/generators/templates/project}/console.cmd.erb +0 -0
  21. data/lib/{app_generators/taza/templates → taza/generators/templates/project}/console.erb +0 -0
  22. data/lib/{app_generators/taza/templates/spec_helper.rb.erb → taza/generators/templates/project/spec_helper.rb.tt} +0 -0
  23. data/lib/taza/generators/templates/project/taza.tt +3 -0
  24. data/lib/taza/generators/templates/site/site.rb.tt +10 -0
  25. data/lib/taza/generators/templates/site/site.yml.tt +3 -0
  26. data/lib/taza/page.rb +7 -2
  27. data/lib/taza/site.rb +1 -1
  28. data/lib/taza/version.rb +1 -1
  29. data/spec/generators/flow_generator_spec.rb +26 -0
  30. data/spec/generators/page_generator_spec.rb +53 -0
  31. data/spec/generators/partial_generator_spec.rb +26 -0
  32. data/spec/generators/project_generator_spec.rb +76 -0
  33. data/spec/generators/site_generator_spec.rb +57 -0
  34. data/spec/{taza_bin_spec.rb → generators/taza_bin_spec.rb} +0 -0
  35. data/spec/spec_helper.rb +27 -2
  36. data/spec/{array_spec.rb → taza/array_spec.rb} +0 -0
  37. data/spec/{browser_spec.rb → taza/browser_spec.rb} +5 -3
  38. data/spec/{entity_spec.rb → taza/entity_spec.rb} +0 -0
  39. data/spec/{fixture_spec.rb → taza/fixture_spec.rb} +2 -1
  40. data/spec/{fixtures_spec.rb → taza/fixtures_spec.rb} +0 -0
  41. data/spec/{hash_spec.rb → taza/hash_spec.rb} +0 -0
  42. data/spec/{page_module_spec.rb → taza/page_module_spec.rb} +0 -0
  43. data/spec/{page_spec.rb → taza/page_spec.rb} +5 -1
  44. data/spec/{settings_spec.rb → taza/settings_spec.rb} +12 -12
  45. data/spec/{site_fixtures_spec.rb → taza/site_fixtures_spec.rb} +0 -0
  46. data/spec/{site_spec.rb → taza/site_spec.rb} +8 -11
  47. data/spec/{string_spec.rb → taza/string_spec.rb} +0 -0
  48. data/spec/{taza_tasks_spec.rb → taza/taza_tasks_spec.rb} +8 -9
  49. data/taza.gemspec +5 -6
  50. metadata +145 -110
  51. data/generators/flow/flow_generator.rb +0 -57
  52. data/generators/flow/templates/flow.rb.erb +0 -9
  53. data/generators/page/page_generator.rb +0 -58
  54. data/generators/page/templates/page.rb.erb +0 -8
  55. data/generators/partial/partial_generator.rb +0 -57
  56. data/generators/partial/templates/partial.rb.erb +0 -7
  57. data/generators/site/site_generator.rb +0 -57
  58. data/generators/site/templates/site.rb.erb +0 -10
  59. data/generators/site/templates/site.yml.erb +0 -3
  60. data/lib/app_generators/taza/taza_generator.rb +0 -76
  61. data/lib/app_generators/taza/templates/config.yml.erb +0 -3
  62. data/lib/app_generators/taza/templates/rakefile.rb.erb +0 -13
  63. data/spec/flow_generator_spec.rb +0 -47
  64. data/spec/page_generator_spec.rb +0 -56
  65. data/spec/partial_generator_spec.rb +0 -38
  66. data/spec/project_generator_spec.rb +0 -42
  67. 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,9 +0,0 @@
1
- require 'rubygems'
2
-
3
- module <%= site_name.camelize %>
4
- class <%= site_name.camelize %> < ::Taza::Site
5
- def <%= name.underscore %>_flow(params={})
6
-
7
- end
8
- end
9
- 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,8 +0,0 @@
1
- require 'rubygems'
2
- require 'taza/page'
3
-
4
- module <%= site_name.camelize %>
5
- class <%= name.camelize %>Page < ::Taza::Page
6
-
7
- end
8
- 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,7 +0,0 @@
1
- require 'rubygems'
2
-
3
- module <%= site_name.camelize %>
4
- class <%= name.camelize %> < ::Taza::Page
5
-
6
- end
7
- 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,10 +0,0 @@
1
- require 'rubygems'
2
- require 'taza'
3
-
4
- module <%= name.camelize %>
5
- include ForwardInitialization
6
-
7
- class <%= name.camelize %> < ::Taza::Site
8
-
9
- end
10
- end
@@ -1,3 +0,0 @@
1
- ---
2
- isolation:
3
- :url: http://www.google.com
@@ -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,3 +0,0 @@
1
- ---
2
- browser: firefox
3
- driver: selenium
@@ -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
@@ -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
@@ -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