uat_director 0.0.1 → 0.0.5

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.
data/.gitignore CHANGED
@@ -19,3 +19,4 @@ rdoc
19
19
  pkg
20
20
 
21
21
  ## PROJECT::SPECIFIC
22
+ *.gemspec
data/README.rdoc CHANGED
@@ -1,4 +1,4 @@
1
- = uat_director
1
+ = uat_director
2
2
 
3
3
  Adds a toolbar to your rails app that directs your clients to test stories that have been marked as 'delivered' in Pivotal Tracker.
4
4
 
@@ -15,7 +15,7 @@ Create an initializer to configure your pivotal tracker api token and project id
15
15
  config.pivotal_tracker_project = 123456
16
16
  end
17
17
 
18
- Add the UatDirector::RackApp to your middleware stack:
18
+ Add the UatDirector::RackApp to your middleware stack (in your environment.rb file):
19
19
 
20
20
  require 'uat_director'
21
21
  config.middleware.use(UatDirector::RackApp)
@@ -28,7 +28,7 @@ The helper will insert a smidgeon of javascript (jquery is assumed to be availab
28
28
  Reload a page from your app and give it a whirl.
29
29
 
30
30
  == Note on Patches/Pull Requests
31
-
31
+
32
32
  * Fork the project.
33
33
  * Make your feature addition or bug fix.
34
34
  * Add tests for it. This is important so I don't break it in a
data/Rakefile CHANGED
@@ -12,8 +12,8 @@ begin
12
12
  gem.authors = ["Ben Askins"]
13
13
  # gem is a Gem::Specificatiohttp://www.rubygems.org/read/chapter/20 n... see http://www.rubygems.org/read/chapter/20 for additional settings
14
14
  gem.add_dependency("pivotal-tracker", ">= 0.1.3")
15
- gem.add_dependency("haml", ">= 3.0.9")
16
- gem.add_dependency("rack", ">= 1.1.0")
15
+ gem.add_dependency("haml", ">= 3.0.0")
16
+ gem.add_dependency("rack", ">= 1.0.0")
17
17
  end
18
18
  Jeweler::GemcutterTasks.new
19
19
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.5
@@ -1,36 +1,7 @@
1
1
  module UatDirector
2
2
  module Helpers
3
3
  def uat_director
4
- <<TDSCRIPT
5
- <script type="text/javascript">
6
- $("body").prepend("#{toolbar_html}");
7
- $("#uat-bar").css({width: "100%", background: "#000", "text-align": "right"});
8
- $("#uat-bar a.go").css({color: "#fff"});
9
- $("#uat-bar .pop-over").css({position: "absolute", right: "0px", clear: "none", "z-index": "99999999", background: "#fff", "text-align": "left"});
10
- $("#uat-bar .hide").css({display: "none"});
11
- $(function() {
12
- $("#uat-bar a.go").click(function() {
13
- $.ajax({
14
- url: '/uat_director',
15
- success: function(response) {
16
- $(".pop-over").append(response);
17
- $(".pop-over").slideDown();
18
- }
19
- });
20
- });
21
-
22
- $("#uat-bar a.close").click(function() {
23
- $(".pop-over").slideUp(function() {
24
- $(".pop-over ol").remove();
25
- });
26
- });
27
- });
28
- </script>
29
- TDSCRIPT
30
- end
31
-
32
- def toolbar_html
33
- "<div id='uat-bar'><a class='go' href='#'>Show me what to test</a><div class='pop-over hide'><a class='close' href='#'>close</a></div></div>"
4
+ "<script type='text/javascript' src='http://github.com/plus2/uat_director/raw/master/lib/uat_director/javascript/uat_director.js'></script>"
34
5
  end
35
6
  end
36
7
  end
@@ -0,0 +1,42 @@
1
+ (function($) {
2
+ $(function() {
3
+ var popOver;
4
+
5
+ $("body").prepend("<div id='uat-bar'><a class='go' href='#'>Show me what to test</a><div class='pop-over hide'></div></div>");
6
+ $("head").prepend("<link href='http://github.com/plus2/uat_director/raw/master/lib/uat_director/stylesheets/uat_director.css' media='screen' rel='stylesheet' type='text/css'>");
7
+
8
+ popOver = $("#uat-bar .pop-over");
9
+
10
+ $("#uat-bar a.go").toggle(function() {
11
+ $.ajax({
12
+ url: '/uat_director',
13
+ success: function(response) {
14
+ popOver.append(response);
15
+ popOver.slideDown();
16
+ }
17
+ });
18
+ },
19
+ function() {
20
+ popOver.slideUp(function() {
21
+ $(".pop-over ol").remove();
22
+ });
23
+ });
24
+
25
+ $("#uat-bar input.accept").live("change", function() {
26
+ var checkbox, storyLink, storyId;
27
+ checkbox = $(this);
28
+ storyId = checkbox.siblings(".story-id").html();
29
+ storyLink = checkbox.siblings("a");
30
+ if (this.checked) {
31
+ $.ajax({
32
+ method: "POST",
33
+ url: '/uat_director/' + storyId + '/accept',
34
+ success: function(response) {
35
+ storyLink.css("text-decoration", "line-through");
36
+ }
37
+ });
38
+ }
39
+ });
40
+
41
+ });
42
+ })(jQuery);
@@ -12,22 +12,38 @@ module UatDirector
12
12
  end
13
13
 
14
14
  def call(env)
15
- if env["PATH_INFO"] =~ /^\/uat_director/
15
+ case env["PATH_INFO"]
16
+ when /^\/uat_director$/
16
17
  index
18
+ when /^\/uat_director\/(.*)\/accept/
19
+ accept $1
17
20
  else
18
21
  @app.call(env)
19
22
  end
20
23
  end
21
24
 
22
25
  def index
23
- @project = PT::Project.find(config.pivotal_tracker_project)
24
- @stories = @project.stories.all(:current_state => "delivered")
26
+ @stories = project.stories.all(:current_state => "delivered")
25
27
  haml "index"
26
28
  end
27
29
 
30
+ def accept(pivotal_story_id)
31
+ story = project.stories.find(pivotal_story_id.to_i)
32
+ story.update(:current_state => 'accepted')
33
+ render "Accepted"
34
+ end
35
+
36
+ def project
37
+ @project ||= PT::Project.find(config.pivotal_tracker_project)
38
+ end
39
+
28
40
  def haml(file_name, options={})
29
41
  template = (template_root + "#{file_name}.haml").read
30
- [200, {"Content-Type" => "text/html"}, [Haml::Engine.new(template).render(self)]]
42
+ render Haml::Engine.new(template).render(self)
43
+ end
44
+
45
+ def render(html)
46
+ [200, {"Content-Type" => "text/html"}, [html]]
31
47
  end
32
48
 
33
49
  def template_root
@@ -0,0 +1,76 @@
1
+ #uat-bar {
2
+ width: 300px;
3
+ text-align: center;
4
+ position: absolute;
5
+ top: 0;
6
+ right: 5px;
7
+ padding: 0;
8
+ z-index: 2147483647;
9
+ }
10
+
11
+ #uat-bar a:link, #uat-bar a:visited {
12
+ color: #efefef;
13
+ text-decoration: none;
14
+ }
15
+
16
+ #uat-bar a:active, #uat-bar a:hover, #uat-bar a:focus {
17
+ color: #fff;
18
+ }
19
+
20
+ #uat-bar a.go {
21
+ position: absolute;
22
+ top: 0;
23
+ right: 5px;
24
+ font-weight: bold;
25
+ padding: .5em;
26
+ display: block;
27
+ float: right;
28
+ width: 180px;
29
+ background-color: #121212;
30
+ }
31
+
32
+ #uat-bar .pop-over {
33
+ clear: right;
34
+ background-color: #232323;
35
+ color: #efefef;
36
+ text-align: left;
37
+ padding: 37px 0 .75em 0;
38
+
39
+ -moz-border-radius-bottomright: 10px;
40
+ -webkit-border-bottom-right-radius: 10px;
41
+ -moz-border-radius-bottomleft: 10px;
42
+ -webkit-border-bottom-left-radius: 10px
43
+ }
44
+
45
+ #uat-bar .pop-over ol {
46
+ height: 450px;
47
+ overflow: auto;
48
+ list-style: none;
49
+ margin: 0 0 0;
50
+ padding: 0
51
+ }
52
+
53
+ #uat-bar .pop-over li:last-child, #uat-bar a.go {
54
+ -moz-border-radius-bottomright: 10px;
55
+ -webkit-border-bottom-right-radius: 10px;
56
+ -moz-border-radius-bottomleft: 10px;
57
+ -webkit-border-bottom-left-radius: 10px
58
+ }
59
+
60
+ #uat-bar .pop-over li {
61
+ padding: .5em;
62
+ border-top: 1px solid #333
63
+ }
64
+
65
+ #uat-bar .pop-over li:hover {
66
+ background-color: #323232;
67
+ cursor: pointer
68
+ }
69
+
70
+ #uat-bar .hide {
71
+ display: none;
72
+ }
73
+
74
+
75
+
76
+
@@ -1,3 +1,6 @@
1
1
  %ol
