assistly 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY.mkd +9 -0
- data/README.mkd +35 -19
- data/assistly.gemspec +3 -1
- data/lib/assistly/client/customer.rb +4 -4
- data/lib/assistly/client/interaction.rb +36 -3
- data/lib/assistly/configuration.rb +6 -2
- data/lib/assistly/error.rb +5 -0
- data/lib/assistly/version.rb +1 -1
- data/spec/assistly/api_spec.rb +1 -0
- data/spec/assistly/client/case_spec.rb +6 -6
- data/spec/assistly/client/interaction_spec.rb +122 -3
- data/spec/assistly_spec.rb +13 -0
- data/spec/helper.rb +2 -0
- metadata +58 -27
data/HISTORY.mkd
CHANGED
@@ -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
|
-
|
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/
|
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/
|
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/
|
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/
|
136
|
+
Copyright (c) 2011 Chris Warren/Zencoder
|
137
|
+
See [LICENSE](https://github.com/zencoder/assistly/blob/master/LICENSE.mkd) for details.
|
data/assistly.gemspec
CHANGED
@@ -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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
data/lib/assistly/error.rb
CHANGED
data/lib/assistly/version.rb
CHANGED
data/spec/assistly/api_spec.rb
CHANGED
@@ -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
|
data/spec/assistly_spec.rb
CHANGED
@@ -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"
|
data/spec/helper.rb
CHANGED
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:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
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-
|
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:
|
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: *
|
125
|
+
version_requirements: *id007
|
110
126
|
- !ruby/object:Gem::Dependency
|
111
127
|
name: webmock
|
112
128
|
prerelease: false
|
113
|
-
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: *
|
140
|
+
version_requirements: *id008
|
125
141
|
- !ruby/object:Gem::Dependency
|
126
142
|
name: yard
|
127
143
|
prerelease: false
|
128
|
-
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: *
|
155
|
+
version_requirements: *id009
|
140
156
|
- !ruby/object:Gem::Dependency
|
141
157
|
name: ZenTest
|
142
158
|
prerelease: false
|
143
|
-
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: *
|
170
|
+
version_requirements: *id010
|
155
171
|
- !ruby/object:Gem::Dependency
|
156
172
|
name: hashie
|
157
173
|
prerelease: false
|
158
|
-
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: *
|
186
|
+
version_requirements: *id011
|
171
187
|
- !ruby/object:Gem::Dependency
|
172
188
|
name: faraday
|
173
189
|
prerelease: false
|
174
|
-
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: *
|
202
|
+
version_requirements: *id012
|
187
203
|
- !ruby/object:Gem::Dependency
|
188
204
|
name: faraday_middleware
|
189
205
|
prerelease: false
|
190
|
-
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: *
|
218
|
+
version_requirements: *id013
|
203
219
|
- !ruby/object:Gem::Dependency
|
204
220
|
name: multi_json
|
205
221
|
prerelease: false
|
206
|
-
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: *
|
234
|
+
version_requirements: *id014
|
219
235
|
- !ruby/object:Gem::Dependency
|
220
236
|
name: multi_xml
|
221
237
|
prerelease: false
|
222
|
-
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: *
|
250
|
+
version_requirements: *id015
|
235
251
|
- !ruby/object:Gem::Dependency
|
236
252
|
name: rash
|
237
253
|
prerelease: false
|
238
|
-
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: *
|
266
|
+
version_requirements: *id016
|
251
267
|
- !ruby/object:Gem::Dependency
|
252
268
|
name: simple_oauth
|
253
269
|
prerelease: false
|
254
|
-
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: *
|
267
|
-
|
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: []
|