ticketevolution-ruby 0.7.4 → 0.7.5

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/README.markdown CHANGED
@@ -267,7 +267,7 @@ Click on the links next to each endpoint for more detail.
267
267
  @venue = @connection.venues.show(id)
268
268
 
269
269
 
270
- ######ticketevolution-ruby v0.7.4
270
+ ######ticketevolution-ruby v0.7.5
271
271
 
272
272
  License
273
273
  -------
@@ -1,7 +1,15 @@
1
1
  module TicketEvolution
2
2
  class Base
3
3
  def method_missing(method, *args)
4
- "TicketEvolution::#{method.to_s.camelize.to_sym}".constantize.new({:parent => self}) rescue super
4
+ begin
5
+ "#{self.class.name}::#{method.to_s.camelize.to_sym}".constantize.new({:parent => self})
6
+ rescue
7
+ begin
8
+ "TicketEvolution::#{method.to_s.camelize.to_sym}".constantize.new({:parent => self})
9
+ rescue
10
+ super
11
+ end
12
+ end
5
13
  end
6
14
  end
7
15
  end
@@ -2,10 +2,12 @@ module TicketEvolution
2
2
  class Builder < OpenStruct
3
3
  include SingularClass
4
4
 
5
- def initialize(*stuff)
6
- super
7
- @table.each do |k, v|
8
- send("#{k}=", process_datum(v))
5
+ def initialize(hash={})
6
+ attrs = hash.clone
7
+ @table = attrs['id'].present? ? {:id => attrs.delete('id')} : {}
8
+ attrs.each do |k, v|
9
+ @table[k.to_sym] = process_datum(v, k)
10
+ new_ostruct_member(k)
9
11
  end
10
12
  end
11
13
 
@@ -28,7 +30,7 @@ module TicketEvolution
28
30
 
29
31
  private
30
32
 
31
- def process_datum(v)
33
+ def process_datum(v, k=nil)
32
34
  case v.class.to_s.to_sym
33
35
  when :Hash
34
36
  Datum.new(v)
@@ -53,11 +55,11 @@ module TicketEvolution
53
55
 
54
56
  def method_missing(meth, *args)
55
57
  if args.size == 1
56
- super(meth, process_datum(args.first))
58
+ super(meth, process_datum(args.first, meth))
57
59
  elsif args.size == 0
58
60
  super(meth)
59
61
  else
60
- super(meth, process_datum(args))
62
+ super(meth, process_datum(args, meth))
61
63
  end
62
64
  end
63
65
 
@@ -7,10 +7,7 @@ module TicketEvolution
7
7
  raise EndpointConfigurationError, "#{self.class.to_s} instances require a hash as their first parameter" unless options.is_a? Hash
8
8
  raise EndpointConfigurationError, "The options hash must include a parent key / value pair" unless options[:parent].present?
9
9
  raise EndpointConfigurationError, "#{self.class.to_s} instances require a parent which inherits from TicketEvolution::Base" unless options[:parent].kind_of? TicketEvolution::Base
10
- options.each do |k, v|
11
- self.singleton_class.send(:attr_accessor, k)
12
- send("#{k}=", v)
13
- end
10
+ @options = options.with_indifferent_access
14
11
  raise EndpointConfigurationError, "The parent passed in the options hash must be a TicketEvolution::Connection object or have one in it's parent chain" unless has_connection?
15
12
  end
16
13
 
@@ -18,14 +15,14 @@ module TicketEvolution
18
15
  [].tap do |parts|
19
16
  parts << parent.base_path if parent.kind_of? TicketEvolution::Endpoint
20
17
  parts << "/"+endpoint_name
21
- parts << "/#{self.id}" if self.respond_to?("id=") and self.id.present?
18
+ parts << "/#{self.id}" if self.id.present?
22
19
  end.join
23
20
  end
24
21
 
25
22
  def connection
26
23
  if self.parent.is_a? TicketEvolution::Connection
27
24
  self.parent
28
- elsif self.parent.respond_to? :parent
25
+ elsif self.parent.kind_of? TicketEvolution::Endpoint
29
26
  self.parent.connection
30
27
  else
31
28
  nil
@@ -40,12 +37,22 @@ module TicketEvolution
40
37
  self.class.name.demodulize.underscore
41
38
  end
42
39
 
40
+ def method_missing(method, *args)
41
+ name = method.to_s
42
+ @options.keys.include?(name) ? @options[name] : super
43
+ end
44
+
45
+ # Ruby 1.8.7 / REE compatibility
46
+ def id
47
+ @options[:id]
48
+ end
49
+
43
50
  private
44
51
 
45
52
  def ensure_id
