ticketmaster-basecamp 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +43 -2
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/lib/basecamp/basecamp.rb +1 -1
- data/lib/provider/basecamp.rb +2 -2
- data/lib/provider/comment.rb +1 -1
- data/lib/provider/project.rb +1 -1
- data/lib/provider/ticket.rb +3 -3
- data/spec/comments_spec.rb +1 -1
- data/spec/projects_spec.rb +1 -1
- data/spec/tickets_spec.rb +1 -1
- data/ticketmaster-basecamp.gemspec +78 -0
- metadata +23 -6
data/README.md
CHANGED
@@ -1,6 +1,47 @@
|
|
1
|
-
|
1
|
+
# ticketmaster-basecamp
|
2
2
|
|
3
|
-
|
3
|
+
This is the provider for interaction with (basecamp)[http://www.basecamphq.com] using (ticketmaster)[http://ticketrb.com]
|
4
|
+
|
5
|
+
# Basecamp Setup
|
6
|
+
|
7
|
+
Basecamp's API access is disabled by default on their accounts. You will have to go to the account page and enable it.
|
8
|
+
|
9
|
+
1. From the dashboard, click the "Account (Upgrade/Invoices)" tab in the right hand side.
|
10
|
+
2. Scroll down to the Basecamp API section. (It should be near the bottom, second-to-last.)
|
11
|
+
3. Enable it. Once it's enabled, you'll see: "The API is currently enabled for this account."
|
12
|
+
|
13
|
+
## Token
|
14
|
+
|
15
|
+
It is recommended that you use the authentication token instead of a username and password to authenticate with basecamp. The token can be found from the "My Info" link at the top right hand corner next to the "Sign out" link.
|
16
|
+
|
17
|
+
At the bottom of that page is the "Authentication tokens" section. Click on the "Show your tokens" link for your API token. It's the first one.
|
18
|
+
|
19
|
+
# Usage
|
20
|
+
|
21
|
+
Initialize the basecamp ticketmaster instance using a token or username and password:
|
22
|
+
basecamp = TicketMaster.new(:basecamp, :domain => 'yourdomain.basecamphq.com', :token => 'abc000...')
|
23
|
+
basecamp = TicketMaster.new(:basecamp, :domain => 'yourdomain.basecamphq.com', :username => 'you', :password => 'pass')
|
24
|
+
|
25
|
+
## Find projects
|
26
|
+
|
27
|
+
projects = basecamp.projects
|
28
|
+
project = basecamp.project(id)
|
29
|
+
|
30
|
+
## Find tickets
|
31
|
+
|
32
|
+
Since basecamp does not have the conventional "tickets", ticketmaster-basecamp considers a TodoItem as a ticket, but will prepend the TodoList's title to the TodoItem's title.
|
33
|
+
tickets = project.tickets
|
34
|
+
ticket = project.ticket(<todoitem_id>)
|
35
|
+
|
36
|
+
## Find comments
|
37
|
+
|
38
|
+
comments = ticket.comments
|
39
|
+
|
40
|
+
## More
|
41
|
+
|
42
|
+
For more usage information, see (ticketmaster)[http://github.com/hybridgroup/ticketmaster]. This provider should implement all the ticketmaster functionality. If it does not, please notify us.
|
43
|
+
|
44
|
+
Thanks for using ticketmaster!
|
4
45
|
|
5
46
|
== Note on Patches/Pull Requests
|
6
47
|
|
data/Rakefile
CHANGED
@@ -10,6 +10,7 @@ begin
|
|
10
10
|
gem.email = "hong.quach@abigfisch.com"
|
11
11
|
gem.homepage = "http://github.com/kiafaldorius/ticketmaster-basecamp"
|
12
12
|
gem.authors = ["HybridGroup"]
|
13
|
+
gem.add_dependency "ticketmaster", ">= 0.4.0"
|
13
14
|
gem.add_development_dependency "rspec", ">= 1.2.9"
|
14
15
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
16
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/lib/basecamp/basecamp.rb
CHANGED
data/lib/provider/basecamp.rb
CHANGED
@@ -17,9 +17,9 @@ module TicketMaster::Provider
|
|
17
17
|
end
|
18
18
|
unless auth.token.nil?
|
19
19
|
auth.username = auth.token
|
20
|
-
auth.password = 'Basecamp
|
20
|
+
auth.password = 'Basecamp'
|
21
21
|
end
|
22
|
-
|
22
|
+
BasecampAPI.establish_connection!(auth.domain, auth.username, auth.password, auth.ssl)
|
23
23
|
end
|
24
24
|
|
25
25
|
end
|
data/lib/provider/comment.rb
CHANGED
@@ -7,7 +7,7 @@ module TicketMaster::Provider
|
|
7
7
|
#
|
8
8
|
class Comment < TicketMaster::Provider::Base::Comment
|
9
9
|
# declare needed overloaded methods here
|
10
|
-
API =
|
10
|
+
API = BasecampAPI::Comment
|
11
11
|
|
12
12
|
def self.find_by_id(project_id, ticket_id, id)
|
13
13
|
self.new self::API.find(id)
|
data/lib/provider/project.rb
CHANGED
data/lib/provider/ticket.rb
CHANGED
@@ -23,7 +23,7 @@ module TicketMaster::Provider
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def self.search(project_id, options = {}, limit = 1000)
|
26
|
-
tickets =
|
26
|
+
tickets = BasecampAPI::TodoList.find(:all, :params => {:project_id => project_id}).collect do |list|
|
27
27
|
list.todo_items.collect { |item|
|
28
28
|
item.attributes['list'] = list
|
29
29
|
item
|
@@ -38,11 +38,11 @@ module TicketMaster::Provider
|
|
38
38
|
list_id = options[0].delete(:todo_list_id) || options[0].delete('todo_list_id')
|
39
39
|
project_id = options[0].delete(:project_id) || options[0].delete('project_id')
|
40
40
|
if list_id.nil? and project_id
|
41
|
-
list_id =
|
41
|
+
list_id = BasecampAPI::TodoList.create(:project_id => project_id, :name => 'New List').id
|
42
42
|
end
|
43
43
|
options[0][:todo_list_id] = list_id
|
44
44
|
end
|
45
|
-
something =
|
45
|
+
something = BasecampAPI::TodoItem.new(*options)
|
46
46
|
something.save
|
47
47
|
self.new something
|
48
48
|
end
|
data/spec/comments_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
2
|
|
3
3
|
describe "Ticketmaster::Provider::Basecamp::Comment" do
|
4
4
|
before(:all) do
|
5
|
-
headers = {'Authorization' => 'Basic
|
5
|
+
headers = {'Authorization' => 'Basic MDAwMDAwOkJhc2VjYW1w'}
|
6
6
|
wheaders = headers.merge('Content-Type' => 'application/xml')
|
7
7
|
ActiveResource::HttpMock.respond_to do |mock|
|
8
8
|
mock.get '/projects/5220065.xml', headers, fixture_for('projects/5220065'), 200
|
data/spec/projects_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
2
|
|
3
3
|
describe "Ticketmaster::Provider::Basecamp::Project" do
|
4
4
|
before(:all) do
|
5
|
-
headers = {'Authorization' => 'Basic
|
5
|
+
headers = {'Authorization' => 'Basic MDAwMDAwOkJhc2VjYW1w'}
|
6
6
|
wheaders = headers.merge('Content-Type' => 'application/xml')
|
7
7
|
@project_id = 5220065
|
8
8
|
ActiveResource::HttpMock.respond_to do |mock|
|
data/spec/tickets_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
2
|
|
3
3
|
describe "Ticketmaster::Provider::Basecamp::Ticket" do
|
4
4
|
before(:all) do
|
5
|
-
headers = {'Authorization' => 'Basic
|
5
|
+
headers = {'Authorization' => 'Basic MDAwMDAwOkJhc2VjYW1w'}
|
6
6
|
wheaders = headers.merge('Content-Type' => 'application/xml')
|
7
7
|
ActiveResource::HttpMock.respond_to do |mock|
|
8
8
|
mock.get '/projects/5220065.xml', headers, fixture_for('projects/5220065'), 200
|
@@ -0,0 +1,78 @@
|
|
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{ticketmaster-basecamp}
|
8
|
+
s.version = "0.1.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["HybridGroup"]
|
12
|
+
s.date = %q{2010-09-23}
|
13
|
+
s.description = %q{This gem provides an interface to basecamp through the ticketmaster gem}
|
14
|
+
s.email = %q{hong.quach@abigfisch.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.md"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".gitignore",
|
22
|
+
"LICENSE",
|
23
|
+
"README.md",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"lib/basecamp/basecamp.rb",
|
27
|
+
"lib/provider/basecamp.rb",
|
28
|
+
"lib/provider/comment.rb",
|
29
|
+
"lib/provider/project.rb",
|
30
|
+
"lib/provider/ticket.rb",
|
31
|
+
"lib/ticketmaster-basecamp.rb",
|
32
|
+
"spec/comments_spec.rb",
|
33
|
+
"spec/fixtures/comments.xml",
|
34
|
+
"spec/fixtures/comments/74197051.xml",
|
35
|
+
"spec/fixtures/comments/74197096.xml",
|
36
|
+
"spec/fixtures/projects.xml",
|
37
|
+
"spec/fixtures/projects/5220065.xml",
|
38
|
+
"spec/fixtures/projects/create.xml",
|
39
|
+
"spec/fixtures/todo_lists.xml",
|
40
|
+
"spec/fixtures/todo_lists/9972756_items.xml",
|
41
|
+
"spec/fixtures/todo_lists/9973518_items.xml",
|
42
|
+
"spec/projects_spec.rb",
|
43
|
+
"spec/spec.opts",
|
44
|
+
"spec/spec_helper.rb",
|
45
|
+
"spec/ticketmaster-basecamp_spec.rb",
|
46
|
+
"spec/tickets_spec.rb",
|
47
|
+
"ticketmaster-basecamp.gemspec"
|
48
|
+
]
|
49
|
+
s.homepage = %q{http://github.com/kiafaldorius/ticketmaster-basecamp}
|
50
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
51
|
+
s.require_paths = ["lib"]
|
52
|
+
s.rubygems_version = %q{1.3.7}
|
53
|
+
s.summary = %q{The basecamp provider for ticketmaster}
|
54
|
+
s.test_files = [
|
55
|
+
"spec/comments_spec.rb",
|
56
|
+
"spec/projects_spec.rb",
|
57
|
+
"spec/spec_helper.rb",
|
58
|
+
"spec/ticketmaster-basecamp_spec.rb",
|
59
|
+
"spec/tickets_spec.rb"
|
60
|
+
]
|
61
|
+
|
62
|
+
if s.respond_to? :specification_version then
|
63
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
64
|
+
s.specification_version = 3
|
65
|
+
|
66
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
67
|
+
s.add_runtime_dependency(%q<ticketmaster>, [">= 0.4.0"])
|
68
|
+
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
69
|
+
else
|
70
|
+
s.add_dependency(%q<ticketmaster>, [">= 0.4.0"])
|
71
|
+
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
72
|
+
end
|
73
|
+
else
|
74
|
+
s.add_dependency(%q<ticketmaster>, [">= 0.4.0"])
|
75
|
+
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ticketmaster-basecamp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- HybridGroup
|
@@ -15,13 +15,29 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-09-23 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
name:
|
22
|
+
name: ticketmaster
|
23
23
|
prerelease: false
|
24
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 15
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 4
|
33
|
+
- 0
|
34
|
+
version: 0.4.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: rspec
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
25
41
|
none: false
|
26
42
|
requirements:
|
27
43
|
- - ">="
|
@@ -33,7 +49,7 @@ dependencies:
|
|
33
49
|
- 9
|
34
50
|
version: 1.2.9
|
35
51
|
type: :development
|
36
|
-
version_requirements: *
|
52
|
+
version_requirements: *id002
|
37
53
|
description: This gem provides an interface to basecamp through the ticketmaster gem
|
38
54
|
email: hong.quach@abigfisch.com
|
39
55
|
executables: []
|
@@ -71,6 +87,7 @@ files:
|
|
71
87
|
- spec/spec_helper.rb
|
72
88
|
- spec/ticketmaster-basecamp_spec.rb
|
73
89
|
- spec/tickets_spec.rb
|
90
|
+
- ticketmaster-basecamp.gemspec
|
74
91
|
has_rdoc: true
|
75
92
|
homepage: http://github.com/kiafaldorius/ticketmaster-basecamp
|
76
93
|
licenses: []
|