assistly 0.1.4 → 0.1.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.
@@ -1,3 +1,12 @@
1
+ 0.1.5 - April 15, 2011
2
+ -------------------------
3
+ * Support for creating outbound interactions via email
4
+
5
+ 0.1.1 - 0.1.4 - April 14, 2011
6
+ -------------------------
7
+ * Miscellaneous bug fixes found when actually using this in production.
8
+ * Moved to Zencoder Github account
9
+
1
10
  0.1 - April 12, 2011
2
11
  -------------------------
3
12
  * Initial release
data/README.mkd CHANGED
@@ -24,54 +24,70 @@ Usage Examples
24
24
  # All methods require authentication. To get your Assistly OAuth credentials,
25
25
  # register an app in the Assistly admin for your account at http://your-domain.assistly.com/admin
26
26
  @assistly = Assistly.configure do |config|
27
+ config.subdomain = YOUR_ASSISTLY_SUBDOMAIN
27
28
  config.consumer_key = YOUR_CONSUMER_KEY
28
29
  config.consumer_secret = YOUR_CONSUMER_SECRET
29
30
  config.oauth_token = YOUR_OAUTH_TOKEN
30
31
  config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
31
32
  end
32
-
33
+
33
34
  # List cases
34
35
  @assistly.cases
35
36
  @assistly.cases(:since_id => 12345)
36
-
37
+
37
38
  # Get a specific case
38
39
  @assistly.case(12345)
39
-
40
+
40
41
  # Update a specific case
41
42
  @assistly.update_case(12345, :subject => "Something Else")
42
-
43
+
44
+ # Get a case url
45
+ @assistly.case_url(12345)
46
+
43
47
  # List customers
44
48
  @assistly.customers
45
49
  @assistly.customers(:since_id => 12345, :count => 5)
46
-
50
+
47
51
  # Get a specific customer
48
52
  @assistly.customer(12345)
49
-
53
+
50
54
  # Create a customer
51
55
  @assistly.create_customer(:name => "Chris Warren", :twitter => "cdwarren")
52
-
56
+
53
57
  # Update a customer
54
58
  @assistly.update_customer(12345, :name => "Christopher Warren")
55
-
59
+
56
60
  # Add a customer email
57
61
  @assistly.create_customer_email(12345, "foo@example.com")
58
62
  @assistly.create_customer_email(12345, "foo@example.com", :customer_contact_type => "work")
59
-
63
+
60
64
  # Update a customer email
61
65
  @assistly.update_customer_email(12345, 54321, :email => "foo@example.com")
62
66
  @assistly.update_customer_email(12345, 54321, :customer_contact_type => "work")
63
-
67
+
64
68
  # List interactions
65
69
  @assistly.interactions
66
70
  @assistly.interactions(:since_id => 12345)
67
71
  @assistly.interactions(:since_id => 12345, :count => 5)
72
+
73
+ # Create an inbound interaction
74
+ @assistly.create_interaction(:interaction_subject => "help me", :customer_email => "foo@example.com", :interaction_body => "You're my only hope.")
75
+ @assistly.create_inbound_interaction(:interaction_subject => "help me", :customer_email => "foo@example.com", :interaction_body => "You're my only hope.")
68
76
 
69
- # Create an interaction
70
- @assistly.create_interaction(:interaction_subject => "this is a test", :customer_email => "foo@example.com")
71
-
77
+ # Create an outbound interaction
78
+ # Assistly's API doesn't support creating outbound communications, so we do this over email with a BCC back to Assistly and customer headers.
79
+ # Assistly.support_email must be set to your Assistly email address so that the email can be sent to the account and give the customer someone to respond to.
80
+ #
81
+ # Read more at http://support.assistly.com/customer/portal/articles/4180
82
+ # Additional headers can be passed as well http://support.assistly.com/customer/portal/articles/6728
83
+ #
84
+ # Email is sent using Pony https://github.com/benprew/pony
85
+ @assistly.create_interaction(:interaction_subject => "Missed Your Call", :customer_email => "foo@example.com", :interaction_body => "Sorry we missed yoru call. What's up?", :direction => "outbound")
86
+ @assistly.create_outbound_interaction("foo@example.com", "Missed Your Call", "Sorry we missed yoru call. What's up?")
87
+
72
88
  # List users