2
2
  - @stories.each do |story|
3
- %li= story.name
3
+ %li
4
+ %input.accept(type='checkbox' name='accept')
5
+ %a{:href => story.url}= story.name
6
+ %span.story-id.hide= story.id
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uat_director
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ben Askins
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-06-07 00:00:00 +10:00
18
+ date: 2010-06-10 00:00:00 +10:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -42,12 +42,12 @@ dependencies:
42
42
  requirements:
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- hash: 21
45
+ hash: 7
46
46
  segments:
47
47
  - 3
48
48
  - 0
49
- - 9
50
- version: 3.0.9
49
+ - 0
50
+ version: 3.0.0
51
51
  type: :runtime
52
52
  version_requirements: *id002
53
53
  - !ruby/object:Gem::Dependency
@@ -58,12 +58,12 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- hash: 19
61
+ hash: 23
62
62
  segments:
63
63
  - 1
64
- - 1
65
64
  - 0
66
- version: 1.1.0
65
+ - 0
66
+ version: 1.0.0
67
67
  type: :runtime
68
68
  version_requirements: *id003
69
69
  description: "Adds a toolbar to your rails app that directs your clients to test stories that have been marked as 'delivered' in Pivotal Tracker "
@@ -85,9 +85,10 @@ files:
85
85
  - lib/uat_director.rb