46
53
  raise TicketEvolution::MethodUnavailableError.new \
47
54
  "#{self.class.to_s}##{caller.first.split('`').last.split("'").first} can only be called if there is an id present on this #{self.class.to_s} instance" \
48
- unless self.respond_to?("id=") and self.id.present?
55
+ unless self.id.present?
49
56
  end
50
57
  end
51
58
  end
@@ -57,6 +57,10 @@ module TicketEvolution
57
57
  resp.server_message = (CODES[resp.response_code] || ['Unknown Error']).last
58
58
  end
59
59
  end
60
+
61
+ def collection_handler(response)
62
+ TicketEvolution::Collection.build_from_response(response, self.class.name.demodulize.underscore, singular_class)
63
+ end
60
64
  end
61
65
  end
62
66
  end
@@ -43,7 +43,7 @@ module TicketEvolution
43
43
 
44
44
  private
45
45
 
46
- def process_datum(v)
46
+ def process_datum(v, k=nil)
47
47
  if v.is_a? Hash and v['url'].present?
48
48
  name = class_name_from_url(v['url'])
49
49
  datum_exists?(name) ? singular_class(class_name_from_url(name)).new(v.merge({:connection => @connection})) : Datum.new(v)
@@ -1,24 +1,38 @@
1
1
  module TicketEvolution
2
+ module EndpointBehavior
3
+ def endpoint=(e); @endpoint = e; end
4
+ def method_missing(method, *args); @endpoint.send(method, *args); end
5
+ end
6
+
2
7
  class Model
3
8
  module ParentalBehavior
4
- def new_ostruct_member(name)
5
- ostruct_method = super
9
+ def process_datum(v, k = nil)
10
+ v = super
11
+ if k and v.is_a? Array and v.singleton_class.ancestors.first == Array
12
+ endpoint = "#{self.plural_class_name}::#{k.to_s.chomp('=').camelize}".constantize.new({
13
+ :parent => self.plural_class.new({
14
+ :id => self.id,
15
+ :parent => @connection
16
+ })
17
+ })
18
+ v.extend(TicketEvolution::EndpointBehavior)
19
+ v.endpoint = endpoint
20
+ end
21
+ ensure
22
+ return v
23
+ end
6
24
 
7
- named_endpoint = "#{self.plural_class_name}::#{name.to_s.camelize}".constantize
8
- class << self; self; end.class_eval do
9
- define_method(name) do
10
- obj = @table[name.to_sym]
11
- unless obj.nil?
12
- def obj.endpoint=(e); @endpoint = e; end
13
- def obj.method_missing(method, *args); @endpoint.send(method, *args); end
14
- obj.endpoint = named_endpoint.new(:parent => self.plural_class.new(:id => self.id, :parent => @connection))
15
- end
16
- obj
25
+ def new_ostruct_member(name)
26
+ name = name.to_sym
27
+ unless self.respond_to?(name)
28
+ class << self; self; end.class_eval do
29
+ define_method(name) { @table[name.to_sym] }
30
+ define_method("#{name}=") { |x| modifiable[name] = process_datum(x, name) }
17
31
  end
18
32
  end
19
- ostruct_method
33
+ name
20
34
  rescue NameError => e
21
- ostruct_method
35
+ super
22
36
  end
23
37
  end
24
38
  end
@@ -2,13 +2,9 @@ module TicketEvolution
2
2
  module Modules
3
3
  module Deleted
4
4
  def deleted(params = nil, &handler)
5
- handler ||= method(:build_for_deleted)
5
+ handler ||= method(:collection_handler)
6
6
  request(:GET, '/deleted', params, &handler)
7
7
  end
8
-
9
- def build_for_deleted(response)
10
- TicketEvolution::Collection.build_from_response(response, self.class.name.demodulize.underscore, singular_class)
11
- end
12
8
  end
13
9
  end
14
10
  end
@@ -2,15 +2,11 @@ module TicketEvolution
2
2
  module Modules
3
3
  module List
4
4
  def list(params = nil, &handler)
5
- handler ||= method(:build_for_list)
5
+ handler ||= method(:collection_handler)
6
6
  request(:GET, nil, params, &handler)
7
7
  end
8
8
 
9
9
  alias :all :list
10
-
11
- def build_for_list(response)
12
- TicketEvolution::Collection.build_from_response(response, self.class.name.demodulize.underscore, singular_class)
13
- end
14
10
  end
15
11
  end
16
12
  end
@@ -2,13 +2,9 @@ module TicketEvolution
2
2
  module Modules
3
3
  module Search
4
4
  def search(params = nil, &handler)
