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 +1 -1
- data/lib/ticket_evolution/core/base.rb +9 -1
- data/lib/ticket_evolution/core/builder.rb +9 -7
- data/lib/ticket_evolution/core/endpoint.rb +14 -7
- data/lib/ticket_evolution/core/endpoint/request_handler.rb +4 -0
- data/lib/ticket_evolution/core/model.rb +1 -1
- data/lib/ticket_evolution/core/model/parental_behavior.rb +28 -14
- data/lib/ticket_evolution/modules/deleted.rb +1 -5
- data/lib/ticket_evolution/modules/list.rb +1 -5
- data/lib/ticket_evolution/modules/search.rb +1 -5
- data/lib/ticket_evolution/version.rb +1 -1
- data/spec/fixtures/net/endpoints/clients/list.yml +48 -0
- data/spec/lib/ticket_evolution/client_spec.rb +12 -0
- data/spec/lib/ticket_evolution/clients_spec.rb +9 -0
- data/spec/lib/ticket_evolution/core/builder_spec.rb +7 -4
- data/spec/lib/ticket_evolution/core/connection_spec.rb +1 -1
- data/spec/shared_examples/endpoints/class.rb +11 -3
- data/spec/shared_examples/endpoints/deleted.rb +3 -3
- data/spec/shared_examples/endpoints/list.rb +3 -3
- data/spec/shared_examples/endpoints/search.rb +3 -3
- metadata +25 -23
data/README.markdown
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
module TicketEvolution
|
2
2
|
class Base
|
3
3
|
def method_missing(method, *args)
|
4
|
-
|
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(
|
6
|
-
|
7
|
-
@table.
|
8
|
-
|
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
|
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.
|
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.
|
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.
|
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
|
5
|
-
|
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
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
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
|
-
|
33
|
+
name
|
20
34
|
rescue NameError => e
|
21
|
-
|
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(:
|
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(:
|
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(:
|
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
|
@@ -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.
|
31
|
-
|
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 => :
|
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
|
-
:
|
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.
|
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 {
|
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 "
|
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.
|
45
|
+
instance.collection_handler(response)
|
46
46
|
end
|
47
47
|
|
48
48
|
it "returns a collection" do
|
49
|
-
instance.
|
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 "
|
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.
|
45
|
+
instance.collection_handler(response)
|
46
46
|
end
|
47
47
|
|
48
48
|
it "returns a collection" do
|
49
|
-
instance.
|
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 "
|
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.
|
45
|
+
instance.collection_handler(response)
|
46
46
|
end
|
47
47
|
|
48
48
|
it "returns a collection" do
|
49
|
-
instance.
|
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
|
+
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
|
12
|
+
date: 2012-04-03 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
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: *
|
24
|
+
version_requirements: *70114881071020
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: faraday
|
27
|
-
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: *
|
35
|
+
version_requirements: *70114881069720
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: yajl-ruby
|
38
|
-
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: *
|
46
|
+
version_requirements: *70114881066980
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: multi_json
|
49
|
-
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: *
|
57
|
+
version_requirements: *70114881065660
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: nokogiri
|
60
|
-
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: *
|
68
|
+
version_requirements: *70114881064320
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
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: *
|
79
|
+
version_requirements: *70114881062980
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: vcr
|
82
|
-
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: *
|
90
|
+
version_requirements: *70114881061620
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: webmock
|
93
|
-
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: *
|
104
|
+
version_requirements: *70114881061000
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
106
|
name: awesome_print
|
107
|
-
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: *
|
115
|
+
version_requirements: *70114881060120
|
116
116
|
- !ruby/object:Gem::Dependency
|
117
117
|
name: rake
|
118
|
-
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: *
|
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:
|
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
|