86
86
  - lib/uat_director/configuration.rb
87
87
  - lib/uat_director/helpers.rb
88
+ - lib/uat_director/javascript/uat_director.js
88
89
  - lib/uat_director/rack_app.rb
90
+ - lib/uat_director/stylesheets/uat_director.css
89
91
  - lib/uat_director/templates/index.haml
90
- - uat_director.gemspec
91
92
  has_rdoc: true
92
93
  homepage: http://github.com/benaskins/uat_director
93
94
  licenses: []
data/uat_director.gemspec DELETED
@@ -1,58 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{uat_director}
8
- s.version = "0.0.1"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Ben Askins"]
12
- s.date = %q{2010-06-07}
13
- s.description = %q{Adds a toolbar to your rails app that directs your clients to test stories that have been marked as 'delivered' in Pivotal Tracker }
14
- s.email = %q{ben.askins@gmail.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.rdoc",
24
- "Rakefile",
25
- "VERSION",
26
- "lib/uat_director.rb",
27
- "lib/uat_director/configuration.rb",
28
- "lib/uat_director/helpers.rb",
29
- "lib/uat_director/rack_app.rb",
30
- "lib/uat_director/templates/index.haml",
31
- "uat_director.gemspec"
32
- ]
33
- s.homepage = %q{http://github.com/benaskins/uat_director}
34
- s.rdoc_options = ["--charset=UTF-8"]
35
- s.require_paths = ["lib"]
36
- s.rubygems_version = %q{1.3.7}
37
- s.summary = %q{Direct your clients to test delivered features}
38
-
39
- if s.respond_to? :specification_version then
40
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
41
- s.specification_version = 3
42
-
43
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
44
- s.add_runtime_dependency(%q<pivotal-tracker>, [">= 0.1.3"])
45
- s.add_runtime_dependency(%q<haml>, [">= 3.0.9"])
46
- s.add_runtime_dependency(%q<rack>, [">= 1.1.0"])
47
- else
48
- s.add_dependency(%q<pivotal-tracker>, [">= 0.1.3"])
49
- s.add_dependency(%q<haml>, [">= 3.0.9"])
50
- s.add_dependency(%q<rack>, [">= 1.1.0"])
51
- end
52
- else
53
- s.add_dependency(%q<pivotal-tracker>, [">= 0.1.3"])
54
- s.add_dependency(%q<haml>, [">= 3.0.9"])
55
- s.add_dependency(%q<rack>, [">= 1.1.0"])
56
- end
57
- end
58
-