taskmapper 0.8.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.
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: []