ticketmaster 0.3.2 → 0.3.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/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009 Hybrid Group
1
+ Copyright (c) 2009-2010 The Hybrid Group
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -11,6 +11,7 @@ begin
11
11
  gem.homepage = "http://ticketrb.com"
12
12
  gem.authors = ["Sirupsen", "deadprogrammer"]
13
13
  gem.add_dependency "hashie", ">= 0"
14
+ gem.add_dependency "activeresource", ">= 0"
14
15
  gem.add_development_dependency "shoulda", ">= 0"
15
16
  end
16
17
  Jeweler::GemcutterTasks.new
@@ -18,29 +19,25 @@ rescue LoadError
18
19
  puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
19
20
  end
20
21
 
21
- require 'rake/testtask'
22
- Rake::TestTask.new(:test) do |test|
23
- test.libs << 'lib' << 'test'
24
- test.pattern = 'test/**/test_*.rb'
25
- test.verbose = true
22
+
23
+ require 'spec/rake/spectask'
24
+ Spec::Rake::SpecTask.new(:spec) do |spec|
25
+ spec.libs << 'lib' << 'spec'
26
+ spec.spec_files = FileList['spec/**/*_spec.rb']
26
27
  end
27
28
 
28
- begin
29
- require 'rcov/rcovtask'
30
- Rcov::RcovTask.new do |test|
31
- test.libs << 'test'
32
- test.pattern = 'test/**/test_*.rb'
33
- test.verbose = true
34
- end
35
- rescue LoadError
36
- task :rcov do
37
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
29
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
30
+ spec.libs << 'lib' << 'spec'
31
+ spec.pattern = 'spec/**/*_spec.rb'
32
+ spec.rcov = true
33
+ spec.rcov_opts = lambda do
34
+ IO.readlines("spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
38
35
  end
39
36
  end
40
37
 
41
- task :test => :check_dependencies
38
+ task :spec => :check_dependencies
42
39
 
43
- task :default => :test
40
+ task :default => :spec
44
41
 
45
42
  require 'rake/rdoctask'
46
43
  Rake::RDocTask.new do |rdoc|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.3.3
@@ -16,7 +16,7 @@ def open_irb(options, argv)
16
16
  providers.delete 'default'
17
17
  require 'rubygems'
18
18
  require 'ticketmaster'
19
- providers.reduce(requires) do |mem, p|
19
+ providers.inject(requires) do |mem, p|
20
20
  begin
21
21
  require "ticketmaster-#{p}"
22
22
  requires << "-r ticketmaster-#{p} "
@@ -11,8 +11,9 @@ end
11
11
 
12
12
  # A utility method used to separate name:value pairs
13
13
  def attributes_hash(kvlist)
14
+ require 'enumerator' if RUBY_VERSION < "1.8.7"
14
15
  if kvlist.is_a?(String)
15
- kvlist.split(',').reduce({}) do |mem, kv|
16
+ kvlist.split(',').inject({}) do |mem, kv|
16
17
  key, value = kv.split(':')
17
18
  mem[key] = value
18
19
  mem
@@ -14,7 +14,7 @@ commands ={ 'help' => 'Get the help text for a particular command',
14
14
 
15
15
  helptext = lambda {
16
16
  helpmsg = "\nAvailable commands:\n"
17
- commands.sort.reduce(helpmsg) { |mem, cmd| mem << "\t#{cmd.join("\t\t")}\n" }
17
+ commands.sort.inject(helpmsg) { |mem, cmd| mem << "\t#{cmd.join("\t\t")}\n" }
18
18
  helpmsg << "\nSee 'ticket help COMMAND' for more information on a specific command."
19
19
  }
20
20
 
@@ -29,13 +29,12 @@ module TicketMaster::Provider
29
29
  @cache ||= {}
30
30
  first = options.shift
31
31
  case first
32
- when ActiveResource::Base
32
+ when Hash
33
+ super(first.to_hash)
34
+ else
33
35
  @system_data[:client] = first
34
36
  self.prefix_options ||= @system_data[:client].prefix_options if @system_data[:client].prefix_options
35
37
  super(first.attributes)
36
-
37
- when Hash
38
- super(first.to_hash)
39
38
  end
40
39
  end
41
40
 
@@ -0,0 +1,27 @@
1
+ module TicketMaster::Provider
2
+ module Dummy
3
+ # This is the Comment class for the Dummy provider
4
+ class Comment < TicketMaster::Provider::Base::Comment
5
+
6
+
7
+ def self.find_by_id(id)
8
+ self.new({:id => id})
9
+ end
10
+
11
+ def self.find_by_attributes(*options)
12
+ [self.new(*options)]
13
+ end
14
+
15
+ # You don't need to define an initializer, this is only here to initialize dummy data
16
+ def initialize(project_id, ticket_id, *options)
17
+ data = {:id => rand(1000), :status => ['lol', 'rofl', 'lmao', 'lamo', 'haha', 'heh'][rand(6)],
18
+ :priority => rand(10), :summary => 'Tickets ticket ticket ticket', :resolution => false,
19
+ :created_at => Time.now, :updated_at => Time.now, :description => 'Ticket ticket ticket ticket laughing',
20
+ :assignee => 'lol-man'}
21
+ @system = :dummy
22
+ super(data.merge(options.first || {}))
23
+ end
24
+
25
+ end
26
+ end
27
+ end
@@ -14,52 +14,15 @@ module TicketMaster::Provider
14
14
  # around the TicketMaster.new call.
15
15
  module Dummy
16
16
  include TicketMaster::Provider::Base
17
- @system = :dummy
18
17
  # An example of what to do if you would like to do TicketMaster::Provider::Dummy.new(...)
19
18
  # rather than TicketMaster.new(:dummy, ...)
20
19
  def self.new(authentication = {})
21
20
  TicketMaster.new(:dummy, authentication)
22
21
  # maybe do some other stuff
23
22
  end
24
-
25
- # It returns all projects...
26
- def projects(*options)
27
- return Project.find(*options) if options.length > 0
28
- [Project.new]
29
- end
30
-
31
- # It returns all tickets...
32
- def tickets(*options)
33
- return Ticket.find(*options) if options.length > 0
34
- [Ticket.new]
35
- end
36
-
37
- # Returning a single ticket based on parameters or a Ticket class if no parameters given
38
- #
39
- # The later is for doing:
40
- # ticketmaster.ticket.find(...)
41
- # ticketmaster.tickets.create(...)
42
- #
43
- # It's semantically nicer to use ticketmaster.tickets.find ... but people do strange things...
44
- def ticket(*options)
45
- return Ticket.new(*options) if options.length > 0
46
- TicketMaster::Provider::Dummy::Ticket
47
- end
48
-
49
- # Return a single project based on parameters or the Project class if no parameters given
50
- #
51
- # The later is for doing:
52
- # ticketmaster.project.find(...)
53
- # ticketmaster.tickets.create(...)
54
- #
55
- # (It's semantically nicer to use ticketmaster.projects.find ... but people do strange things)
56
- def project(*options)
57
- return Project.new(*options) if options.length > 0
58
- TicketMaster::Provider::Dummy::Project
59
- end
60
23
  end
61
24
  end
62
25
 
63
- %w| project ticket |.each do |f|
26
+ %w| project ticket comment |.each do |f|
64
27
  require File.dirname(__FILE__) + '/' + f +'.rb'
65
28
  end
@@ -2,22 +2,17 @@ module TicketMaster::Provider
2
2
  module Dummy
3
3
  # This is the Project class for the Dummy provider
4
4
  class Project < TicketMaster::Provider::Base::Project
5
- # This serves to find projects
6
- # As noted in the Project class's documentation, we should try to accept these:
7
- #
8
- # * find(:all) - Returns an array of all projects
9
- # * find(##) - Returns a project based on that id or some other primary (unique) attribute
10
- # * find(:first, :summary => 'Project name') - Returns a project based on the project's attributes
11
- # * find(:summary => 'Test Project') - Returns all projects based on the given attribute(s)
12
- def self.find(*options)
13
- first = options.shift
14
- if first.nil? or first == :all
15
- [Project.new]
16
- elsif first == :first
17
- Project.new(options.shift)
18
- elsif first.is_a?(Hash)
19
- [Project.new(first)]
20
- end
5
+
6
+ def self.find_by_id(id)
7
+ self.new({:id => id})
8
+ end
9
+
10
+ def self.find_by_attributes(*options)
11
+ [self.new(*options)]
12
+ end
13
+
14
+ def self.create(*attributes)
15
+ self.new(*attributes)
21
16
  end
22
17
 
23
18
  # You should define @system and @system_data here.
@@ -31,18 +26,6 @@ module TicketMaster::Provider
31
26
  super(data.merge(options.first || {}))
32
27
  end
33
28
 
34
- # Should return all of the project's tickets
35
- def tickets(*options)
36
- return Ticket.find(*options) if options.length > 0
37
- [Ticket.new]
38
- end
39
-
40
- # Point it to the Dummy's Ticket class
41
- def ticket(*options)
42
- return Ticket.find(:first, options.first) if options.length > 0
43
- Ticket
44
- end
45
-
46
29
  # Nothing to save so we always return true
47
30
  # ...unless it's an odd numbered second on Friday the 13th. muhaha!
48
31
  def save
@@ -51,7 +34,7 @@ module TicketMaster::Provider
51
34
  end
52
35
 
53
36
  # Nothing to update, so we always return true
54
- def update(*options)
37
+ def update!(*options)
55
38
  return true
56
39
  end
57
40
  end
@@ -4,31 +4,20 @@ module TicketMaster::Provider
4
4
  class Ticket < TicketMaster::Provider::Base::Ticket
5
5
  @system = :dummy
6
6
 
7
- # Find a ticket
8
- #
9
- # The implementation should be able to accept these cases if feasible:
10
- #
11
- # * find(:all) - Returns an array of all tickets
12
- # * find(##) - Returns a project based on that id or some other primary (unique) attribute
13
- # * find(:first, :summary => 'Ticket title') - Returns a ticket based on the ticket's attributes
14
- # * find(:summary => 'Test Ticket') - Returns all tickets based on the given attributes
15
- def self.find(*options)
16
- first = options.shift
17
- if first.nil? or first == :all
18
- [Ticket.new]
19
- elsif first == :first
20
- Ticket.new(options.shift)
21
- elsif first.is_a?(Hash)
22
- [Ticket.new(first)]
23
- end
7
+ def self.find_by_id(project_id, ticket_id)
8
+ self.new(project_id, {:id => ticket_id})
9
+ end
10
+
11
+ def self.find_by_attributes(*ticket_attributes)
12
+ [self.new(*ticket_attributes)]
24
13
  end
25
14
 
26
15
  # You don't need to define an initializer, this is only here to initialize dummy data
27
- def initialize(*options)
16
+ def initialize(project_id, *options)
28
17
  data = {:id => rand(1000), :status => ['lol', 'rofl', 'lmao', 'lamo', 'haha', 'heh'][rand(6)],
29
18
  :priority => rand(10), :summary => 'Tickets ticket ticket ticket', :resolution => false,
30
19
  :created_at => Time.now, :updated_at => Time.now, :description => 'Ticket ticket ticket ticket laughing',
31
- :assignee => 'lol-man'}
20
+ :assignee => 'lol-man', :project_id => project_id}
32
21
  @system = :dummy
33
22
  super(data.merge(options.first || {}))
34
23
  end
@@ -22,7 +22,7 @@ module TicketMaster::Provider
22
22
  # Goes through all the things and returns results that match the options attributes hash
23
23
  def search_by_attribute(things, options = {}, limit = 1000)
24
24
  things.find_all do |thing|
25
- options.reduce(true) do |memo, kv|
25
+ options.inject(true) do |memo, kv|
26
26
  break unless memo
27
27
  key, value = kv
28
28
  begin
@@ -40,11 +40,11 @@ module TicketMaster::Provider
40
40
  #
41
41
  # ex: filter_string({:name => 'some value', :tags => ['abc', 'def']}) = "name:'some value' tag:abc tag:def"
42
42
  def filter_string(filter = {}, array_join = nil)
43
- filter.reduce('') do |mem, kv|
43
+ filter.inject('') do |mem, kv|
44
44
  key, value = kv
45
45
  if value.is_a?(Array)
46
46
  if !array_join.nil?
47
- mem += value.reduce('') { |m, v|
47
+ mem += value.inject('') { |m, v|
48
48
  v = "\"#{v}\"" if v.to_s.include?(' ')
49
49
  m+= "#{key}:#{v}"
50
50
  }
@@ -44,6 +44,11 @@ module TicketMaster::Provider
44
44
  easy_finder(@provider::Project, :all, options)
45
45
  end
46
46
 
47
+ # Create a project same as project.create()
48
+ def project!(*options)
49
+ project.create(*options)
50
+ end
51
+
47
52
  # Providers should try to define this method
48
53
  #
49
54
  # It returns the ticket class for this provider, so that there can be calls such as
data/lib/ticketmaster.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  %w{
2
2
  rubygems
3
3
  hashie
4
+ active_resource
4
5
  }.each {|lib| require lib }
5
6
 
6
7
  class TicketMaster
@@ -15,6 +16,7 @@ end
15
16
  authenticator
16
17
  provider
17
18
  exception
19
+ dummy/dummy.rb
18
20
  }.each {|lib| require File.dirname(__FILE__) + '/ticketmaster/' + lib }
19
21
 
20
22
 
@@ -0,0 +1,149 @@
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 "Projects" do
7
+ before(:each) do
8
+ @ticketmaster = TicketMaster.new(:dummy, {})
9
+ @project_class = TicketMaster::Provider::Dummy::Project
10
+ end
11
+
12
+ describe "with a connection to a provider" do
13
+ it "should return an array" do
14
+ @ticketmaster.projects.should be_an_instance_of Array
15
+ end
16
+
17
+ it "should return a project as first element" do
18
+ @ticketmaster.projects.first.should be_an_instance_of @project_class
19
+ end
20
+
21
+ it "should return a project as last element" do
22
+ @ticketmaster.projects.last.should be_an_instance_of @project_class
23
+ end
24
+
25
+ it "should return a Project by name from collection" do
26
+ @ticketmaster.project(:name => "Whack whack what?").should be_an_instance_of @project_class
27
+ end
28
+
29
+ it "should have a project description for first project" do
30
+ @ticketmaster.projects.first.description.should == "Mock!-ing Bird"
31
+ end
32
+
33
+ it "should have a project name for first project" do
34
+ @ticketmaster.projects(:name => "Whack whack what?").first.name.should == "Whack whack what?"
35
+ end
36
+
37
+ describe "when searching by ID" do
38
+ before do
39
+ @project = @ticketmaster.projects(555)
40
+ end
41
+
42
+ it "should return an array" do
43
+ @project.should be_an_instance_of @project_class
44
+ end
45
+
46
+ it "should return Project with the correct ID" do
47
+ @project.id.should == 555
48
+ end
49
+ end
50
+
51
+ describe "when searching with an array of IDs" do
52
+ before do
53
+ @projects = @ticketmaster.projects([555])
54
+ end
55
+
56
+ it "should return an array" do
57
+ @projects.should be_an_instance_of Array
58
+ end
59
+
60
+ it "should return a Project as first element" do
61
+ @projects.first.should be_an_instance_of @project_class
62
+ end
63
+
64
+ it "should return Project with the correct ID" do
65
+ @projects.first.id.should == 555
66
+ end
67
+ end
68
+
69
+ describe "when searching by hash" do
70
+ before do
71
+ @projects = @ticketmaster.projects(:id => 555)
72
+ end
73
+
74
+ it "should return an array" do
75
+ @projects.should be_an_instance_of Array
76
+ end
77
+
78
+ it "should return a Project as first element" do
79
+ @projects.first.should be_an_instance_of @project_class
80
+ end
81
+
82
+ it "should return Project with the correct ID" do
83
+ @projects.first.id.should == 555
84
+ end
85
+ end
86
+ end
87
+
88
+ describe "for a specific project" do
89
+ it "should return the first project by default" do
90
+ @ticketmaster.project.should == @project_class
91
+ end
92
+
93
+ describe "with no params" do
94
+ it "should return first Project" do
95
+ @ticketmaster.project.first.description.should == "Mock!-ing Bird"
96
+ end
97
+
98
+ it "should return last project" do
99
+ @ticketmaster.project.last.description.should == "Mock!-ing Bird"
100
+ end
101
+ end
102
+
103
+ describe "when searching by hash" do
104
+ it "should return first Project" do
105
+ @ticketmaster.project.find(:first, :description => "Shocking Dirb").should be_an_instance_of @project_class
106
+ end
107
+
108
+ it "should return first Project with correct description" do
109
+ @ticketmaster.project.find(:first, :description => "Shocking Dirb").description.should == "Shocking Dirb"
110
+ end
111
+
112
+ it "should return last Project" do
113
+ @ticketmaster.project.find(:last, :description => "Shocking Dirb").should be_an_instance_of @project_class
114
+ end
115
+
116
+ it "should return last Project with correct description" do
117
+ @ticketmaster.project.find(:last, :description => "Shocking Dirb").description.should == "Shocking Dirb"
118
+ end
119
+ end
120
+ end
121
+
122
+ describe "declaring a new project" do
123
+ it "should return the correct class" do
124
+ @ticketmaster.project.new(default_info).should be_an_instance_of @project_class
125
+ end
126
+
127
+ it "should have the correct name" do
128
+ @ticketmaster.project.new(default_info).name.should == "Tiket Name c"
129
+ end
130
+
131
+ it "should be able to be saved" do
132
+ @ticketmaster.project.new(default_info).save.should be_true
133
+ end
134
+ end
135
+
136
+ describe "creating a new project" do
137
+ it "should return the correct class" do
138
+ @ticketmaster.project.create(default_info).should be_an_instance_of @project_class
139
+ end
140
+
141
+ it "should have the correct name" do
142
+ @ticketmaster.project.create(default_info).name.should == "Tiket Name c"
143
+ end
144
+ end
145
+
146
+ def default_info
147
+ {:id => 777, :name => "Tiket Name c", :description => "that c thinks the k is trying to steal it's identity"}
148
+ end
149
+ end
data/spec/rcov.opts ADDED
@@ -0,0 +1 @@
1
+ --exclude "lib/ticketmaster/dummy/*,spec/*,gems/*"
@@ -0,0 +1,74 @@
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
+ before(:each) do
8
+ @ticketmaster = TicketMaster.new(:dummy, {})
9
+ @project_class = TicketMaster::Provider::Dummy::Project
10
+ @ticket_class = TicketMaster::Provider::Dummy::Ticket
11
+ @project = @ticketmaster.projects.first
12
+ end
13
+
14
+ describe "for a Project" do
15
+ it "should return an array" do
16
+ @project.tickets.should be_an_instance_of Array
17
+ end
18
+
19
+ it "should return Ticket objects" do
20
+ @project.tickets.first.should be_an_instance_of @ticket_class
21
+ end
22
+
23
+ describe "when searching wanting back all tickets that match the query" do
24
+ before do
25
+ @tickets = @project.tickets([999])
26
+ end
27
+
28
+ it "should return an array" do
29
+ @tickets.should be_an_instance_of Array
30
+ end
31
+
32
+ it "should return Ticket objects" do
33
+ @tickets.first.should be_an_instance_of @ticket_class
34
+ end
35
+
36
+ it "should return Tickets that match ID" do
37
+ @tickets.first.id.should == 999
38
+ end
39
+
40
+ it "should return an array when passing query hash" do
41
+ @project.tickets(:id => 999).should be_an_instance_of Array
42
+ end
43
+ end
44
+
45
+ describe "when searching wanting back the first ticket that matches the query" do
46
+ it "should return the first Ticket as a default" do
47
+ @project.ticket.should == TicketMaster::Provider::Dummy::Ticket
48
+ end
49
+
50
+ describe "when querying using default ID query" do
51
+ it "should return a Ticket object" do
52
+ @project.ticket(888).should be_an_instance_of @ticket_class
53
+ end
54
+
55
+ it "should only return Tickets with the correct ID" do
56
+ @project.ticket(888).id.should == 888
57
+ end
58
+ end
59
+
60
+ describe "when querying using hash" do
61
+ it "should return a Ticket object" do
62
+ @project.ticket(:id => 888).should be_an_instance_of @ticket_class
63
+ end
64
+
65
+ it "should only return Tickets with the correct ID" do
66
+ @project.ticket(:id => 888).id.should == 888
67
+ end
68
+ end
69
+ end
70
+ end
71
+
72
+ it "should be able to do other ticket stuff"
73
+
74
+ end
@@ -5,9 +5,10 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
5
5
  # Also, remember to mock or stub any API calls
6
6
  describe "Ticketmaster" do
7
7
  before(:each) do
8
- @ticketmaster = TicketMaster.new(:dummy)
8
+ @ticketmaster = TicketMaster.new(:dummy, {})
9
9
  @project_class = TicketMaster::Provider::Dummy::Project
10
10
  @ticket_class = TicketMaster::Provider::Dummy::Ticket
11
+ @comment_class = TicketMaster::Provider::Dummy::Comment
11
12
  end
12
13
 
13
14
  # Essentially just a sanity check on the include since .new always returns the object's instance
@@ -15,44 +16,9 @@ describe "Ticketmaster" do
15
16
  @ticketmaster.should be_an_instance_of TicketMaster
16
17
  @ticketmaster.should be_a_kind_of TicketMaster::Provider::Dummy
17
18
  end
18
-
19
- it "should be able to load projects" do
20
- @ticketmaster.projects.should be_an_instance_of Array
21
- @ticketmaster.projects.first.should be_an_instance_of @project_class
22
- @ticketmaster.projects.first.description.should == "Mock!-ing Bird"
23
- @ticketmaster.projects(:id => 555).should be_an_instance_of Array
24
- @ticketmaster.projects(:id => 555).first.should be_an_instance_of @project_class
25
- @ticketmaster.projects(:id => 555).first.id.should == 555
26
-
27
- @ticketmaster.project.should == @project_class
28
- @ticketmaster.project(:name => "Whack whack what?").should be_an_instance_of @project_class
29
- @ticketmaster.project(:name => "Whack whack what?").name.should == "Whack whack what?"
30
- @ticketmaster.project.find(:first, :description => "Shocking Dirb").should be_an_instance_of @project_class
31
- @ticketmaster.project.find(:first, :description => "Shocking Dirb").description.should == "Shocking Dirb"
32
- end
33
-
34
- it "should be able to do project stuff" do
35
- info = {:id => 777, :name => "Tiket Name c", :description => "that c thinks the k is trying to steal it's identity"}
36
- @ticketmaster.project.create(info).should be_an_instance_of @project_class
37
- @ticketmaster.project.new(info).should be_an_instance_of @project_class
38
- @ticketmaster.project.create(info).id.should == 777
39
- @ticketmaster.project.new(info).id.should == 777
40
19
 
41
- @ticketmaster.projects.first.save.should == true
42
- end
20
+ it "should be able to load comments"
43
21
 
44
- it "should be able to load tickets" do
45
- project = @ticketmaster.projects.first
46
- project.tickets.should be_an_instance_of Array
47
- project.tickets.first.should be_an_instance_of @ticket_class
48
- project.tickets(:id => 999).should be_an_instance_of Array
49
- project.tickets(:id => 999).first.should be_an_instance_of @ticket_class
50
- project.tickets(:id => 999).first.id.should == 999
51
-
52
- project.ticket.should == TicketMaster::Provider::Dummy::Ticket
53
- project.ticket(:id => 888).should be_an_instance_of @ticket_class
54
- project.ticket(:id => 888).id.should == 888
55
- project.ticket.find(:first, :id => 888).should be_an_instance_of @ticket_class
56
- project.ticket.find(:first, :id => 888).id.should == 888
57
- end
22
+ it "should be able to do comment stuff"
23
+
58
24
  end
data/ticketmaster.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ticketmaster}
8
- s.version = "0.3.2"
8
+ s.version = "0.3.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Sirupsen", "deadprogrammer"]
12
- s.date = %q{2010-07-05}
12
+ s.date = %q{2010-07-07}
13
13
  s.default_executable = %q{ticket}
