taskmapper 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/.document +5 -0
  2. data/.travis.yml +4 -0
  3. data/Gemfile +12 -0
  4. data/Gemfile.lock +52 -0
  5. data/LICENSE +20 -0
  6. data/NOTES +18 -0
  7. data/README.md +296 -0
  8. data/Rakefile +40 -0
  9. data/TODO +1 -0
  10. data/VERSION +1 -0
  11. data/bin/tm +7 -0
  12. data/examples/tm_example.rb +11 -0
  13. data/examples/tm_example_2.rb +11 -0
  14. data/examples/tm_example_3.rb +21 -0
  15. data/examples/tm_example_4.rb +17 -0
  16. data/lib/taskmapper.rb +53 -0
  17. data/lib/taskmapper/authenticator.rb +2 -0
  18. data/lib/taskmapper/cli/commands/config.rb +100 -0
  19. data/lib/taskmapper/cli/commands/console.rb +35 -0
  20. data/lib/taskmapper/cli/commands/generate.rb +112 -0
  21. data/lib/taskmapper/cli/commands/generate/provider.rb +5 -0
  22. data/lib/taskmapper/cli/commands/generate/provider/comment.rb +14 -0
  23. data/lib/taskmapper/cli/commands/generate/provider/project.rb +26 -0
  24. data/lib/taskmapper/cli/commands/generate/provider/provider.rb +25 -0
  25. data/lib/taskmapper/cli/commands/generate/provider/ticket.rb +12 -0
  26. data/lib/taskmapper/cli/commands/help.rb +9 -0
  27. data/lib/taskmapper/cli/commands/help/config +27 -0
  28. data/lib/taskmapper/cli/commands/help/console +13 -0
  29. data/lib/taskmapper/cli/commands/help/generate +19 -0
  30. data/lib/taskmapper/cli/commands/help/help +7 -0
  31. data/lib/taskmapper/cli/commands/help/project +13 -0
  32. data/lib/taskmapper/cli/commands/help/ticket +14 -0
  33. data/lib/taskmapper/cli/commands/project.rb +140 -0
  34. data/lib/taskmapper/cli/commands/ticket.rb +145 -0
  35. data/lib/taskmapper/cli/common.rb +28 -0
  36. data/lib/taskmapper/cli/init.rb +77 -0
  37. data/lib/taskmapper/comment.rb +97 -0
  38. data/lib/taskmapper/common.rb +81 -0
  39. data/lib/taskmapper/dummy/comment.rb +27 -0
  40. data/lib/taskmapper/dummy/dummy.rb +28 -0
  41. data/lib/taskmapper/dummy/project.rb +42 -0
  42. data/lib/taskmapper/dummy/ticket.rb +43 -0
  43. data/lib/taskmapper/exception.rb +2 -0
  44. data/lib/taskmapper/helper.rb +72 -0
  45. data/lib/taskmapper/project.rb +145 -0
  46. data/lib/taskmapper/provider.rb +82 -0
  47. data/lib/taskmapper/tester/comment.rb +18 -0
  48. data/lib/taskmapper/tester/project.rb +19 -0
  49. data/lib/taskmapper/tester/tester.rb +28 -0
  50. data/lib/taskmapper/tester/ticket.rb +19 -0
  51. data/lib/taskmapper/ticket.rb +154 -0
  52. data/spec/project_spec.rb +84 -0
  53. data/spec/rcov.opts +1 -0
  54. data/spec/spec.opts +1 -0
  55. data/spec/spec_helper.rb +9 -0
  56. data/spec/taskmapper-cli_spec.rb +60 -0
  57. data/spec/taskmapper-exception_spec.rb +160 -0
  58. data/spec/taskmapper_spec.rb +13 -0
  59. data/spec/ticket_spec.rb +56 -0
  60. data/taskmapper.gemspec +118 -0
  61. metadata +189 -0
