taza 0.9.1.2 → 0.9.2.0

Sign up to get free protection for your applications and to get access to all the features.
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