73
89
  @assistly.users
74
-
90
+
75
91
  # Get a specific user
76
92
  @assistly.user(12345)
77
93
 
@@ -88,15 +104,15 @@ Here are some ways *you* can contribute:
88
104
  * by writing specifications
89
105
  * by writing code (**no patch is too small**: fix typos, add comments, clean up inconsistent whitespace)
90
106
  * by refactoring code
91
- * by closing [issues](http://github.com/chriswarren/assistly/issues)
107
+ * by closing [issues](http://github.com/zencoder/assistly/issues)
92
108
  * by reviewing patches
93
109
 
94
- All contributors will be added to the [HISTORY](https://github.com/chriswarren/twitter/blob/master/HISTORY.mkd)
110
+ All contributors will be added to the [HISTORY](https://github.com/zencoder/assistly/blob/master/HISTORY.mkd)
95
111
  file and will receive the respect and gratitude of the community.
96
112
 
97
113
  Submitting an Issue
98
114
  -------------------
99
- We use the [GitHub issue tracker](http://github.com/chriswarren/assistly/issues) to track bugs and
115
+ We use the [GitHub issue tracker](http://github.com/zencoder/assistly/issues) to track bugs and
100
116
  features. Before submitting a bug report or feature request, check to make sure it hasn't already
101
117
  been submitted. You can indicate support for an existing issuse by voting it up. When submitting a
102
118
  bug report, please include a [Gist](http://gist.github.com/) that includes a stack trace and any
@@ -117,5 +133,5 @@ Submitting a Pull Request
117
133
 
118
134
  Copyright
119
135
  ---------
120
- Copyright (c) 2011 Chris Warren
121
- See [LICENSE](https://github.com/chriswarren/assistly/blob/master/LICENSE.mkd) for details.
136
+ Copyright (c) 2011 Chris Warren/Zencoder
137
+ See [LICENSE](https://github.com/zencoder/assistly/blob/master/LICENSE.mkd) for details.
@@ -7,6 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.add_development_dependency('maruku', '~> 0.6')
8
8
  s.add_development_dependency('rake', '~> 0.8')
9
9
  s.add_development_dependency('rspec', '~> 2.5')
10
+ s.add_development_dependency('email_spec', '~> 1.1.1')
10
11
  s.add_development_dependency('simplecov', '~> 0.4')
11
12
  s.add_development_dependency('webmock', '~> 1.6')
12
13
  s.add_development_dependency('yard', '~> 0.6')
@@ -19,8 +20,9 @@ Gem::Specification.new do |s|
19
20
  s.add_runtime_dependency('multi_xml', '~> 0.2.0')
20
21
  s.add_runtime_dependency('rash', '~> 0.3.0')
21
22
  s.add_runtime_dependency('simple_oauth', '~> 0.1.4')
23
+ s.add_runtime_dependency('pony', '~> 1.1')
22
24
  s.authors = ["Chris Warren"]
23
- s.description = %q{A Ruby wrapper for the Assistly REST API, based on the Twitter gem}
25
+ s.description = %q{A Ruby wrapper for the Assistly REST API}
24
26
  s.post_install_message =<<eos
25
27
  ********************************************************************************
26
28
 
@@ -44,7 +44,7 @@ module Assistly
44
44
  if response['success']
45
45
  return response['results']['customer']
46
46
  else
47
- return response['errors']
47
+ return response
48
48
  end
49
49
  end
50
50
 
@@ -62,7 +62,7 @@ module Assistly
62
62
  if response['success']
63
63
  return response['results']['customer']
64
64
  else
65
- return response['errors']
65
+ return response
66
66
  end
67
67
  end
68
68
 
@@ -81,7 +81,7 @@ module Assistly
81
81
  if response['success']
82
82
  return response['results']['email']
83
83
  else
84
- return response['errors']
84
+ return response
85
85
  end
86
86
  end
87
87
 
@@ -100,7 +100,7 @@ module Assistly
100
100
  if response['success']
101
101
  return response['results']['email']
102
102
  else
103
- return response['errors']
103
+ return response
104
104
  end
105
105
  end
106
106
  end
@@ -17,8 +17,23 @@ module Assistly
17
17
  response = get("interactions",options)
18
18
  response['results']
19
19
  end
20
+
21
+ def create_interaction(*args)
22
+ options = args.last.is_a?(Hash) ? args.pop : {}
23
+ direction =
24
+ if options[:direction].to_s == "outbound"
25
+ options.delete(:direction)
26
+ to = options.delete(:customer_email)
27
+ subject = options.delete(:interaction_subject)
28
+ body = options.delete(:interaction_body)
29
+
30
+ create_outbound_interaction(to, subject, body, options)
31
+ else
32
+ create_inbound_interaction(options)
33
+ end
34
+ end
20
35
 
21
- # Creates an interaction
36
+ # Creates an interaction from a customer
22
37
  #
23
38
  # @format :json
24
39
  # @authenticated true
@@ -27,15 +42,33 @@ module Assistly
27
42
  # @see http://dev.assistly.com/docs/api/interactions/create
28
43
  # @example Create a new interaction
29
44
  # Assistly.create_interaction(:interaction_subject => "this is an api test", :customer_email => "foo@example.com")
30
- def create_interaction(*args)
45
+ def create_inbound_interaction(*args)
31
46
  options = args.last.is_a?(Hash) ? args.pop : {}
32
47
  response = post('interactions', options)
33
48
  if response['success']
34
49
  return response['results']
35
50
  else
36
- return response['errors']
51
+ return response
37
52
  end
38
53
  end
54
+
55
+ # Create an interaction from an agent
56
+ #
57
+ # Assistly's API doesn't support creating a new case/interaction initiated by an agent
58
+ # so we'll use send an email to the customer directly that is BCC'd to the support email address
59
+ # which will create the ticket
60
+ #
61
+ # @see http://support.assistly.com/customer/portal/articles/4180
62
+ # @see http://support.assistly.com/customer/portal/articles/6728
63
+ def create_outbound_interaction(to, subject, body, *args)
64
+ raise Assistly::SupportEmailNotSet if support_email.blank?
65
+ options = args.last.is_a?(Hash) ? args.pop : {}
66
+ options.merge!(:to => to, :subject => subject, :body => body, :from => support_email, :bcc => support_email)
67
+ options.merge!(:headers => { "x-assistly-customer-email" => to,
68
+ "x-assistly-interaction-direction" => "out",
69
+ "x-assistly-case-status" => options[:status]||"open"})
70
+ Pony.mail(options)
71
+ end
39
72
  end
40
73
  end
41
74
  end
@@ -14,6 +14,7 @@ module Assistly
14
14
  :oauth_token_secret,
15
15
  :proxy,
16
16
  :subdomain,
17
+ :support_email,
17
18
  :user_agent,
18
19
  :version].freeze
19
20
 
@@ -48,7 +49,7 @@ module Assistly
48
49
  # By default, don't use a proxy server
49
50
  DEFAULT_PROXY = nil
50
51
 
51
- # By default, don't set a subdomain
52
+ # By default use example
52
53
  DEFAULT_SUBDOMAIN = "example"
53
54
 
54
55
  # The user agent that will be sent to the API endpoint if none is set
@@ -56,7 +57,9 @@ module Assistly
56
57
 
57
58
  # The user agent that will be sent to the API endpoint if none is set
58
59
  DEFAULT_VERSION = "v1".freeze
59
-
60
+
61
+ # By default, don't set a support email address
62
+ DEFAULT_SUPPORT_EMAIL = nil
60
63
 
61
64
  # @private
62
65
  attr_accessor *VALID_OPTIONS_KEYS
@@ -86,6 +89,7 @@ module Assistly
86
89
  self.oauth_token_secret = DEFAULT_OAUTH_TOKEN_SECRET
87
90
  self.proxy = DEFAULT_PROXY
88
91
  self.subdomain = DEFAULT_SUBDOMAIN
92
+ self.support_email = DEFAULT_SUPPORT_EMAIL
89
93
  self.user_agent = DEFAULT_USER_AGENT
90
94
  self.version = DEFAULT_VERSION
91
95
  self
@@ -59,4 +59,9 @@ module Assistly
59
59
 
60
60
  # Raised when Assistly returns the HTTP status code 503
61
61
  class ServiceUnavailable < Error; end
62
+
63
+ # Gem Specific Errors
64
+ class AssistlyError < StandardError; end
65
+
66
+ class SupportEmailNotSet < AssistlyError; end
62
67
  end
@@ -1,4 +1,4 @@
1
1
  module Assistly
2
2
  # The version of the gem
3
- VERSION = '0.1.4'.freeze unless defined?(::Assistly::VERSION)
3
+ VERSION = '0.1.5'.freeze unless defined?(::Assistly::VERSION)
4
4
  end
@@ -38,6 +38,7 @@ describe Assistly::API do
38
38
  :format => :xml,
39
39
  :proxy => 'http://erik:sekret@proxy.example.com:8080',
40
40
  :subdomain => 'zencoder',
41
+ :support_email => 'help@zencoder.com',
41
42
  :user_agent => 'Custom User Agent',
42
43
  :version => "amazing"
43
44
  }
@@ -24,7 +24,7 @@ describe Assistly::Client do
24
24
 
25
25
  it "should return up to 100 cases worth of extended information" do
26
26
  cases = @client.cases
27
-
27
+
28
28
  cases.should be_a Array
29
29
  cases.first.case.id.should == 1
30
30
  cases.first.case.user.name.should == "Jeremy Suriel"
@@ -32,7 +32,7 @@ describe Assistly::Client do
32
32
 
33
33
  end
34
34
  end
35
-
35
+
36
36
  describe ".case" do
37
37
 
38
38
  context "lookup" do
@@ -50,7 +50,7 @@ describe Assistly::Client do
50
50
 
51
51
  it "should return up to 100 cases worth of extended information" do
52
52
  a_case = @client.case(1)
53
-
53
+
54
54
  a_case.id.should == 1
55
55
  a_case.external_id.should == "123"
56
56
  a_case.subject.should == "Welcome to Assistly"
@@ -58,7 +58,7 @@ describe Assistly::Client do
58
58
 
59
59
  end
60
60
  end
61
-
61
+
62
62
  describe ".update_case" do
63
63
 
64
64
  context "update" do
@@ -76,14 +76,14 @@ describe Assistly::Client do
76
76
 
77
77
  it "should return up to 100 cases worth of extended information" do
78
78
  a_case = @client.update_case(1, :subject => "Welcome to Assistly")
79
-
79
+
80
80
  a_case.id.should == 1
81
81
  a_case.subject.should == "Welcome to Assistly"
82
82
  end
83
83
 
84
84
  end
85
85
  end
86
-
86
+
87
87
  describe ".case_url" do
88
88
 
89
89
  context "generating a case url" do
@@ -1,14 +1,17 @@
1
1
  require 'helper'
2
2
 
3
3
  describe Assistly::Client do
4
+ include EmailSpec::Helpers
5
+ include EmailSpec::Matchers
6
+
4
7
  Assistly::Configuration::VALID_FORMATS.each do |format|
5
8
  context ".new(:format => '#{format}')" do
6
9
  before do
7
- @client = Assistly::Client.new(:subdomain => "example", :format => format, :consumer_key => 'CK', :consumer_secret => 'CS', :oauth_token => 'OT', :oauth_token_secret => 'OS')
10
+ @client = Assistly::Client.new(:subdomain => "example", :format => format, :consumer_key => 'CK', :consumer_secret => 'CS', :oauth_token => 'OT', :oauth_token_secret => 'OS', :support_email => "help@example.com")
8
11
  end
9
12
 
10
13
  describe ".create_interaction" do
11
- context "create a new interaction" do
14
+ context "create a new interaction without specifying direction should default to inbound" do
12
15
  before do
13
16
  stub_post("interactions.#{format}").
14
17
  to_return(:body => fixture("interaction_create.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
@@ -27,6 +30,122 @@ describe Assistly::Client do
27
30
  interaction.interaction.interactionable.email.subject.should == "this is an api test"
28
31
  end
29
32
  end
33
+
34
+ context "create a new interaction and specify inbound" do
35
+ before do
36
+ stub_post("interactions.#{format}").
37
+ to_return(:body => fixture("interaction_create.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
38
+ end
39
+
40
+ it "should get the correct resource" do
41
+ @client.create_interaction(:interaction_subject => "this is an api test", :customer_email => "foo@example.com", :direction => "in")
42
+ a_post("interactions.#{format}").
43
+ should have_been_made
44
+ end
45
+
46
+ it "should create an interaction" do
47
+ interaction = @client.create_interaction(:interaction_subject => "this is an api test", :customer_email => "foo@example.com", :direction => "in")
48
+
49
+ interaction.customer.emails.first.email.email.should == "customer@zencoder.com"
50
+ interaction.interaction.interactionable.email.subject.should == "this is an api test"
51
+ end
52
+ end
53
+
54
+ context "create a new interaction and specify outbound" do
55
+ before do
56
+ @email = @client.create_interaction(:customer_email => "customer@example.com", :interaction_subject => "Need help?", :interaction_body => "Sorry we missed you in chat today.", :direction => "outbound")
57
+ end
58
+
59
+ it "should deliver the email to the customer" do
60
+ @email.last.should deliver_to("customer@example.com")
61
+ end
62
+
63
+ it "should be from the support email" do
64
+ @email.last.should deliver_from(@client.support_email)
65
+ end
66
+
67
+ it "should contain the message in the mail body" do
68
+ @email.last.should have_body_text(/Sorry we missed you in chat today/)
69
+ end
70
+
71
+ it "should bcc to the support email" do
72
+ @email.last.should bcc_to(@client.support_email)
73
+ end
74
+
75
+ it "should set the Assistly headers" do
76
+ @email.last.should have_header("x-assistly-customer-email","customer@example.com")
77
+ @email.last.should have_header("x-assistly-interaction-direction","out")
78
+ @email.last.should have_header("x-assistly-case-status","open")
79
+ end
80
+ end
81
+ end
82
+
83
+ describe ".create_inbound_interaction" do
84
+ context "create a new interaction" do
85
+ before do
86
+ stub_post("interactions.#{format}").
87
+ to_return(:body => fixture("interaction_create.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
88
+ end
89
+
90
+ it "should get the correct resource" do
91
+ @client.create_inbound_interaction(:interaction_subject => "this is an api test", :customer_email => "foo@example.com")
92
+ a_post("interactions.#{format}").
93
+ should have_been_made
94
+ end
95
+
96
+ it "should create an interaction" do
97
+ interaction = @client.create_inbound_interaction(:interaction_subject => "this is an api test", :customer_email => "foo@example.com")
98
+
99
+ interaction.customer.emails.first.email.email.should == "customer@zencoder.com"
100
+ interaction.interaction.interactionable.email.subject.should == "this is an api test"
101
+ end
102
+ end
103
+ end
104
+
105
+ describe ".create_outbound_interaction" do
106
+ context "create" do
107
+
108
+ before do
109
+ @email = @client.create_outbound_interaction("customer@example.com", "Need help?", "Sorry we missed you in chat today.")
110
+ end
111
+
112
+ it "should deliver the email to the customer" do
113
+ @email.last.should deliver_to("customer@example.com")
114
+ end
115
+
116
+ it "should be from the support email" do
117
+ @email.last.should deliver_from(@client.support_email)
118
+ end
119
+
120
+ it "should contain the message in the mail body" do
121
+ @email.last.should have_body_text(/Sorry we missed you in chat today/)
122
+ end
123
+
124
+ it "should bcc to the support email" do
125
+ @email.last.should bcc_to(@client.support_email)
126
+ end
127
+
128
+ it "should set the Assistly headers" do
129
+ @email.last.should have_header("x-assistly-customer-email","customer@example.com")
130
+ @email.last.should have_header("x-assistly-interaction-direction","out")
131
+ @email.last.should have_header("x-assistly-case-status","open")
132
+ end
133
+
134
+ end
135
+
136
+ context "without support_email defined" do
137
+
138
+ before do
139
+ @client_without_support_email = Assistly::Client.new(:subdomain => "example", :format => format, :consumer_key => 'CK', :consumer_secret => 'CS', :oauth_token => 'OT', :oauth_token_secret => 'OS')
140
+ end
141
+
142
+ it "should raise an error" do
143
+ lambda do
144
+ @client_without_support_email.create_outbound_interaction("customer@example.com", "Need help?", "Sorry we missed you in chat today.")
145
+ end.should raise_error(Assistly::SupportEmailNotSet)
146
+ end
147
+
148
+ end
30
149
  end
31
150
 
32
151
  describe ".interactions" do
@@ -46,7 +165,7 @@ describe Assistly::Client do
46
165
 
47
166
  it "should return up to 100 users worth of extended information" do
48
167
  interactions = @client.interactions
49
-
168
+
50
169
  interactions.should be_a Array
51
170
  interactions.last.interaction.user.name.should == "Agent Jeremy"
52
171
  end
@@ -59,6 +59,19 @@ describe Assistly do
59
59
  end
60
60
  end
61
61
 
62
+ describe ".support_email" do
63
+ it "should return the default support_email" do
64
+ Assistly.support_email.should == Assistly::Configuration::DEFAULT_SUPPORT_EMAIL
65
+ end
66
+ end
67
+
68
+ describe ".support_email=" do
69
+ it "should set the support_email" do
70
+ Assistly.support_email = "help@example.com"
71
+ Assistly.support_email.should == "help@example.com"
72
+ end
73
+ end
74
+
62
75
  describe ".version=" do
63
76
  before do
64
77
  Assistly.version = "v4"
@@ -5,8 +5,10 @@ SimpleCov.start do
5
5
  add_group 'Specs', 'spec'
6
6
  end
7
7
  require 'assistly'
8
+ require 'pony'
8
9
  require 'rspec'
9
10
  require 'webmock/rspec'
11
+ require 'email_spec'
10
12
  require 'ruby-debug'
11
13
  RSpec.configure do |config|
12
14
  config.include WebMock::API
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assistly
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 4
10
- version: 0.1.4
9
+ - 5
10
+ version: 0.1.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Chris Warren
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-14 00:00:00 Z
18
+ date: 2011-04-15 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: json
@@ -93,9 +93,25 @@ dependencies:
93
93
  type: :development
94
94
  version_requirements: *id005
95
95
  - !ruby/object:Gem::Dependency
96
- name: simplecov
96
+ name: email_spec
97
97
  prerelease: false
98
98
  requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ hash: 17
104
+ segments:
105
+ - 1
106
+ - 1
107
+ - 1
108
+ version: 1.1.1
109
+ type: :development
110
+ version_requirements: *id006
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ prerelease: false
114
+ requirement: &id007 !ruby/object:Gem::Requirement
99
115
  none: false
100
116
  requirements:
101
117
  - - ~>
@@ -106,11 +122,11 @@ dependencies:
106
122
  - 4
107
123
  version: "0.4"
108
124
  type: :development
109
- version_requirements: *id006
125
+ version_requirements: *id007
110
126
  - !ruby/object:Gem::Dependency
111
127
  name: webmock
112
128
  prerelease: false
113
- requirement: &id007 !ruby/object:Gem::Requirement
129
+ requirement: &id008 !ruby/object:Gem::Requirement
114
130
  none: false
115
131
  requirements:
116
132
  - - ~>
@@ -121,11 +137,11 @@ dependencies:
121
137
  - 6
122
138
  version: "1.6"
123
139
  type: :development
124
- version_requirements: *id007
140
+ version_requirements: *id008
125
141
  - !ruby/object:Gem::Dependency
126
142
  name: yard
127
143
  prerelease: false
128
- requirement: &id008 !ruby/object:Gem::Requirement
144
+ requirement: &id009 !ruby/object:Gem::Requirement
129
145
  none: false
130
146
  requirements:
131
147
  - - ~>
@@ -136,11 +152,11 @@ dependencies:
136
152
  - 6
137
153
  version: "0.6"
138
154
  type: :development
139
- version_requirements: *id008
155
+ version_requirements: *id009
140
156
  - !ruby/object:Gem::Dependency
141
157
  name: ZenTest
142
158
  prerelease: false
143
- requirement: &id009 !ruby/object:Gem::Requirement
159
+ requirement: &id010 !ruby/object:Gem::Requirement
144
160
  none: false
145
161
  requirements:
146
162
  - - ~>
@@ -151,11 +167,11 @@ dependencies:
151
167
  - 5
152
168
  version: "4.5"
153
169
  type: :development
154
- version_requirements: *id009
170
+ version_requirements: *id010
155
171
  - !ruby/object:Gem::Dependency
156
172
  name: hashie
157
173
  prerelease: false
158
- requirement: &id010 !ruby/object:Gem::Requirement
174
+ requirement: &id011 !ruby/object:Gem::Requirement
159
175
  none: false
160
176
  requirements:
161
177
  - - ~>
@@ -167,11 +183,11 @@ dependencies:
167
183
  - 0
168
184
  version: 1.0.0
169
185
  type: :runtime
170
- version_requirements: *id010
186
+ version_requirements: *id011
171
187
  - !ruby/object:Gem::Dependency
172
188
  name: faraday
173
189
  prerelease: false
174
- requirement: &id011 !ruby/object:Gem::Requirement
190
+ requirement: &id012 !ruby/object:Gem::Requirement
175
191
  none: false
176
192
  requirements:
177
193
  - - ~>
@@ -183,11 +199,11 @@ dependencies:
183
199
  - 0
184
200
  version: 0.6.0
185
201
  type: :runtime
186
- version_requirements: *id011
202
+ version_requirements: *id012
187
203
  - !ruby/object:Gem::Dependency
188
204
  name: faraday_middleware
189
205
  prerelease: false
190
- requirement: &id012 !ruby/object:Gem::Requirement
206
+ requirement: &id013 !ruby/object:Gem::Requirement
191
207
  none: false
192
208
  requirements:
193
209
  - - ~>
@@ -199,11 +215,11 @@ dependencies:
199
215
  - 3
200
216
  version: 0.6.3
201
217
  type: :runtime
202
- version_requirements: *id012
218
+ version_requirements: *id013
203
219
  - !ruby/object:Gem::Dependency
204
220
  name: multi_json
205
221
  prerelease: false
206
- requirement: &id013 !ruby/object:Gem::Requirement
222
+ requirement: &id014 !ruby/object:Gem::Requirement
207
223
  none: false
208
224
  requirements:
209
225
  - - ~>
@@ -215,11 +231,11 @@ dependencies:
215
231
  - 5
216
232
  version: 0.0.5
217
233
  type: :runtime
218
- version_requirements: *id013
234
+ version_requirements: *id014
219
235
  - !ruby/object:Gem::Dependency
220
236
  name: multi_xml
221
237
  prerelease: false
222
- requirement: &id014 !ruby/object:Gem::Requirement
238
+ requirement: &id015 !ruby/object:Gem::Requirement
223
239
  none: false
224
240
  requirements:
225
241
  - - ~>
@@ -231,11 +247,11 @@ dependencies:
231
247
  - 0
232
248
  version: 0.2.0
233
249
  type: :runtime
234
- version_requirements: *id014
250
+ version_requirements: *id015
235
251
  - !ruby/object:Gem::Dependency
236
252
  name: rash
237
253
  prerelease: false
238
- requirement: &id015 !ruby/object:Gem::Requirement
254
+ requirement: &id016 !ruby/object:Gem::Requirement
239
255
  none: false
240
256
  requirements:
241
257
  - - ~>
@@ -247,11 +263,11 @@ dependencies:
247
263
  - 0
248
264
  version: 0.3.0
249
265
  type: :runtime
250
- version_requirements: *id015
266
+ version_requirements: *id016
251
267
  - !ruby/object:Gem::Dependency
252
268
  name: simple_oauth
253
269
  prerelease: false
254
- requirement: &id016 !ruby/object:Gem::Requirement
270
+ requirement: &id017 !ruby/object:Gem::Requirement
255
271
  none: false
256
272
  requirements:
257
273
  - - ~>
@@ -263,8 +279,23 @@ dependencies:
263
279
  - 4
264
280
  version: 0.1.4
265
281
  type: :runtime
266
- version_requirements: *id016
267
- description: A Ruby wrapper for the Assistly REST API, based on the Twitter gem
282
+ version_requirements: *id017
283
+ - !ruby/object:Gem::Dependency
284
+ name: pony
285
+ prerelease: false
286
+ requirement: &id018 !ruby/object:Gem::Requirement
287
+ none: false
288
+ requirements:
289
+ - - ~>
290
+ - !ruby/object:Gem::Version
291
+ hash: 13
292
+ segments:
293
+ - 1
294
+ - 1
295
+ version: "1.1"
296
+ type: :runtime
297
+ version_requirements: *id018
298
+ description: A Ruby wrapper for the Assistly REST API
268
299
  email:
269
300
  - chris@zencoder.com
270
301
  executables: []