tracker-ical 0.0.2 → 0.0.3
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/CHANGELOG.rdoc +4 -0
- data/Gemfile +15 -0
- data/Gemfile.lock +44 -0
- data/README.rdoc +16 -5
- data/Rakefile +1 -3
- data/VERSION +1 -1
- data/lib/pivotal-tracker/story.rb +2 -2
- data/lib/tracker-ical.rb +17 -3
- data/tracker-ical.gemspec +36 -27
- metadata +77 -29
- data/.gitignore +0 -21
data/CHANGELOG.rdoc
CHANGED
data/Gemfile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
# Add dependencies required to use your gem here.
|
3
|
+
# Example:
|
4
|
+
# gem "activesupport", ">= 2.3.5"
|
5
|
+
gem 'icalendar', '>= 1.1.6'
|
6
|
+
gem 'pivotal-tracker', '>=0.2.0'
|
7
|
+
|
8
|
+
# Add dependencies to develop your gem here.
|
9
|
+
# Include everything needed to run rake, tests, features, etc.
|
10
|
+
group :development do
|
11
|
+
gem "rspec", "~> 2.5.0"
|
12
|
+
gem "bundler", "~> 1.0.10"
|
13
|
+
gem "jeweler", "~> 1.5.2"
|
14
|
+
gem "rcov", ">= 0"
|
15
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
builder (3.0.0)
|
5
|
+
diff-lcs (1.1.2)
|
6
|
+
git (1.2.5)
|
7
|
+
happymapper (0.3.2)
|
8
|
+
libxml-ruby (~> 1.1.3)
|
9
|
+
icalendar (1.1.6)
|
10
|
+
jeweler (1.5.2)
|
11
|
+
bundler (~> 1.0.0)
|
12
|
+
git (>= 1.2.5)
|
13
|
+
rake
|
14
|
+
libxml-ruby (1.1.4)
|
15
|
+
mime-types (1.16)
|
16
|
+
nokogiri (1.4.3.1)
|
17
|
+
pivotal-tracker (0.3.1)
|
18
|
+
builder
|
19
|
+
happymapper (>= 0.3.2)
|
20
|
+
nokogiri (~> 1.4.3.1)
|
21
|
+
rest-client (~> 1.6.0)
|
22
|
+
rake (0.8.7)
|
23
|
+
rcov (0.9.9)
|
24
|
+
rest-client (1.6.1)
|
25
|
+
mime-types (>= 1.16)
|
26
|
+
rspec (2.5.0)
|
27
|
+
rspec-core (~> 2.5.0)
|
28
|
+
rspec-expectations (~> 2.5.0)
|
29
|
+
rspec-mocks (~> 2.5.0)
|
30
|
+
rspec-core (2.5.1)
|
31
|
+
rspec-expectations (2.5.0)
|
32
|
+
diff-lcs (~> 1.1.2)
|
33
|
+
rspec-mocks (2.5.0)
|
34
|
+
|
35
|
+
PLATFORMS
|
36
|
+
ruby
|
37
|
+
|
38
|
+
DEPENDENCIES
|
39
|
+
bundler (~> 1.0.10)
|
40
|
+
icalendar (>= 1.1.6)
|
41
|
+
jeweler (~> 1.5.2)
|
42
|
+
pivotal-tracker (>= 0.2.0)
|
43
|
+
rcov
|
44
|
+
rspec (~> 2.5.0)
|
data/README.rdoc
CHANGED
@@ -1,15 +1,26 @@
|
|
1
1
|
= tracker-ical
|
2
2
|
|
3
|
-
|
3
|
+
PivotalTracker iterations and releases output as an iCalendar feed.
|
4
|
+
|
5
|
+
== Requirements
|
6
|
+
|
7
|
+
* PivotalTracker account with API access. Signup at Pivotal[https://www.pivotaltracker.com/signup/new].
|
8
|
+
* API token for the account
|
9
|
+
|
10
|
+
== Configuration
|
11
|
+
TrackerIcal.token('myusername@email.com', 'secretpassword') # Automatically fetch API Token from PivotalTracker
|
12
|
+
TrackerIcal.token = 'jkfduisj97823974j2kl24899234' # Manually set API Token for PivotalTracker
|
13
|
+
TrackerIcal.use_ssl = true # Set to true if account requires SSL. Default is false
|
4
14
|
|
5
15
|
== Usage
|
6
|
-
TrackerIcal.
|
7
|
-
TrackerIcal.token = 'jkfduisj97823974j2kl24899234' # Manually set API Token
|
16
|
+
TrackerIcal.create_calendar_for_project_id(project_id) #Pass the project_id of the PivotalTracker project to generate iCal string for
|
8
17
|
|
9
|
-
TrackerIcal.
|
18
|
+
TrackerIcal.create_ics_file_for_project_id(filepath,project_id) #Generates an ics file at the specified filepath for the PivotalTracker project with project_id
|
10
19
|
|
11
|
-
|
20
|
+
== Changelog
|
12
21
|
|
22
|
+
See CHANGELOG for details
|
23
|
+
|
13
24
|
== Note on Patches/Pull Requests
|
14
25
|
|
15
26
|
* Fork the project.
|
data/Rakefile
CHANGED
@@ -10,9 +10,7 @@ begin
|
|
10
10
|
gem.email = "niels@meerwerks.com"
|
11
11
|
gem.homepage = "http://github.com/nielsm/tracker-ical"
|
12
12
|
gem.authors = ["Niels Meersschaert"]
|
13
|
-
gem.
|
14
|
-
gem.add_dependency('icalendar', '>= 1.1.5')
|
15
|
-
gem.add_dependency('pivotal-tracker', '>=0.2.0')
|
13
|
+
gem.extra_rdoc_files = ["README.rdoc", "VERSION", "CHANGELOG.rdoc"]
|
16
14
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
17
15
|
end
|
18
16
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/lib/tracker-ical.rb
CHANGED
@@ -4,14 +4,23 @@ require File.join(File.dirname(__FILE__), 'pivotal-tracker', 'story')
|
|
4
4
|
|
5
5
|
class TrackerIcal
|
6
6
|
|
7
|
+
#Set the PivotalTracker token to be used for interating with the Pivotal API
|
7
8
|
def self.token=(token)
|
8
9
|
PivotalTracker::Client.token=token
|
9
10
|
end
|
11
|
+
|
12
|
+
#Set if PivotalTracker API should be accessed via SSL for all requests
|
13
|
+
def self.use_ssl=(ssl=true)
|
14
|
+
PivotalTracker::Client.use_ssl = ssl
|
15
|
+
end
|
10
16
|
|
17
|
+
#Retrieves the PivotalTracker token for a given username and password, enabling further interaction with the Pivotal API
|
11
18
|
def self.token(username,password)
|
12
19
|
PivotalTracker::Client.token(username,password)
|
13
20
|
end
|
14
|
-
|
21
|
+
|
22
|
+
#Returns an ics formatted string of all the iterations and releases in the project
|
23
|
+
#If a release does not have a deadline, it will not be included in the output
|
15
24
|
def self.create_calendar_for_project_id(project_id)
|
16
25
|
project = PivotalTracker::Project.find(project_id)
|
17
26
|
releases = project.stories.all(:story_type => 'release')
|
@@ -30,6 +39,7 @@ class TrackerIcal
|
|
30
39
|
return calendar.to_ical
|
31
40
|
end
|
32
41
|
|
42
|
+
#Creates an ics file at the specified filepath containing the iterations and releases with deadlines for the project_id
|
33
43
|
def self.create_ics_file_for_project_id(filepath,project_id)
|
34
44
|
file = File.new(filepath,"w+")
|
35
45
|
file.write(self.create_calendar_for_project_id(project_id))
|
@@ -50,8 +60,12 @@ class TrackerIcal
|
|
50
60
|
end
|
51
61
|
|
52
62
|
def self.iteration_points(iteration)
|
63
|
+
points = {}
|
53
64
|
point_array = iteration.stories.collect(&:estimate).compact
|
54
|
-
|
65
|
+
accepted_point_array = iteration.stories.select{|story|story.current_state == 'accepted'}.collect(&:estimate).compact
|
66
|
+
points[:total] = eval point_array.join('+')
|
67
|
+
points[:accepted] = eval accepted_point_array.join('+')
|
68
|
+
return points
|
55
69
|
end
|
56
70
|
|
57
71
|
def self.iteration_event(project,calendar,iter)
|
@@ -66,7 +80,7 @@ class TrackerIcal
|
|
66
80
|
calendar.event do
|
67
81
|
dtstart Date.new(iter.start.year,iter.start.month,iter.start.day)
|
68
82
|
dtend Date.new(iter.finish.year,iter.finish.month,iter.finish.day)
|
69
|
-
summary "#{project.name}: Iteration #{iter.number} (#{points} points)"
|
83
|
+
summary "#{project.name}: Iteration #{iter.number} (#{points[:accepted].to_i}/#{points[:total].to_i} points)"
|
70
84
|
description stories.join("\n")
|
71
85
|
end
|
72
86
|
end
|
data/tracker-ical.gemspec
CHANGED
@@ -1,63 +1,72 @@
|
|
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{tracker-ical}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Niels Meersschaert"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-04-13}
|
13
13
|
s.description = %q{Get your iterations and releases in iCalendar format}
|
14
14
|
s.email = %q{niels@meerwerks.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
|
-
"
|
17
|
-
|
16
|
+
"CHANGELOG.rdoc",
|
17
|
+
"README.rdoc",
|
18
|
+
"VERSION"
|
18
19
|
]
|
19
20
|
s.files = [
|
20
21
|
".document",
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
22
|
+
"CHANGELOG.rdoc",
|
23
|
+
"Gemfile",
|
24
|
+
"Gemfile.lock",
|
25
|
+
"LICENSE",
|
26
|
+
"README.rdoc",
|
27
|
+
"Rakefile",
|
28
|
+
"VERSION",
|
29
|
+
"lib/pivotal-tracker/story.rb",
|
30
|
+
"lib/tracker-ical.rb",
|
31
|
+
"spec/spec.opts",
|
32
|
+
"spec/spec_helper.rb",
|
33
|
+
"spec/tracker-ical_spec.rb",
|
34
|
+
"tracker-ical.gemspec"
|
33
35
|
]
|
34
36
|
s.homepage = %q{http://github.com/nielsm/tracker-ical}
|
35
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
36
37
|
s.require_paths = ["lib"]
|
37
|
-
s.rubygems_version = %q{1.
|
38
|
+
s.rubygems_version = %q{1.5.0}
|
38
39
|
s.summary = %q{Pivotal Tracker meets iCal}
|
39
40
|
s.test_files = [
|
40
41
|
"spec/spec_helper.rb",
|
41
|
-
|
42
|
+
"spec/tracker-ical_spec.rb"
|
42
43
|
]
|
43
44
|
|
44
45
|
if s.respond_to? :specification_version then
|
45
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
46
46
|
s.specification_version = 3
|
47
47
|
|
48
48
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
|
-
s.
|
50
|
-
s.add_runtime_dependency(%q<icalendar>, [">= 1.1.5"])
|
49
|
+
s.add_runtime_dependency(%q<icalendar>, [">= 1.1.6"])
|
51
50
|
s.add_runtime_dependency(%q<pivotal-tracker>, [">= 0.2.0"])
|
51
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
|
52
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.10"])
|
53
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
54
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
52
55
|
else
|
53
|
-
s.add_dependency(%q<
|
54
|
-
s.add_dependency(%q<icalendar>, [">= 1.1.5"])
|
56
|
+
s.add_dependency(%q<icalendar>, [">= 1.1.6"])
|
55
57
|
s.add_dependency(%q<pivotal-tracker>, [">= 0.2.0"])
|
58
|
+
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
59
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.10"])
|
60
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
61
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
56
62
|
end
|
57
63
|
else
|
58
|
-
s.add_dependency(%q<
|
59
|
-
s.add_dependency(%q<icalendar>, [">= 1.1.5"])
|
64
|
+
s.add_dependency(%q<icalendar>, [">= 1.1.6"])
|
60
65
|
s.add_dependency(%q<pivotal-tracker>, [">= 0.2.0"])
|
66
|
+
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
67
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.10"])
|
68
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
69
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
61
70
|
end
|
62
71
|
end
|
63
72
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tracker-ical
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 25
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Niels Meersschaert
|
@@ -15,57 +15,103 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-04-13 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
name: rspec
|
23
22
|
prerelease: false
|
23
|
+
type: :runtime
|
24
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
29
|
+
hash: 31
|
30
30
|
segments:
|
31
31
|
- 1
|
32
|
-
-
|
33
|
-
-
|
34
|
-
version: 1.
|
35
|
-
|
32
|
+
- 1
|
33
|
+
- 6
|
34
|
+
version: 1.1.6
|
35
|
+
name: icalendar
|
36
36
|
version_requirements: *id001
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name: icalendar
|
39
38
|
prerelease: false
|
39
|
+
type: :runtime
|
40
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
hash:
|
45
|
+
hash: 23
|
46
46
|
segments:
|
47
|
-
-
|
48
|
-
-
|
49
|
-
-
|
50
|
-
version:
|
51
|
-
|
47
|
+
- 0
|
48
|
+
- 2
|
49
|
+
- 0
|
50
|
+
version: 0.2.0
|
51
|
+
name: pivotal-tracker
|
52
52
|
version_requirements: *id002
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
|
-
name: pivotal-tracker
|
55
54
|
prerelease: false
|
55
|
+
type: :development
|
56
56
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
hash:
|
61
|
+
hash: 27
|
62
62
|
segments:
|
63
|
-
- 0
|
64
63
|
- 2
|
64
|
+
- 5
|
65
65
|
- 0
|
66
|
-
version:
|
67
|
-
|
66
|
+
version: 2.5.0
|
67
|
+
name: rspec
|
68
68
|
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
prerelease: false
|
71
|
+
type: :development
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 3
|
78
|
+
segments:
|
79
|
+
- 1
|
80
|
+
- 0
|
81
|
+
- 10
|
82
|
+
version: 1.0.10
|
83
|
+
name: bundler
|
84
|
+
version_requirements: *id004
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
prerelease: false
|
87
|
+
type: :development
|
88
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
hash: 7
|
94
|
+
segments:
|
95
|
+
- 1
|
96
|
+
- 5
|
97
|
+
- 2
|
98
|
+
version: 1.5.2
|
99
|
+
name: jeweler
|
100
|
+
version_requirements: *id005
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
prerelease: false
|
103
|
+
type: :development
|
104
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
hash: 3
|
110
|
+
segments:
|
111
|
+
- 0
|
112
|
+
version: "0"
|
113
|
+
name: rcov
|
114
|
+
version_requirements: *id006
|
69
115
|
description: Get your iterations and releases in iCalendar format
|
70
116
|
email: niels@meerwerks.com
|
71
117
|
executables: []
|
@@ -73,12 +119,14 @@ executables: []
|
|
73
119
|
extensions: []
|
74
120
|
|
75
121
|
extra_rdoc_files:
|
76
|
-
-
|
122
|
+
- CHANGELOG.rdoc
|
77
123
|
- README.rdoc
|
124
|
+
- VERSION
|
78
125
|
files:
|
79
126
|
- .document
|
80
|
-
- .gitignore
|
81
127
|
- CHANGELOG.rdoc
|
128
|
+
- Gemfile
|
129
|
+
- Gemfile.lock
|
82
130
|
- LICENSE
|
83
131
|
- README.rdoc
|
84
132
|
- Rakefile
|
@@ -94,8 +142,8 @@ homepage: http://github.com/nielsm/tracker-ical
|
|
94
142
|
licenses: []
|
95
143
|
|
96
144
|
post_install_message:
|
97
|
-
rdoc_options:
|
98
|
-
|
145
|
+
rdoc_options: []
|
146
|
+
|
99
147
|
require_paths:
|
100
148
|
- lib
|
101
149
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -119,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
167
|
requirements: []
|
120
168
|
|
121
169
|
rubyforge_project:
|
122
|
-
rubygems_version: 1.
|
170
|
+
rubygems_version: 1.5.0
|
123
171
|
signing_key:
|
124
172
|
specification_version: 3
|
125
173
|
summary: Pivotal Tracker meets iCal
|