pivotal_doc 1.3.0 → 1.4.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.
- data/.gitignore +2 -1
- data/.rvmrc +2 -0
- data/Gemfile +15 -0
- data/Gemfile.lock +56 -0
- data/README +12 -8
- data/Rakefile +8 -9
- data/VERSION +1 -1
- data/{ext → lib/pivotal_doc/ext}/date.rb +0 -0
- data/lib/pivotal_doc/generator.rb +19 -14
- data/lib/pivotal_doc/generators/base.rb +2 -2
- data/lib/pivotal_doc/generators/csv.rb +32 -0
- data/lib/pivotal_doc/generators/html.rb +1 -1
- data/lib/pivotal_doc/generators/sprint.rb +18 -0
- data/lib/pivotal_doc/release.rb +5 -19
- data/lib/pivotal_doc/sprint.rb +24 -0
- data/lib/pivotal_doc/work.rb +23 -0
- data/lib/pivotal_doc.rb +20 -7
- data/pivotal_doc.gemspec +96 -60
- data/spec/fixtures/configs.yml +12 -4
- data/spec/lib/configuration_spec.rb +1 -1
- data/spec/lib/ext/date_spec.rb +15 -0
- data/spec/lib/generator_spec.rb +47 -7
- data/spec/lib/generators/base_spec.rb +1 -1
- data/spec/lib/generators/csv_spec.rb +35 -0
- data/spec/lib/generators/html_spec.rb +1 -1
- data/spec/lib/generators/sprint_spec.rb +40 -0
- data/spec/lib/release_spec.rb +1 -1
- data/spec/lib/sprint_spec.rb +44 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +5 -2
- data/templates/{text_gen.txt → output.csv} +0 -0
- data/templates/{html_gen.haml → output.haml} +0 -0
- data/templates/sprint.haml +48 -0
- metadata +155 -26
- data/lib/pivotal_doc/generators/text.rb +0 -12
- data/spec/lib/generators/text_spec.rb +0 -25
data/.gitignore
CHANGED
data/.rvmrc
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
source :gemcutter
|
2
|
+
source "http://gems.github.com"
|
3
|
+
source "http://gems.g5search.com"
|
4
|
+
|
5
|
+
gem 'fastercsv'
|
6
|
+
gem 'rake'
|
7
|
+
|
8
|
+
group :development, :test do
|
9
|
+
gem 'jeweler'
|
10
|
+
gem 'rspec', '~> 2.0'
|
11
|
+
gem 'pivotal-tracker'
|
12
|
+
gem 'haml'
|
13
|
+
gem 'factory_girl', '1.3.2'
|
14
|
+
gem 'ruby-debug', :require => nil
|
15
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
remote: http://gems.github.com/
|
4
|
+
remote: http://gems.g5search.com/
|
5
|
+
specs:
|
6
|
+
builder (3.0.0)
|
7
|
+
columnize (0.3.2)
|
8
|
+
diff-lcs (1.1.2)
|
9
|
+
factory_girl (1.3.2)
|
10
|
+
fastercsv (1.5.4)
|
11
|
+
git (1.2.5)
|
12
|
+
haml (3.0.25)
|
13
|
+
happymapper (0.3.2)
|
14
|
+
libxml-ruby (~> 1.1.3)
|
15
|
+
jeweler (1.5.2)
|
16
|
+
bundler (~> 1.0.0)
|
17
|
+
git (>= 1.2.5)
|
18
|
+
rake
|
19
|
+
libxml-ruby (1.1.4)
|
20
|
+
linecache (0.43)
|
21
|
+
mime-types (1.16)
|
22
|
+
nokogiri (1.4.3.1)
|
23
|
+
pivotal-tracker (0.3.1)
|
24
|
+
builder
|
25
|
+
happymapper (>= 0.3.2)
|
26
|
+
nokogiri (~> 1.4.3.1)
|
27
|
+
rest-client (~> 1.6.0)
|
28
|
+
rake (0.8.7)
|
29
|
+
rest-client (1.6.1)
|
30
|
+
mime-types (>= 1.16)
|
31
|
+
rspec (2.5.0)
|
32
|
+
rspec-core (~> 2.5.0)
|
33
|
+
rspec-expectations (~> 2.5.0)
|
34
|
+
rspec-mocks (~> 2.5.0)
|
35
|
+
rspec-core (2.5.1)
|
36
|
+
rspec-expectations (2.5.0)
|
37
|
+
diff-lcs (~> 1.1.2)
|
38
|
+
rspec-mocks (2.5.0)
|
39
|
+
ruby-debug (0.10.4)
|
40
|
+
columnize (>= 0.1)
|
41
|
+
ruby-debug-base (~> 0.10.4.0)
|
42
|
+
ruby-debug-base (0.10.4)
|
43
|
+
linecache (>= 0.3)
|
44
|
+
|
45
|
+
PLATFORMS
|
46
|
+
ruby
|
47
|
+
|
48
|
+
DEPENDENCIES
|
49
|
+
factory_girl (= 1.3.2)
|
50
|
+
fastercsv
|
51
|
+
haml
|
52
|
+
jeweler
|
53
|
+
pivotal-tracker
|
54
|
+
rake
|
55
|
+
rspec (~> 2.0)
|
56
|
+
ruby-debug
|
data/README
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
Automated release notes for apps hosted on pivotaltracker.com. Allows release notes to be generated for any project on pivotaltracker.com by retrieving the latest iteration for the specified project and displaying the
|
1
|
+
Automated release notes for apps hosted on pivotaltracker.com. Allows release notes to be generated for any project on pivotaltracker.com by retrieving the latest "DONE" iteration for the specified project and displaying the accepted features, bugs, and chores.
|
2
|
+
|
3
|
+
UPDATE:
|
4
|
+
A new option has been added to the settings for each project (see below.) You can now generate sprint committments by setting: 'current'=>true. This will pull all stories regardless of whether or not they've been accepted from the current iteration.
|
5
|
+
|
6
|
+
This is different than standard operating mode where only accepted stories from the last 'DONE' iteration are generated
|
2
7
|
|
3
8
|
Usage:
|
4
9
|
Either a file path (absolute) or a settings hash are supported for specifying your Pivotal Tracker credentials.
|
@@ -6,17 +11,18 @@ Either a file path (absolute) or a settings hash are supported for specifying yo
|
|
6
11
|
Supported formats: [:html, :text]
|
7
12
|
There is also a 'fancy' template for the html generator. Supporting custom templates is planned soon. Until then this is just a sample to get you started. To make use of the fancy html you need to specify the template_name in your .yml file or settings hash (see sample below.)
|
8
13
|
|
9
|
-
PivotalDoc::Generator.generate(format, '
|
14
|
+
PivotalDoc::Generator.generate(format, 'absolute_path_to_my_file')
|
10
15
|
|
11
16
|
PivotalDoc::Generator.generate(format, {
|
12
17
|
'username' => 'my_name',
|
13
18
|
'password' => 'my_password',
|
14
|
-
'token' => 'my_token' #Not needed if you specify username/password,
|
19
|
+
'token' => 'my_token' #Not needed if you specify username/password & vice-versa,
|
15
20
|
'template_name'=>'fancy.html',
|
16
21
|
'projects' => {'github'=>
|
17
22
|
{
|
18
23
|
'id' =>1, #This is the project_id from Pivotal Tracker
|
19
24
|
'members' =>['cyclone'],
|
25
|
+
'current' =>true/false #New setting to generate sprint committments
|
20
26
|
}
|
21
27
|
}
|
22
28
|
})
|
@@ -28,10 +34,8 @@ Note: It's recommended you define a story of type 'release' for each iteration t
|
|
28
34
|
|
29
35
|
Planned:
|
30
36
|
Custom templates
|
31
|
-
|
32
|
-
|
33
|
-
Parsable descriptions for more granular descriptions on stories
|
34
|
-
PDF ?
|
37
|
+
PDF
|
38
|
+
Attachment support?
|
35
39
|
|
36
40
|
|
37
|
-
LASTLY, a big shout out to @jsmestad, author of the pivotal-tracker gem. This gem provides a beautiful Active Record style DSL for interacting with Pivotal Tracker's API.
|
41
|
+
LASTLY, a big shout out to @jsmestad, author of the pivotal-tracker gem. This gem provides a beautiful Active Record style DSL for interacting with Pivotal Tracker's API.
|
data/Rakefile
CHANGED
@@ -1,5 +1,10 @@
|
|
1
|
-
require 'spec/rake/spectask'
|
2
1
|
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
Bundler.setup(:default, :test)
|
4
|
+
|
5
|
+
require 'rspec'
|
6
|
+
require 'rspec/core/rake_task.rb'
|
7
|
+
require 'jeweler'
|
3
8
|
require 'rake'
|
4
9
|
|
5
10
|
begin
|
@@ -34,14 +39,8 @@ rescue LoadError
|
|
34
39
|
end
|
35
40
|
end
|
36
41
|
|
37
|
-
|
38
|
-
|
39
|
-
spec.spec_files = FileList['spec/**/*_spec.rb']
|
40
|
-
end
|
41
|
-
|
42
|
-
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
43
|
-
spec.libs << 'lib' << 'spec'
|
44
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
42
|
+
Rspec::Core::RakeTask.new(:spec)
|
43
|
+
Rspec::Core::RakeTask.new(:rcov) do |spec|
|
45
44
|
spec.rcov = true
|
46
45
|
end
|
47
46
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.4.0
|
File without changes
|
@@ -1,29 +1,34 @@
|
|
1
1
|
module PivotalDoc
|
2
2
|
class Generator
|
3
3
|
class << self
|
4
|
-
|
5
|
-
attr_reader :config
|
6
|
-
|
4
|
+
#TODO: Clean this mutatant up
|
7
5
|
def generate(format, settings={})
|
8
|
-
@config= PivotalDoc::Configuration.new(settings)
|
9
|
-
@config.authenticate!
|
10
6
|
raise FormatNotSupported.new(format) unless generators.has_key?(format)
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
config= PivotalDoc::Configuration.new(settings)
|
8
|
+
config.authenticate!
|
9
|
+
releases= collect_releases!(config)
|
10
|
+
releases.each do |release|
|
11
|
+
generator= release.generator(format) if release.respond_to?(:generator)
|
12
|
+
(generator || generators[format]).new(release, config.settings).render_doc
|
14
13
|
end
|
15
14
|
true
|
16
|
-
end
|
15
|
+
end
|
17
16
|
|
18
17
|
def generators
|
19
|
-
{ :
|
18
|
+
{ :html=>Generators::HTML, :csv=>Generators::CSV }
|
20
19
|
end
|
21
20
|
|
22
|
-
def collect_releases!
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
def collect_releases!(config)
|
22
|
+
releases= []
|
23
|
+
config.projects.each do |name, _attrs|
|
24
|
+
project= PT::Project.find(_attrs['id'].to_i)
|
25
|
+
if _attrs['current']
|
26
|
+
releases << Sprint.new(project)
|
27
|
+
else
|
28
|
+
releases << Release.new(project)
|
29
|
+
end
|
26
30
|
end
|
31
|
+
return releases
|
27
32
|
end
|
28
33
|
end
|
29
34
|
end
|
@@ -13,7 +13,7 @@ module PivotalDoc
|
|
13
13
|
def output_file
|
14
14
|
name= @options['output_file']
|
15
15
|
unless name
|
16
|
-
name=@release.name || self.object_id.to_s
|
16
|
+
name=@release.name || @release.project_name || self.object_id.to_s
|
17
17
|
name.gsub!(/\//, '') and name.gsub!(/\s/,'')
|
18
18
|
end
|
19
19
|
File.join(output_path, (name + output_ext))
|
@@ -43,7 +43,7 @@ module PivotalDoc
|
|
43
43
|
path= File.join(PROJECT_ROOT, 'templates', template_name)
|
44
44
|
raise TemplateNonExistent.new(template_name) unless File.exists?(path)
|
45
45
|
@template ||= File.read(path)
|
46
|
-
end
|
46
|
+
end
|
47
47
|
|
48
48
|
def template_name
|
49
49
|
raise 'Not Implemented!'
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'fastercsv'
|
2
|
+
|
3
|
+
module PivotalDoc
|
4
|
+
module Generators
|
5
|
+
class CSV < Base
|
6
|
+
COLUMNS=[
|
7
|
+
'ID', 'Name', 'Type', 'Description', 'State', 'Requested By', 'Completed By'
|
8
|
+
]
|
9
|
+
def template_name; 'output.csv' end
|
10
|
+
def output_ext; '.csv' end
|
11
|
+
def render_doc
|
12
|
+
output = FasterCSV.generate do |csv|
|
13
|
+
csv << COLUMNS.clone
|
14
|
+
@release.features.each {|f| csv << fields(f) }
|
15
|
+
end
|
16
|
+
super(output)
|
17
|
+
end
|
18
|
+
def fields(feature)
|
19
|
+
[
|
20
|
+
feature.id,
|
21
|
+
feature.name,
|
22
|
+
feature.story_type,
|
23
|
+
feature.description,
|
24
|
+
feature.current_state,
|
25
|
+
feature.requested_by,
|
26
|
+
feature.owned_by
|
27
|
+
]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module PivotalDoc
|
2
|
+
module Generators
|
3
|
+
class Sprint < Base
|
4
|
+
def initialize(sprint, options={})
|
5
|
+
@sprint=sprint
|
6
|
+
super(@sprint, options)
|
7
|
+
end
|
8
|
+
def template_name
|
9
|
+
@options['template_name'] || 'sprint.haml'
|
10
|
+
end
|
11
|
+
def output_ext; '.html' end
|
12
|
+
def render_doc
|
13
|
+
html= Haml::Engine.new(template).render(Object.new, {:sprint=>@sprint})
|
14
|
+
super(html)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/pivotal_doc/release.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module PivotalDoc
|
2
2
|
class Release
|
3
|
+
include Work
|
4
|
+
|
3
5
|
attr_reader :project
|
4
6
|
attr_reader :iteration
|
5
7
|
|
@@ -15,31 +17,15 @@ module PivotalDoc
|
|
15
17
|
def name
|
16
18
|
me.name if me.respond_to?(:name)
|
17
19
|
end
|
18
|
-
|
19
|
-
def project_name
|
20
|
-
@project.name
|
21
|
-
end
|
22
|
-
|
20
|
+
|
23
21
|
def latest_iteration
|
24
22
|
PT::Iteration.done(@project, :offset=>'-1').first
|
25
|
-
end
|
26
|
-
|
27
|
-
def stories
|
28
|
-
@stories ||= filter_stories
|
29
23
|
end
|
30
|
-
|
31
|
-
def bugs
|
32
|
-
@bugs ||= filter_stories('bug')
|
33
|
-
end
|
34
|
-
|
35
|
-
def chores
|
36
|
-
@chores ||= filter_stories('chore')
|
37
|
-
end
|
38
|
-
|
24
|
+
|
39
25
|
[:stories, :bugs, :chores].each do |m|
|
40
26
|
define_method("#{m}_delivered") { self.send(m).size }
|
41
27
|
end
|
42
|
-
|
28
|
+
|
43
29
|
private
|
44
30
|
def filter_stories(type='feature')
|
45
31
|
self.iteration.stories.reject do |s|
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module PivotalDoc
|
2
|
+
class Sprint
|
3
|
+
include Work
|
4
|
+
|
5
|
+
attr_reader :project
|
6
|
+
attr_reader :iteration
|
7
|
+
|
8
|
+
def initialize(project)
|
9
|
+
@project= project
|
10
|
+
@iteration= PT::Iteration.current(project)
|
11
|
+
end
|
12
|
+
|
13
|
+
def name; nil end
|
14
|
+
|
15
|
+
def generator(format=:html)
|
16
|
+
{:html=>PivotalDoc::Generators::Sprint}[format]
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
def filter_stories(type='feature')
|
21
|
+
self.iteration.stories.reject {|s| s.story_type.downcase != type }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module PivotalDoc
|
2
|
+
module Work
|
3
|
+
def project_name
|
4
|
+
@project.name
|
5
|
+
end
|
6
|
+
|
7
|
+
def features
|
8
|
+
self.stories + self.bugs + self.chores
|
9
|
+
end
|
10
|
+
|
11
|
+
def stories
|
12
|
+
@stories ||= filter_stories
|
13
|
+
end
|
14
|
+
|
15
|
+
def bugs
|
16
|
+
@bugs ||= filter_stories('bug')
|
17
|
+
end
|
18
|
+
|
19
|
+
def chores
|
20
|
+
@chores ||= filter_stories('chore')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/pivotal_doc.rb
CHANGED
@@ -2,14 +2,27 @@ require 'rubygems'
|
|
2
2
|
require 'yaml'
|
3
3
|
require 'pivotal-tracker'
|
4
4
|
require 'haml'
|
5
|
+
|
5
6
|
PT= PivotalTracker unless defined?(PT)
|
6
7
|
PROJECT_ROOT= File.join(File.dirname(__FILE__), '/../') unless defined?(PROJECT_ROOT)
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
require File.join(
|
11
|
-
|
12
|
-
|
9
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
10
|
+
#Ruby extensions
|
11
|
+
require File.join('pivotal_doc/ext', 'date')
|
12
|
+
|
13
|
+
#Utilities
|
14
|
+
require File.join('pivotal_doc/configuration')
|
15
|
+
require File.join('pivotal_doc/exceptions')
|
16
|
+
require File.join('pivotal_doc/generator')
|
17
|
+
|
18
|
+
#Core classes
|
19
|
+
require File.join('pivotal_doc/work')
|
20
|
+
require File.join('pivotal_doc/release')
|
21
|
+
require File.join('pivotal_doc/sprint')
|
22
|
+
|
23
|
+
#Generators
|
24
|
+
require File.join('pivotal_doc/generators', 'base')
|
25
|
+
require File.join('pivotal_doc/generators', 'html')
|
26
|
+
require File.join('pivotal_doc/generators', 'csv')
|
27
|
+
require File.join('pivotal_doc/generators', 'sprint')
|
13
28
|
|
14
|
-
Dir[File.expand_path(File.join(File.dirname(__FILE__),'../ext','**','*.rb'))].each {|f| require f}
|
15
|
-
Dir[File.expand_path(File.join(File.dirname(__FILE__),'pivotal_doc/', '*.rb'))].each {|f| require f}
|
data/pivotal_doc.gemspec
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{pivotal_doc}
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tim Linquist"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-02-28}
|
13
13
|
s.description = %q{
|
14
14
|
Automated release notes for apps hosted on pivotaltracker.com.
|
15
15
|
Allows release notes to be generated for any project on pivotaltracker.com by retrieving the latest iteration for the specified project and displaying the completed features, bugs, and chores.
|
@@ -20,84 +20,120 @@ Gem::Specification.new do |s|
|
|
20
20
|
]
|
21
21
|
s.files = [
|
22
22
|
".gitignore",
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
23
|
+
".rvmrc",
|
24
|
+
"Gemfile",
|
25
|
+
"Gemfile.lock",
|
26
|
+
"README",
|
27
|
+
"Rakefile",
|
28
|
+
"VERSION",
|
29
|
+
"assets/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png",
|
30
|
+
"assets/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png",
|
31
|
+
"assets/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png",
|
32
|
+
"assets/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png",
|
33
|
+
"assets/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png",
|
34
|
+
"assets/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png",
|
35
|
+
"assets/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png",
|
36
|
+
"assets/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png",
|
37
|
+
"assets/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png",
|
38
|
+
"assets/css/ui-lightness/images/ui-icons_222222_256x240.png",
|
39
|
+
"assets/css/ui-lightness/images/ui-icons_228ef1_256x240.png",
|
40
|
+
"assets/css/ui-lightness/images/ui-icons_ef8c08_256x240.png",
|
41
|
+
"assets/css/ui-lightness/images/ui-icons_ffd27a_256x240.png",
|
42
|
+
"assets/css/ui-lightness/images/ui-icons_ffffff_256x240.png",
|
43
|
+
"assets/css/ui-lightness/jquery-ui-1.8.5.custom.css",
|
44
|
+
"assets/js/jquery-1.4.2.min.js",
|
45
|
+
"assets/js/jquery-ui-1.8.5.custom.min.js",
|
46
|
+
"lib/pivotal_doc.rb",
|
47
|
+
"lib/pivotal_doc/configuration.rb",
|
48
|
+
"lib/pivotal_doc/exceptions.rb",
|
49
|
+
"lib/pivotal_doc/ext/date.rb",
|
50
|
+
"lib/pivotal_doc/generator.rb",
|
51
|
+
"lib/pivotal_doc/generators/base.rb",
|
52
|
+
"lib/pivotal_doc/generators/csv.rb",
|
53
|
+
"lib/pivotal_doc/generators/html.rb",
|
54
|
+
"lib/pivotal_doc/generators/sprint.rb",
|
55
|
+
"lib/pivotal_doc/release.rb",
|
56
|
+
"lib/pivotal_doc/sprint.rb",
|
57
|
+
"lib/pivotal_doc/work.rb",
|
58
|
+
"pivotal_doc.gemspec",
|
59
|
+
"spec/fixtures/configs.yml",
|
60
|
+
"spec/fixtures/iterations.yml",
|
61
|
+
"spec/fixtures/projects.yml",
|
62
|
+
"spec/fixtures/stories.yml",
|
63
|
+
"spec/lib/configuration_spec.rb",
|
64
|
+
"spec/lib/ext/date_spec.rb",
|
65
|
+
"spec/lib/generator_spec.rb",
|
66
|
+
"spec/lib/generators/base_spec.rb",
|
67
|
+
"spec/lib/generators/csv_spec.rb",
|
68
|
+
"spec/lib/generators/html_spec.rb",
|
69
|
+
"spec/lib/generators/sprint_spec.rb",
|
70
|
+
"spec/lib/release_spec.rb",
|
71
|
+
"spec/lib/sprint_spec.rb",
|
72
|
+
"spec/spec.opts",
|
73
|
+
"spec/spec_helper.rb",
|
74
|
+
"spec/support/mocks_helper.rb",
|
75
|
+
"spec/support/pt_api_helpers.rb",
|
76
|
+
"templates/fancy.haml",
|
77
|
+
"templates/output.csv",
|
78
|
+
"templates/output.haml",
|
79
|
+
"templates/sprint.haml"
|
69
80
|
]
|
70
81
|
s.homepage = %q{http://github.com/timo3377/pivotal_doc}
|
71
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
72
82
|
s.require_paths = ["lib"]
|
73
|
-
s.rubygems_version = %q{1.3
|
83
|
+
s.rubygems_version = %q{1.5.3}
|
74
84
|
s.summary = %q{A release documentation generator for pivotaltracker.com}
|
75
85
|
s.test_files = [
|
76
86
|
"spec/lib/configuration_spec.rb",
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
87
|
+
"spec/lib/ext/date_spec.rb",
|
88
|
+
"spec/lib/generator_spec.rb",
|
89
|
+
"spec/lib/generators/base_spec.rb",
|
90
|
+
"spec/lib/generators/csv_spec.rb",
|
91
|
+
"spec/lib/generators/html_spec.rb",
|
92
|
+
"spec/lib/generators/sprint_spec.rb",
|
93
|
+
"spec/lib/release_spec.rb",
|
94
|
+
"spec/lib/sprint_spec.rb",
|
95
|
+
"spec/spec_helper.rb",
|
96
|
+
"spec/support/mocks_helper.rb",
|
97
|
+
"spec/support/pt_api_helpers.rb"
|
85
98
|
]
|
86
99
|
|
87
100
|
if s.respond_to? :specification_version then
|
88
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
89
101
|
s.specification_version = 3
|
90
102
|
|
91
103
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
104
|
+
s.add_runtime_dependency(%q<fastercsv>, [">= 0"])
|
105
|
+
s.add_runtime_dependency(%q<rake>, [">= 0"])
|
106
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
107
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.0"])
|
108
|
+
s.add_development_dependency(%q<pivotal-tracker>, [">= 0"])
|
109
|
+
s.add_development_dependency(%q<haml>, [">= 0"])
|
110
|
+
s.add_development_dependency(%q<factory_girl>, ["= 1.3.2"])
|
111
|
+
s.add_development_dependency(%q<ruby-debug>, [">= 0"])
|
92
112
|
s.add_runtime_dependency(%q<pivotal-tracker>, [">= 0.2.1"])
|
93
113
|
s.add_runtime_dependency(%q<haml>, [">= 0"])
|
94
114
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
95
115
|
else
|
116
|
+
s.add_dependency(%q<fastercsv>, [">= 0"])
|
117
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
118
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
119
|
+
s.add_dependency(%q<rspec>, ["~> 2.0"])
|
120
|
+
s.add_dependency(%q<pivotal-tracker>, [">= 0"])
|
121
|
+
s.add_dependency(%q<haml>, [">= 0"])
|
122
|
+
s.add_dependency(%q<factory_girl>, ["= 1.3.2"])
|
123
|
+
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
96
124
|
s.add_dependency(%q<pivotal-tracker>, [">= 0.2.1"])
|
97
125
|
s.add_dependency(%q<haml>, [">= 0"])
|
98
126
|
s.add_dependency(%q<rspec>, [">= 0"])
|
99
127
|
end
|
100
128
|
else
|
129
|
+
s.add_dependency(%q<fastercsv>, [">= 0"])
|
130
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
131
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
132
|
+
s.add_dependency(%q<rspec>, ["~> 2.0"])
|
133
|
+
s.add_dependency(%q<pivotal-tracker>, [">= 0"])
|
134
|
+
s.add_dependency(%q<haml>, [">= 0"])
|
135
|
+
s.add_dependency(%q<factory_girl>, ["= 1.3.2"])
|
136
|
+
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
101
137
|
s.add_dependency(%q<pivotal-tracker>, [">= 0.2.1"])
|
102
138
|
s.add_dependency(%q<haml>, [">= 0"])
|
103
139
|
s.add_dependency(%q<rspec>, [">= 0"])
|
data/spec/fixtures/configs.yml
CHANGED
@@ -1,11 +1,19 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
#Auth against Pivotal Tracker api w/either u/p or token
|
2
|
+
username: mc
|
3
|
+
password: hitthenail
|
3
4
|
token: some_funky_guid
|
4
|
-
|
5
|
+
output_path: / #Direct pivotal_doc where to store generated files
|
6
|
+
projects:
|
5
7
|
github:
|
6
8
|
id: 1
|
7
9
|
members:
|
8
10
|
- [
|
9
|
-
'hot.box@superhighme.com',
|
10
11
|
'hammer.time@rockyajaw.com'
|
11
12
|
]
|
13
|
+
pivotal_doc: #project name
|
14
|
+
id: 2 #id in pivotal
|
15
|
+
current: true #generate sprint committments instead of release notes for project
|
16
|
+
members:
|
17
|
+
- [
|
18
|
+
'hammer.time@rockyajaw.com'
|
19
|
+
]
|