5
- handler ||= method(:build_for_search)
5
+ handler ||= method(:collection_handler)
6
6
  request(:GET, '/search', params, &handler)
7
7
  end
8
-
9
- def build_for_search(response)
10
- TicketEvolution::Collection.build_from_response(response, self.class.name.demodulize.underscore, singular_class)
11
- end
12
8
  end
13
9
  end
14
10
  end
@@ -1,3 +1,3 @@
1
1
  module TicketEvolution
2
- VERSION = '0.7.4'
2
+ VERSION = '0.7.5'
3
3
  end
@@ -0,0 +1,48 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://api.sandbox.ticketevolution.com:443/clients?per_page=1
6
+ body: !!null
7
+ headers:
8
+ x-signature:
9
+ - CVHhWgZb27YMNhFegxDYpGpJJ0dN4Cjf7w4am0cYSmM=
10
+ x-token:
11
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
12
+ accept:
13
+ - application/vnd.ticketevolution.api+json; version=8
14
+ accept-encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ response: !ruby/struct:VCR::Response
17
+ status: !ruby/struct:VCR::ResponseStatus
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ content-type:
22
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
23
+ transfer-encoding:
24
+ - chunked
25
+ connection:
26
+ - keep-alive
27
+ status:
28
+ - '200'
29
+ x-powered-by:
30
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
31
+ x-ua-compatible:
32
+ - IE=Edge,chrome=1
33
+ etag:
34
+ - ! '"46f6caa87384ce7e4bcee3406b641e9d"'
35
+ cache-control:
36
+ - max-age=0, private, must-revalidate
37
+ x-runtime:
38
+ - '0.153706'
39
+ strict-transport-security:
40
+ - max-age=31536000
41
+ server:
42
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
43
+ body: ! '{"current_page":1,"per_page":1,"total_entries":119,"clients":[{"email_addresses":[{"label":null,"address":"tyrique@brown.info","id":"309"}],"addresses":[{"label":"Work","longitude":null,"extended_address":null,"street_address":"555
44
+ Evergreen Terrace","locality":"Springfield","region":"MG","country_code":"US","name":null,"latitude":null,"postal_code":"58008-0000","id":"170858"}],"office":{"url":"/offices/6","brokerage":{"abbreviation":"Ticket
45
+ Evolution","url":"/brokerages/61","name":"Ticket Evolution","id":"61"},"name":"Main
46
+ Office","id":"6"},"url":"/clients/3","updated_at":"2012-03-20T18:06:05Z","company":null,"phone_numbers":[{"number":"(301)555-1234","label":null,"extension":"999","country_code":null,"id":"333"}],"tags":["best
47
+ seller","promotion","vip"],"name":"Main Office","id":"3"}]}'
48
+ http_version: '1.1'
@@ -19,6 +19,18 @@ describe TicketEvolution::Client do
19
19
  it_behaves_like "a ticket_evolution model"
20
20
  it_behaves_like "a parental model"
21
21
 
22
+ describe "a retrieved instance" do
23
+ use_vcr_cassette "endpoints/clients/list", :record => :new_episodes, :match_requests_on => [:method, :uri, :body]
24
+
25
+ let(:client) { connection.clients.list(:per_page => 1) }
26
+
27
+ it "should be capable of being marshaled" do
28
+ expect {
29
+ Marshal.dump(client)
30
+ }.to_not raise_error
31
+ end
32
+ end
33
+
22
34
  context "#update_attributes" do
23
35
  let(:client) { connection.clients.create(:name => "foo") }
24
36
  let(:initial_client_id) { client.id }
@@ -34,4 +34,13 @@ describe TicketEvolution::Clients do
34
34
  end
35
35
  end
36
36
  end
37
+
38
+ describe "chained endpoints" do
39
+ context "when the parent endpoint has an id" do
40
+ it "should check for chained endpoints in the method_missing stack" do
41
+ endpoint = klass.new(:parent => connection, :id => 1).samples
42
+ endpoint.should be_a TicketEvolution::Clients::Samples
43
+ end
44
+ end
45
+ end
37
46
  end
@@ -21,14 +21,17 @@ describe TicketEvolution::Builder do
21
21
  end
22
22
 
23
23
  it "should assign each key value pair as attributes" do
24
+ instance
24
25
  params.keys.each do |key|
25
26
  instance.send(key).should == params[key]
26
27
  end
27
28
  end
28
29
 
29
30
  it "should call #process_datum for each attribute assigned" do
30
- params.values.each do |v|
31
- klass.any_instance.should_receive(:process_datum).with(v)
31
+ attrs = params.clone
32
+ attrs.delete('id')
33
+ attrs.each do |k, v|
34
+ klass.any_instance.should_receive(:process_datum).with(v, k)
32
35
  end
