ask-ruby 0.0.2
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.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/.rspec +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +14 -0
- data/README.md +31 -0
- data/Rakefile +7 -0
- data/ask-ruby.gemspec +26 -0
- data/lib/ask.rb +40 -0
- data/spec/ask_spec.rb +13 -0
- data/spec/spec_helper.rb +8 -0
- metadata +98 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c0ee18737c0d5e8e62a41fe19be69aed8e995da0
|
4
|
+
data.tar.gz: 33796d2f34300304d34bb802cc151e5cea0fc7e1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e86478a7e70241147eb8080de2aac466e806a143c72e0c3841eb32404b51dcb2daa2f6903ad9f8fd2e7138bbf5b4b2afbe1d734a76969a272645c12ea14350e6
|
7
|
+
data.tar.gz: e1d205d3071994cf93c3b3750f1256cca59f0df26eb8b25dc7539d75852848d53ca7a06053c1ff4c6afd3076997a8897e01cdab51018dfa6542ea17d355c68b5
|
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--profile
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.0.0-p195
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# The ask. Ruby Client
|
2
|
+
|
3
|
+
## Initialization
|
4
|
+
|
5
|
+
Intialize the library with your API key.
|
6
|
+
|
7
|
+
If using Rails, just create `config/initializers/ask.rb`. If using anything else, make sure to require the file.
|
8
|
+
|
9
|
+
```
|
10
|
+
Ask.api_token = '12345678901234567890'
|
11
|
+
```
|
12
|
+
|
13
|
+
## NPS
|
14
|
+
|
15
|
+
### Schedule a survey to go out now.
|
16
|
+
|
17
|
+
```
|
18
|
+
Ask.schedule_nps('test@example.com')
|
19
|
+
```
|
20
|
+
|
21
|
+
Name, delay and properties are optional.
|
22
|
+
|
23
|
+
```
|
24
|
+
Ask.schedule_nps('test@example.com', 'Test User', '1 day', { cohort: 'facebook', location: '1600 Pennsylvania Ave, Washington DC 20001', tags: 'foo, bar, baz'})
|
25
|
+
```
|
26
|
+
|
27
|
+
### Schedule a survey to go out in a week
|
28
|
+
|
29
|
+
```
|
30
|
+
Ask.schedule_nps('test@example.com, 'Test User', 'one week', { ... })
|
31
|
+
```
|
data/Rakefile
ADDED
data/ask-ruby.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "ask-ruby"
|
6
|
+
s.version = "0.0.2"
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.authors = ["Ian Hunter"]
|
9
|
+
s.email = ["ian@asksurveys.com"]
|
10
|
+
s.homepage = "https://github.com/askbetter/ask-ruby"
|
11
|
+
s.summary = %q{ask. Ruby Library}
|
12
|
+
s.description = %q{Ruby library for integrating ask.}
|
13
|
+
|
14
|
+
s.rubyforge_project = s.name
|
15
|
+
|
16
|
+
s.required_ruby_version = '>= 1.9.3'
|
17
|
+
|
18
|
+
s.files = `git ls-files`.split("\n")
|
19
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
20
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
+
s.require_paths = ["lib"]
|
22
|
+
|
23
|
+
s.add_dependency 'activesupport'
|
24
|
+
s.add_dependency 'faraday'
|
25
|
+
s.add_dependency 'faraday_middleware'
|
26
|
+
end
|
data/lib/ask.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'faraday_middleware'
|
3
|
+
|
4
|
+
module Ask
|
5
|
+
extend self
|
6
|
+
|
7
|
+
API_URL = "https://api.asksurveys.com/"
|
8
|
+
|
9
|
+
attr_accessor :api_token
|
10
|
+
|
11
|
+
# Sends a POST to the Asksurveys API to schedule a satisfaction survey to be sent
|
12
|
+
# after a set amount of time.
|
13
|
+
#
|
14
|
+
# @see http://asksurveys.com/docs
|
15
|
+
#
|
16
|
+
# @param [User] user The user to send a survey to.
|
17
|
+
# @param [FixNum] delay How long to wait before sending the survey.
|
18
|
+
# @param [Hash] properties Additional properties to send about
|
19
|
+
# this user, purchase, item, etc.
|
20
|
+
def schedule_nps(email, name=nil, delay=nil, properties = {})
|
21
|
+
unless defined?(Ask.api_token)
|
22
|
+
raise "Make sure to set the API key before using the library: Ask.key = '1234567890'"
|
23
|
+
end
|
24
|
+
|
25
|
+
connection = Faraday.new(url: API_URL) do |faraday|
|
26
|
+
faraday.basic_auth api_token, ''
|
27
|
+
faraday.request :url_encoded
|
28
|
+
faraday.response :json # Parses response bodies as json.
|
29
|
+
faraday.adapter Faraday.default_adapter
|
30
|
+
end
|
31
|
+
|
32
|
+
payload = {}
|
33
|
+
payload[:email] = email
|
34
|
+
payload[:name] = name if name
|
35
|
+
payload[:schedule_at] = delay if delay
|
36
|
+
payload[:properties] = properties
|
37
|
+
|
38
|
+
connection.post "/v1/nps.json", payload
|
39
|
+
end
|
40
|
+
end
|
data/spec/ask_spec.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Ask, ".schedule_nps" do
|
4
|
+
describe "the response" do
|
5
|
+
it "is successful and contains all appropriate keys" do
|
6
|
+
response = Ask.schedule_nps('test@example.com', 'test', 'one week', { foo: "bar" })
|
7
|
+
|
8
|
+
response.status.should == 201
|
9
|
+
response.body['email'].should == 'someone@example.com'
|
10
|
+
response.body['properties'].should == { "foo" => "bar" }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ask-ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ian Hunter
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-02-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faraday
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: faraday_middleware
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Ruby library for integrating ask.
|
56
|
+
email:
|
57
|
+
- ian@asksurveys.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- .gitignore
|
63
|
+
- .rspec
|
64
|
+
- .ruby-version
|
65
|
+
- Gemfile
|
66
|
+
- README.md
|
67
|
+
- Rakefile
|
68
|
+
- ask-ruby.gemspec
|
69
|
+
- lib/ask.rb
|
70
|
+
- spec/ask_spec.rb
|
71
|
+
- spec/spec_helper.rb
|
72
|
+
homepage: https://github.com/askbetter/ask-ruby
|
73
|
+
licenses: []
|
74
|
+
metadata: {}
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options: []
|
77
|
+
require_paths:
|
78
|
+
- lib
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 1.9.3
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
requirements: []
|
90
|
+
rubyforge_project: ask-ruby
|
91
|
+
rubygems_version: 2.0.2
|
92
|
+
signing_key:
|
93
|
+
specification_version: 4
|
94
|
+
summary: ask. Ruby Library
|
95
|
+
test_files:
|
96
|
+
- spec/ask_spec.rb
|
97
|
+
- spec/spec_helper.rb
|
98
|
+
has_rdoc:
|