14
14
  s.description = %q{Ticketmaster provides a universal API to trouble ticket and project management systems.}
15
15
  s.email = %q{simon@hybridgroup.com}
@@ -45,6 +45,7 @@ Gem::Specification.new do |s|
45
45
  "lib/ticketmaster/cli/init.rb",
46
46
  "lib/ticketmaster/comment.rb",
47
47
  "lib/ticketmaster/common.rb",
48
+ "lib/ticketmaster/dummy/comment.rb",
48
49
  "lib/ticketmaster/dummy/dummy.rb",
49
50
  "lib/ticketmaster/dummy/project.rb",
50
51
  "lib/ticketmaster/dummy/ticket.rb",
@@ -53,13 +54,13 @@ Gem::Specification.new do |s|
53
54
  "lib/ticketmaster/project.rb",
54
55
  "lib/ticketmaster/provider.rb",
55
56
  "lib/ticketmaster/ticket.rb",
57
+ "spec/project_spec.rb",
58
+ "spec/rcov.opts",
56
59
  "spec/spec.opts",
57
60
  "spec/spec_helper.rb",
61
+ "spec/ticket_spec.rb",
58
62
  "spec/ticketmaster-cli_spec.rb",
59
63
  "spec/ticketmaster_spec.rb",
60
- "test/helper.rb",
61
- "test/test_ticketmaster.rb",
62
- "ticketmaster-0.3.2.gem",
63
64
  "ticketmaster.gemspec"