33
36
  instance
34
37
  end
@@ -79,9 +82,9 @@ describe TicketEvolution::Builder do
79
82
 
80
83
  describe "with args" do
81
84
  it "should invoke #process_datum with the information received" do
82
- instance.should_receive(:process_datum).with(:ing)
85
+ instance.should_receive(:process_datum).with(:ing, :test=)
83
86
  instance.test = :ing
84
- instance.should_receive(:process_datum).with([1,2])
87
+ instance.should_receive(:process_datum).with([1,2], :array=)
85
88
  instance.array = [1,2]
86
89
  end
87
90
  end
@@ -122,7 +122,7 @@ describe TicketEvolution::Connection do
122
122
  end
123
123
 
124
124
  context "with logger object is set" do
125
- use_vcr_cassette "core/connection", :record => :all
125
+ use_vcr_cassette "core/connection", :record => :new_episodes
126
126
 
127
127
  let(:target) { StringIO.new }
128
128
  let(:logger) { Logger.new(target) }
@@ -16,13 +16,13 @@ shared_examples_for "a ticket_evolution endpoint class" do
16
16
  :test => :one,
17
17
  :testing => "two",
18
18
  :number => 3,
19
- :hash => {}
19
+ :hsh => {}
20
20
  })
21
21
  instance.parent.should == connection
22
22
  instance.test.should == :one
23
23
  instance.testing.should == "two"
24
24
  instance.number.should == 3
25
- instance.hash.should == {}
25
+ instance.hsh.should == {}
26
26
  end
27
27
 
28
28
  context "with a parent k/v pair" do
@@ -37,8 +37,16 @@ shared_examples_for "a ticket_evolution endpoint class" do
37
37
 
38
38
  context "that does inherit from TicketEvolution::Base" do
39
39
  context "and is a TicketEvolution::Connection object" do
40
+ let(:instance) { klass.new({:parent => connection}) }
41
+
40
42
  it "should not raise" do
41
- expect { klass.new({:parent => connection}) }.to_not raise_error
43
+ expect { instance }.to_not raise_error
44
+ end
45
+
46
+ it "should be capable of being marshaled" do
47
+ expect {
48
+ Marshal.dump(instance)
49
+ }.to_not raise_error
42
50
  end
43
51
  end
44
52
 
@@ -35,18 +35,18 @@ shared_examples_for "a deleted endpoint" do
35
35
  end
36
36
  end
37
37
 
38
- context "#build_for_deleted" do
38
+ context "default response handler" do
39
39
  let(:response) { Fake.list_response }
40
40
 
41
41
  it "invokes Collection#build_from_response" do
42
42
  TicketEvolution::Collection.
43
43
  should_receive(:build_from_response).
44
44
  with(response, klass.name.demodulize.underscore, instance.singular_class)
45
- instance.build_for_deleted(response)
45
+ instance.collection_handler(response)
46
46
  end
47
47
 
48
48
  it "returns a collection" do
49
- instance.build_for_deleted(response).should be_a TicketEvolution::Collection
49
+ instance.collection_handler(response).should be_a TicketEvolution::Collection
50
50
  end
51
51
  end
52
52
  end
@@ -35,18 +35,18 @@ shared_examples_for "a list endpoint" do
35
35
  end
36
36
  end
37
37
 
38
- context "#build_for_list" do
38
+ context "default response handler" do
39
39
  let(:response) { Fake.list_response }
40
40
 
41
41
  it "invokes Collection#build_from_response" do
42
42
  TicketEvolution::Collection.
43
43
  should_receive(:build_from_response).
44
44
  with(response, klass.name.demodulize.underscore, instance.singular_class)
45
- instance.build_for_list(response)
45
+ instance.collection_handler(response)
46
46
  end
47
47
 
48
48
  it "returns a collection" do
49
- instance.build_for_list(response).should be_a TicketEvolution::Collection
49
+ instance.collection_handler(response).should be_a TicketEvolution::Collection
50
50
  end
51
51
  end
52
52
  end
@@ -35,18 +35,18 @@ shared_examples_for "a search endpoint" do
35
35
  end
36
36
  end
37
37
 
38
- context "#build_for_search" do
38
+ context "default response handler" do
39
39
  let(:response) { Fake.list_response }
40
40
 
41
41
  it "invokes Collection#build_from_response" do
42
42
  TicketEvolution::Collection.
43
43
  should_receive(:build_from_response).
44
44
  with(response, klass.name.demodulize.underscore, instance.singular_class)
45
- instance.build_for_search(response)
45
+ instance.collection_handler(response)
46
46
  end