@@ -0,0 +1,160 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
4
+ require 'rubygems'
5
+ require 'taskmapper'
6
+
7
+ describe "TaskMapper Exception Messages" do
8
+ let(:exception) { TaskMapper::Exception }
9
+ let(:tm) { TaskMapper.new(:tester, {}) }
10
+ let(:validation_error) { "TaskMapper::Provider::Base::valid? method must be implemented by the provider" }
11
+ let(:easy_finder_error) { "TaskMapper::Provider::Helper::easy_finder method must be implemented by the provider" }
12
+
13
+ describe TaskMapper::Provider::Base do
14
+ context "when calling #valid? method" do
15
+ subject { lambda { tm.valid? } }
16
+ it { should raise_error(exception, validation_error) }
17
+ end
18
+ end
19
+
20
+ describe TaskMapper::Provider::Helper do
21
+ context "when calling #easy_finder" do
22
+ subject { lambda { tm.easy_finder(1, :test, {}) } }
23
+ it { should raise_error(exception, easy_finder_error) }
24
+ end
25
+ end
26
+
27
+ describe TaskMapper::Provider::Tester::Project do
28
+ let(:find_by_id_error) { "TaskMapper::Provider::Tester::Project::find_by_id method must be implemented by the provider" }
29
+ let(:find_by_attributes_error) { "TaskMapper::Provider::Tester::Project::find_by_attributes method must be implemented by the provider" }
30
+ let(:search_error) { "TaskMapper::Provider::Tester::Project::search method must be implemented by the provider"}
31
+ let(:create_error) { "TaskMapper::Provider::Tester::Project::create method must be implemented by the provider"}
32
+ let(:save_error) { "TaskMapper::Provider::Tester::Project::save method must be implemented by the provider"}
33
+ let(:destroy_error) { "TaskMapper::Provider::Tester::Project::destroy method must be implemented by the provider" }
34
+
35
+ context "when calling #find_by_id" do
36
+ subject { lambda { tm.project([1]) } }
37
+ it { should raise_error(exception, find_by_id_error) }
38
+ end
39
+
40
+ context "when calling #find_by_attributes" do
41
+ subject { lambda { tm.project.find :all, :name => 'Test Project' } }
42
+ it { should raise_error(exception, find_by_attributes_error) }
43
+ end
44
+
45
+ context "when calling #search" do
46
+ subject { lambda { tm.project.search :tag => 'testing' } }
47
+ it { should raise_error(exception, search_error) }
48
+ end
49
+
50
+ context "when calling #create" do
51
+ subject { lambda { tm.project.create :name => 'Foo Bar' } }
52
+ it { should raise_error(exception, create_error) }
53
+ end
54
+
55
+ context "when calling #save" do
56
+ subject { lambda { tm.project.save } }
57
+ pending { should raise_error(exception, save_error) }
58
+ end
59
+
60
+ context "when calling #destroy" do
61
+ let(:project) { TaskMapper::Provider::Tester::Project.new }
62
+ subject { lambda { project.destroy } }
63
+ it { should raise_error(exception, destroy_error) }
64
+ end
65
+ end
66
+
67
+ describe TaskMapper::Provider::Tester::Ticket do
68
+ let(:ticket) { TaskMapper::Provider::Tester::Ticket.new(1) }
69
+ let(:find_by_id_error) { "TaskMapper::Provider::Tester::Ticket::find_by_id method must be implemented by the provider" }
70
+ let(:find_by_attributes_error) { "TaskMapper::Provider::Tester::Ticket::find_by_attributes method must be implemented by the provider" }
71
+ let(:search_error) { "TaskMapper::Provider::Tester::Ticket::search method must be implemented by the provider" }
72
+ let(:create_error) { "TaskMapper::Provider::Tester::Ticket::create method must be implemented by the provider" }
73
+ let(:save_error) { "TaskMapper::Provider::Tester::Ticket::save method must be implemented by the provider" }
74
+ let(:destroy_error) { "TaskMapper::Provider::Tester::Ticket::destroy method must be implemented by the provider" }
75
+ let(:close_error) { "TaskMapper::Provider::Tester::Ticket::close method must be implemented by the provider" }
76
+ let(:reload_error) { "TaskMapper::Provider::Tester::Ticket::reload! method must be implemented by the provider" }
77
+
78
+ context "when #find_by_id" do
79
+ subject { lambda { tm.tickets(:id => 22) } }
80
+ it { should raise_error(exception, find_by_id_error) }
81
+ end
82
+
83
+ context "when #find_by_attributes" do
84
+ subject { lambda { tm.ticket.find(1, :all, :title => 'Test ticket') } }
85
+ it { should raise_error(exception, find_by_attributes_error) }
86
+ end
87
+
88
+ context "when #search" do
89
+ subject { lambda { tm.ticket.search :tag => 'testing' } }
90
+ it { should raise_error(exception, search_error) }
91
+ end
92
+
93
+ context "when #create" do
94
+ subject { lambda { tm.ticket.create :name => 'Foo Bar' } }
95
+ it { should raise_error(exception, create_error) }
96
+ end
97
+
98
+ context "when #save" do
99
+ subject { lambda { ticket.save } }
100
+ it { should raise_error(exception, save_error) }
101
+ end
102
+
103
+ context "when #destroy" do
104
+ subject { lambda { ticket.destroy } }
105
+ it { should raise_error(exception, destroy_error) }
106
+ end
107
+
108
+ context "when #close" do
109
+ subject { lambda { ticket.close } }
110
+ it { should raise_error(exception, close_error) }
111
+ end
112
+
113
+ context "when #reload!" do
114
+ subject { lambda { ticket.reload! } }
115
+ it { should raise_error(exception, reload_error) }
116
+ end
117
+ end
118
+
119
+ describe TaskMapper::Provider::Tester::Comment do
120
+ let(:ticket_with_comments) { TaskMapper::Provider::Tester::Ticket.new(1) }
121
+ let(:comment) { TaskMapper::Provider::Tester::Comment.new(1, 1) }
122
+ let(:find_by_id_error) { "TaskMapper::Provider::Tester::Comment::find_by_id method must be implemented by the provider" }
123
+ let(:find_by_attributes_error) { "TaskMapper::Provider::Tester::Comment::find_by_attributes method must be implemented by the provider" }
124
+ let(:search_error) { "TaskMapper::Provider::Tester::Comment::search method must be implemented by the provider" }
125
+ let(:create_error) { "TaskMapper::Provider::Tester::Comment::create method must be implemented by the provider" }
126
+ let(:save_error) { "TaskMapper::Provider::Tester::Comment::save method must be implemented by the provider" }
127
+ let(:destroy_error) { "TaskMapper::Provider::Tester::Comment::destroy method must be implemented by the provider" }
128
+
129
+ context "when #find_by_id" do
130
+ subject { lambda { ticket_with_comments.comment.find(1,1,[1,2]) } }
131
+ it { should raise_error(exception, find_by_id_error) }
132
+ end
133
+
134
+ context "when #find_by_attributes" do
135
+ subject { lambda { ticket_with_comments.comment.find(1, 1, :all, :tag => 'tag') } }
136
+ it { should raise_error(exception, find_by_attributes_error) }
137
+ end
138
+
139
+ context "when #search" do
140
+ subject { lambda { ticket_with_comments.comment.search(1, 1, :tag => 'testing') } }
141
+ it { should raise_error(exception, search_error) }
142
+ end
143
+
144
+ context "when #create" do
145
+ subject { lambda { ticket_with_comments.comment.create :name => 'Foo Bar' } }
146
+ it { should raise_error(exception, create_error) }
147
+ end
148
+
149
+ context "when #save" do
150
+ subject { lambda { comment.save } }
151
+ it { should raise_error(exception, save_error) }
152
+ end
153
+
154
+ context "when #destroy" do
155
+ subject { lambda { comment.destroy } }
156
+ it { should raise_error(exception, destroy_error) }
157
+ end
158
+ end
159
+ end
160
+
@@ -0,0 +1,13 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ # This can also act as an example test or test skeleton for your provider.
4
+ # Just replace the Dummy in @project_class and @ticket_class
5
+ # Also, remember to mock or stub any API calls
6
+ describe TaskMapper do
7
+ context "when calling new it should always return a taskmapper instance" do
8
+ subject { TaskMapper.new(:dummy, {}) }
9
+ it { should be_an_instance_of TaskMapper }
10
+ it { should be_a_kind_of TaskMapper::Provider::Dummy }
11
+ end
12
+
13
+ end
@@ -0,0 +1,56 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ # This can also act as an example test or test skeleton for your provider.
4
+ # Just replace the Dummy in @project_class and @ticket_class
5
+ # Also, remember to mock or stub any API calls
6
+ describe "Tickets" do
7
+ let(:tm) { TaskMapper.new(:dummy, {}) }
8
+ let(:project_class) { TaskMapper::Provider::Dummy::Project }
9
+ let(:ticket_class) { TaskMapper::Provider::Dummy::Ticket }
10
+ let(:project) { tm.projects.first }
11
+
12
+ describe "for a Project" do
13
+ context "when #tickets" do
14
+ subject { project.tickets }
15
+ it { should be_an_instance_of Array }
16
+ it { subject.first.should be_an_instance_of ticket_class }
17
+ end
18
+
19
+ context "when searching wanting back all tickets that match the query" do
20
+ subject { project.tickets([999]) }
21
+ it { should be_an_instance_of Array }
22
+ it { subject.first.should be_an_instance_of ticket_class }
23
+ it { subject.first.id.should be_eql(999) }
24
+ end
25
+
26
+ context "when passing an query hash" do
27
+ subject { project.tickets(:id => 999) }
28
+ it { should be_an_instance_of Array }
29
+ end
30
+
31
+ context "when searching wanting back the first ticket that matches the query" do
32
+ subject { project.ticket }
33
+ it { should be_eql TaskMapper::Provider::Dummy::Ticket }
34
+ end
35
+
36
+ context "when querying using default ID query" do
37
+ subject { project.ticket(888) }
38
+ it { should be_an_instance_of ticket_class }
39
+ end
40
+
41
+ context "when passing an id to #ticket" do
42
+ subject { project.ticket(888) }
43
+ it { subject.id.should be_eql(888) }
44
+ end
45
+
46
+ context "when passing a hash to #ticket" do
47
+ subject { project.ticket(:id => 888) }
48
+ it { should be_an_instance_of ticket_class }
49
+ end
50
+
51
+ context "when passing an id to #ticket" do
52
+ subject { project.ticket(888) }
53
+ it { subject.id.should be_eql(888) }
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,118 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "taskmapper"
8
+ s.version = "0.8.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["kiafaldorius", "Sirupsen", "deadprogrammer"]
12
+ s.date = "2012-05-09"
13
+ s.description = "TaskMapper provides a universal API to ticket tracking and project management systems."
14
+ s.email = "info@hybridgroup.com"
15
+ s.executables = ["tm"]
16
+ s.extra_rdoc_files = [
17
+ "LICENSE",
18
+ "README.md",
19
+ "TODO"
20
+ ]
21
+ s.files = [
22
+ ".document",
23
+ ".travis.yml",
24
+ "Gemfile",
25
+ "Gemfile.lock",
26
+ "LICENSE",
27
+ "NOTES",
28
+ "README.md",
29
+ "Rakefile",
30
+ "TODO",
31
+ "VERSION",
32
+ "bin/tm",
33
+ "examples/tm_example.rb",
34
+ "examples/tm_example_2.rb",
35
+ "examples/tm_example_3.rb",
36
+ "examples/tm_example_4.rb",
37
+ "lib/taskmapper.rb",
38
+ "lib/taskmapper/authenticator.rb",
39
+ "lib/taskmapper/cli/commands/config.rb",
40
+ "lib/taskmapper/cli/commands/console.rb",
41
+ "lib/taskmapper/cli/commands/generate.rb",
42
+ "lib/taskmapper/cli/commands/generate/provider.rb",
43
+ "lib/taskmapper/cli/commands/generate/provider/comment.rb",
44
+ "lib/taskmapper/cli/commands/generate/provider/project.rb",
45
+ "lib/taskmapper/cli/commands/generate/provider/provider.rb",
46
+ "lib/taskmapper/cli/commands/generate/provider/ticket.rb",
47
+ "lib/taskmapper/cli/commands/help.rb",
48
+ "lib/taskmapper/cli/commands/help/config",
49
+ "lib/taskmapper/cli/commands/help/console",
50
+ "lib/taskmapper/cli/commands/help/generate",
51
+ "lib/taskmapper/cli/commands/help/help",
52
+ "lib/taskmapper/cli/commands/help/project",
53
+ "lib/taskmapper/cli/commands/help/ticket",
54
+ "lib/taskmapper/cli/commands/project.rb",
55
+ "lib/taskmapper/cli/commands/ticket.rb",
56
+ "lib/taskmapper/cli/common.rb",
57
+ "lib/taskmapper/cli/init.rb",
58
+ "lib/taskmapper/comment.rb",
59
+ "lib/taskmapper/common.rb",
60
+ "lib/taskmapper/dummy/comment.rb",
61
+ "lib/taskmapper/dummy/dummy.rb",
62
+ "lib/taskmapper/dummy/project.rb",
63
+ "lib/taskmapper/dummy/ticket.rb",
64
+ "lib/taskmapper/exception.rb",
65
+ "lib/taskmapper/helper.rb",
66
+ "lib/taskmapper/project.rb",
67
+ "lib/taskmapper/provider.rb",
68
+ "lib/taskmapper/tester/comment.rb",
69
+ "lib/taskmapper/tester/project.rb",
70
+ "lib/taskmapper/tester/tester.rb",
71
+ "lib/taskmapper/tester/ticket.rb",
72
+ "lib/taskmapper/ticket.rb",
73
+ "spec/project_spec.rb",
74
+ "spec/rcov.opts",
75
+ "spec/spec.opts",
76
+ "spec/spec_helper.rb",
77
+ "spec/taskmapper-cli_spec.rb",
78
+ "spec/taskmapper-exception_spec.rb",
79
+ "spec/taskmapper_spec.rb",
80
+ "spec/ticket_spec.rb",
81
+ "taskmapper.gemspec"
82
+ ]
83
+ s.homepage = "http://ticketrb.com"
84
+ s.require_paths = ["lib"]
85
+ s.rubygems_version = "1.8.15"
86
+ s.summary = "TaskMapper provides a universal API to ticket tracking and project management systems."
87
+
88
+ if s.respond_to? :specification_version then
89
+ s.specification_version = 3
90
+
91
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
92
+ s.add_runtime_dependency(%q<activeresource>, ["~> 3.0"])
93
+ s.add_runtime_dependency(%q<activesupport>, ["~> 3.0"])
94
+ s.add_runtime_dependency(%q<hashie>, ["~> 1.2"])
95
+ s.add_development_dependency(%q<rspec>, ["~> 2.0"])
96
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8"])
97
+ s.add_development_dependency(%q<simplecov>, ["~> 0.5"])
98
+ s.add_development_dependency(%q<rcov>, ["~> 1.0"])
99
+ else
100
+ s.add_dependency(%q<activeresource>, ["~> 3.0"])
101
+ s.add_dependency(%q<activesupport>, ["~> 3.0"])
102
+ s.add_dependency(%q<hashie>, ["~> 1.2"])
103
+ s.add_dependency(%q<rspec>, ["~> 2.0"])
104
+ s.add_dependency(%q<jeweler>, ["~> 1.8"])
105
+ s.add_dependency(%q<simplecov>, ["~> 0.5"])
106
+ s.add_dependency(%q<rcov>, ["~> 1.0"])
107
+ end
108
+ else
109
+ s.add_dependency(%q<activeresource>, ["~> 3.0"])
110
+ s.add_dependency(%q<activesupport>, ["~> 3.0"])
111
+ s.add_dependency(%q<hashie>, ["~> 1.2"])
112
+ s.add_dependency(%q<rspec>, ["~> 2.0"])
113
+ s.add_dependency(%q<jeweler>, ["~> 1.8"])
114
+ s.add_dependency(%q<simplecov>, ["~> 0.5"])
115
+ s.add_dependency(%q<rcov>, ["~> 1.0"])
116
+ end
117
+ end
118
+
metadata ADDED
@@ -0,0 +1,189 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: taskmapper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.8.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - kiafaldorius
9
+ - Sirupsen
10
+ - deadprogrammer
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2012-05-09 00:00:00.000000000Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: activeresource
18
+ requirement: &88047140 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: '3.0'
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: *88047140
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: &88046840 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: '3.0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: *88046840
38
+ - !ruby/object:Gem::Dependency
39
+ name: hashie
40
+ requirement: &88046560 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '1.2'
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: *88046560
49
+ - !ruby/object:Gem::Dependency
50
+ name: rspec
51
+ requirement: &88046230 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: '2.0'
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: *88046230
60
+ - !ruby/object:Gem::Dependency
61
+ name: jeweler
62
+ requirement: &88045960 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: '1.8'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: *88045960
71
+ - !ruby/object:Gem::Dependency
72
+ name: simplecov
73
+ requirement: &88045650 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: '0.5'
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: *88045650
82
+ - !ruby/object:Gem::Dependency
83
+ name: rcov
84
+ requirement: &88045310 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '1.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: *88045310
93
+ description: TaskMapper provides a universal API to ticket tracking and project management
94
+ systems.
95
+ email: info@hybridgroup.com
96
+ executables:
97
+ - tm
98
+ extensions: []
99
+ extra_rdoc_files:
100
+ - LICENSE
101
+ - README.md
102
+ - TODO
103
+ files:
104
+ - .document
105
+ - .travis.yml
106
+ - Gemfile
107
+ - Gemfile.lock
108
+ - LICENSE
109
+ - NOTES
110
+ - README.md
111
+ - Rakefile
112
+ - TODO
113
+ - VERSION
114
+ - bin/tm
115
+ - examples/tm_example.rb
116
+ - examples/tm_example_2.rb
117
+ - examples/tm_example_3.rb
118
+ - examples/tm_example_4.rb
119
+ - lib/taskmapper.rb
120
+ - lib/taskmapper/authenticator.rb
121
+ - lib/taskmapper/cli/commands/config.rb
122
+ - lib/taskmapper/cli/commands/console.rb
123
+ - lib/taskmapper/cli/commands/generate.rb
124
+ - lib/taskmapper/cli/commands/generate/provider.rb
125
+ - lib/taskmapper/cli/commands/generate/provider/comment.rb
126
+ - lib/taskmapper/cli/commands/generate/provider/project.rb
127
+ - lib/taskmapper/cli/commands/generate/provider/provider.rb
128
+ - lib/taskmapper/cli/commands/generate/provider/ticket.rb
129
+ - lib/taskmapper/cli/commands/help.rb
130
+ - lib/taskmapper/cli/commands/help/config
131
+ - lib/taskmapper/cli/commands/help/console
132
+ - lib/taskmapper/cli/commands/help/generate
133
+ - lib/taskmapper/cli/commands/help/help
134
+ - lib/taskmapper/cli/commands/help/project
135
+ - lib/taskmapper/cli/commands/help/ticket
136
+ - lib/taskmapper/cli/commands/project.rb
137
+ - lib/taskmapper/cli/commands/ticket.rb
138
+ - lib/taskmapper/cli/common.rb
139
+ - lib/taskmapper/cli/init.rb
140
+ - lib/taskmapper/comment.rb
141
+ - lib/taskmapper/common.rb
142
+ - lib/taskmapper/dummy/comment.rb
143
+ - lib/taskmapper/dummy/dummy.rb
144
+ - lib/taskmapper/dummy/project.rb
145
+ - lib/taskmapper/dummy/ticket.rb
146
+ - lib/taskmapper/exception.rb
147
+ - lib/taskmapper/helper.rb
148
+ - lib/taskmapper/project.rb
149
+ - lib/taskmapper/provider.rb
150
+ - lib/taskmapper/tester/comment.rb
151
+ - lib/taskmapper/tester/project.rb
152
+ - lib/taskmapper/tester/tester.rb
153
+ - lib/taskmapper/tester/ticket.rb
154
+ - lib/taskmapper/ticket.rb
155
+ - spec/project_spec.rb
156
+ - spec/rcov.opts
157
+ - spec/spec.opts
158
+ - spec/spec_helper.rb
159
+ - spec/taskmapper-cli_spec.rb
160
+ - spec/taskmapper-exception_spec.rb
161
+ - spec/taskmapper_spec.rb
162
+ - spec/ticket_spec.rb
163
+ - taskmapper.gemspec
164
+ homepage: http://ticketrb.com
165
+ licenses: []
166
+ post_install_message:
167
+ rdoc_options: []
168
+ require_paths:
169
+ - lib
170
+ required_ruby_version: !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ! '>='
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ required_rubygems_version: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ requirements: []
183
+ rubyforge_project:
184
+ rubygems_version: 1.8.15
185
+ signing_key:
186
+ specification_version: 3
187
+ summary: TaskMapper provides a universal API to ticket tracking and project management
188
+ systems.
189
+ test_files: []