64
65
  ]
65
66
  s.homepage = %q{http://ticketrb.com}
@@ -68,11 +69,11 @@ Gem::Specification.new do |s|
68
69
  s.rubygems_version = %q{1.3.7}
69
70
  s.summary = %q{Ticketmaster provides a universal API to trouble ticket and project management systems.}
70
71
  s.test_files = [
71
- "spec/spec_helper.rb",
72
+ "spec/project_spec.rb",
73
+ "spec/spec_helper.rb",
74
+ "spec/ticket_spec.rb",
72
75
  "spec/ticketmaster-cli_spec.rb",
73
- "spec/ticketmaster_spec.rb",
74
- "test/helper.rb",
75
- "test/test_ticketmaster.rb"
76
+ "spec/ticketmaster_spec.rb"
76
77
  ]
77
78
 
78
79
  if s.respond_to? :specification_version then
@@ -81,13 +82,16 @@ Gem::Specification.new do |s|
81
82
 
82
83
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
83
84
  s.add_runtime_dependency(%q<hashie>, [">= 0"])
85
+ s.add_runtime_dependency(%q<activeresource>, [">= 0"])
84
86
  s.add_development_dependency(%q<shoulda>, [">= 0"])
85
87
  else
86
88
  s.add_dependency(%q<hashie>, [">= 0"])
89
+ s.add_dependency(%q<activeresource>, [">= 0"])
87
90
  s.add_dependency(%q<shoulda>, [">= 0"])
88
91
  end
89
92
  else
90
93
  s.add_dependency(%q<hashie>, [">= 0"])
94
+ s.add_dependency(%q<activeresource>, [">= 0"])
91
95
  s.add_dependency(%q<shoulda>, [">= 0"])
92
96
  end
93
97
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ticketmaster
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 2
10
- version: 0.3.2
9
+ - 3
10
+ version: 0.3.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sirupsen
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-07-05 00:00:00 -07:00
19
+ date: 2010-07-07 00:00:00 -07:00
20
20
  default_executable: ticket
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -34,7 +34,7 @@ dependencies:
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
36
  - !ruby/object:Gem::Dependency
37
- name: shoulda
37
+ name: activeresource
38
38
  prerelease: false
39
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
40
  none: false
@@ -45,8 +45,22 @@ dependencies:
45
45
  segments:
46
46
  - 0
47
47
  version: "0"
48
- type: :development
48
+ type: :runtime
49
49
  version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: shoulda
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ type: :development
63
+ version_requirements: *id003
50
64
  description: Ticketmaster provides a universal API to trouble ticket and project management systems.
51
65
  email: simon@hybridgroup.com
52
66
  executables:
@@ -83,6 +97,7 @@ files:
83
97
  - lib/ticketmaster/cli/init.rb
84
98
  - lib/ticketmaster/comment.rb
85
99
  - lib/ticketmaster/common.rb
100
+ - lib/ticketmaster/dummy/comment.rb
86
101
  - lib/ticketmaster/dummy/dummy.rb
87
102
  - lib/ticketmaster/dummy/project.rb
88
103
  - lib/ticketmaster/dummy/ticket.rb
@@ -91,13 +106,13 @@ files:
91
106
  - lib/ticketmaster/project.rb
92
107
  - lib/ticketmaster/provider.rb
93
108
  - lib/ticketmaster/ticket.rb
109
+ - spec/project_spec.rb
110
+ - spec/rcov.opts
94
111
  - spec/spec.opts
95
112
  - spec/spec_helper.rb
113
+ - spec/ticket_spec.rb
96
114
  - spec/ticketmaster-cli_spec.rb
97
115
  - spec/ticketmaster_spec.rb
98
- - test/helper.rb
99
- - test/test_ticketmaster.rb
100
- - ticketmaster-0.3.2.gem
101
116
  - ticketmaster.gemspec
102
117
  has_rdoc: true
103
118
  homepage: http://ticketrb.com
@@ -134,8 +149,8 @@ signing_key:
134
149
  specification_version: 3
135
150
  summary: Ticketmaster provides a universal API to trouble ticket and project management systems.
136
151
  test_files:
152
+ - spec/project_spec.rb
137
153
  - spec/spec_helper.rb
154
+ - spec/ticket_spec.rb
138
155
  - spec/ticketmaster-cli_spec.rb
139
156
  - spec/ticketmaster_spec.rb
140
- - test/helper.rb
141
- - test/test_ticketmaster.rb
data/test/helper.rb DELETED
@@ -1,10 +0,0 @@
1
- require 'rubygems'
2
- require 'test/unit'
3
- require 'shoulda'
4
-
5
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
- $LOAD_PATH.unshift(File.dirname(__FILE__))
7
- require 'ticketmaster'
8
-
9
- class Test::Unit::TestCase
10
- end
@@ -1,4 +0,0 @@
1
- require 'helper'
2
-
3
- class TestTicketmaster < Test::Unit::TestCase
4
- end