47
47
 
48
48
  it "returns a collection" do
49
- instance.build_for_search(response).should be_a TicketEvolution::Collection
49
+ instance.collection_handler(response).should be_a TicketEvolution::Collection
50
50
  end
51
51
  end
52
52
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ticketevolution-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-28 00:00:00.000000000Z
12
+ date: 2012-04-03 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &70187908360220 !ruby/object:Gem::Requirement
16
+ requirement: &70114881071020 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70187908360220
24
+ version_requirements: *70114881071020
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: faraday
27
- requirement: &70187908358760 !ruby/object:Gem::Requirement
27
+ requirement: &70114881069720 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.7.3
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70187908358760
35
+ version_requirements: *70114881069720
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: yajl-ruby
38
- requirement: &70187908355960 !ruby/object:Gem::Requirement
38
+ requirement: &70114881066980 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.7.7
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70187908355960
46
+ version_requirements: *70114881066980
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: multi_json
49
- requirement: &70187908354740 !ruby/object:Gem::Requirement
49
+ requirement: &70114881065660 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.0.4
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70187908354740
57
+ version_requirements: *70114881065660
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: nokogiri
60
- requirement: &70187908353580 !ruby/object:Gem::Requirement
60
+ requirement: &70114881064320 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.4.3
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70187908353580
68
+ version_requirements: *70114881064320
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &70187908352260 !ruby/object:Gem::Requirement
71
+ requirement: &70114881062980 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 2.7.1
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70187908352260
79
+ version_requirements: *70114881062980
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: vcr
82
- requirement: &70187908350880 !ruby/object:Gem::Requirement
82
+ requirement: &70114881061620 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - <
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '2'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70187908350880
90
+ version_requirements: *70114881061620
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: webmock
93
- requirement: &70187908350240 !ruby/object:Gem::Requirement
93
+ requirement: &70114881061000 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -101,10 +101,10 @@ dependencies:
101
101
  version: 1.8.0
102
102
  type: :development
103
103
  prerelease: false
104
- version_requirements: *70187908350240
104
+ version_requirements: *70114881061000
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: awesome_print
107
- requirement: &70187908349240 !ruby/object:Gem::Requirement
107
+ requirement: &70114881060120 !ruby/object:Gem::Requirement
108
108
  none: false
109
109
  requirements:
110
110
  - - ! '>='
@@ -112,10 +112,10 @@ dependencies:
112
112
  version: '0'
113
113
  type: :development
114
114
  prerelease: false
115
- version_requirements: *70187908349240
115
+ version_requirements: *70114881060120
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: rake
118
- requirement: &70187908348260 !ruby/object:Gem::Requirement
118
+ requirement: &70114881059000 !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
121
121
  - - ! '>='
@@ -123,7 +123,7 @@ dependencies:
123
123
  version: '0'
124
124
  type: :development
125
125
  prerelease: false
126
- version_requirements: *70187908348260
126
+ version_requirements: *70114881059000
127
127
  description: Provides Ruby wrappers for the Ticket Evolution API (http://developer.ticketevolution.com).
128
128
  Ticket Evolution is the industry leader in software for the Ticket Broker industry.
129
129
  email:
@@ -227,6 +227,7 @@ files:
227
227
  - spec/fixtures/net/endpoints/categories.yml
228
228
  - spec/fixtures/net/endpoints/clients.yml
229
229
  - spec/fixtures/net/endpoints/clients/create.yml
230
+ - spec/fixtures/net/endpoints/clients/list.yml
230
231
  - spec/fixtures/net/endpoints/clients/update_fail.yml
231
232
  - spec/fixtures/net/endpoints/clients/update_success.yml
232
233
  - spec/fixtures/net/endpoints/company/destroy_error.yml
@@ -322,7 +323,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
322
323
  version: '0'
323
324
  segments:
324
325
  - 0
325
- hash: 937722356540209047
326
+ hash: -2909427560002696490
326
327
  required_rubygems_version: !ruby/object:Gem::Requirement
327
328
  none: false
328
329
  requirements:
@@ -343,6 +344,7 @@ test_files:
343
344
  - spec/fixtures/net/endpoints/categories.yml
344
345
  - spec/fixtures/net/endpoints/clients.yml
345
346
  - spec/fixtures/net/endpoints/clients/create.yml
347
+ - spec/fixtures/net/endpoints/clients/list.yml
346
348
  - spec/fixtures/net/endpoints/clients/update_fail.yml
347
349
  - spec/fixtures/net/endpoints/clients/update_success.yml
348
350
  - spec/fixtures/net/endpoints/company/destroy_error.yml