surveymonkey 0.2.0 → 0.2.1
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 +4 -4
- data/.gitignore +1 -0
- data/Rakefile +7 -0
- data/lib/surveymonkey.rb +9 -0
- data/lib/surveymonkey/api.rb +19 -0
- data/lib/surveymonkey/api/method.rb +7 -0
- data/lib/surveymonkey/client.rb +10 -1
- data/lib/surveymonkey/logging.rb +10 -0
- data/lib/surveymonkey/request.rb +23 -5
- data/lib/surveymonkey/version.rb +4 -1
- data/surveymonkey.gemspec +2 -1
- metadata +17 -4
- data/lib/surveymonkey/config.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0016ceeb8fa3c8895b7b465a24f4f6e3df95861f
|
4
|
+
data.tar.gz: c3a701a37149d2c21653683e7fa30b21affffb59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: abc80f434fdcce9004c57845d154f1cce4e9569772d4137a590b558f4c1e9fe45a9a9df656a574f88d4aa80c4dad107943b54f4bb77af73f07045915653f40fa
|
7
|
+
data.tar.gz: e477655cec24b311616023d00215c41a6f1a829c95488631a078847493f9dab58e2a9b602774e04ff74631ea5bad050f942d2583f39387a99f1c32708a6ae035
|
data/.gitignore
CHANGED
data/Rakefile
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require "rspec/core/rake_task"
|
3
3
|
require "rubygems/tasks"
|
4
|
+
require "rdoc/task"
|
4
5
|
|
5
6
|
# Default directory to look in is `/specs`
|
6
7
|
# Run with `rake spec`
|
@@ -14,3 +15,9 @@ task :default => :spec
|
|
14
15
|
Gem::Tasks.new do |tasks|
|
15
16
|
tasks.console.command = "pry"
|
16
17
|
end
|
18
|
+
|
19
|
+
# RDoc tasks
|
20
|
+
RDoc::Task.new do |rdoc|
|
21
|
+
rdoc.main = "README.rdoc"
|
22
|
+
rdoc.rdoc_files.include("README.md", "lib/*/*.rb", "lib/*/*/*.rb", "lib/*/*/*/*.rb")
|
23
|
+
end
|
data/lib/surveymonkey.rb
CHANGED
@@ -4,12 +4,21 @@ require "surveymonkey/version"
|
|
4
4
|
require "surveymonkey/logging"
|
5
5
|
require "surveymonkey/request"
|
6
6
|
|
7
|
+
##
|
8
|
+
# Top-level module, holds the user-facing methods
|
9
|
+
|
7
10
|
module Surveymonkey
|
8
11
|
|
9
12
|
class << self
|
10
13
|
# Constants
|
11
14
|
|
12
15
|
# Public methods
|
16
|
+
|
17
|
+
##
|
18
|
+
# Catch-all method; matches SurveyMonkey API method names. Call like so:
|
19
|
+
#
|
20
|
+
# Surveymonkey.get_user_details({'method_params' => {'foo' => 'bar'}})
|
21
|
+
|
13
22
|
def method_missing(method_name, *args)
|
14
23
|
begin
|
15
24
|
$log.debug(sprintf("%s: %s\n", __method__, 'enter'))
|
data/lib/surveymonkey/api.rb
CHANGED
@@ -1,11 +1,17 @@
|
|
1
1
|
require 'surveymonkey/logging'
|
2
2
|
require 'json'
|
3
3
|
|
4
|
+
##
|
5
|
+
# Object representing the SurveyMonkey API.
|
6
|
+
|
4
7
|
class Surveymonkey::API
|
5
8
|
autoload :Method, 'surveymonkey/api/method'
|
6
9
|
|
7
10
|
# constants
|
8
11
|
|
12
|
+
##
|
13
|
+
# Hash defining the methods in the SurveyMonkey API. Current as of 2015-05-05.
|
14
|
+
|
9
15
|
Api_methods = {
|
10
16
|
'create_flow' => {
|
11
17
|
'path' => '/v2/batch/create_flow',
|
@@ -45,6 +51,9 @@ class Surveymonkey::API
|
|
45
51
|
# public methods
|
46
52
|
attr_reader :api_methods
|
47
53
|
|
54
|
+
##
|
55
|
+
# Look up a SurveyMonkey API method and return its path and associated HTTP method.
|
56
|
+
|
48
57
|
def api_method(key, api_methods = self.api_methods)
|
49
58
|
begin
|
50
59
|
$log.debug(sprintf("%s: api methods: %s\n", __method__, api_methods.inspect))
|
@@ -69,6 +78,11 @@ class Surveymonkey::API
|
|
69
78
|
end
|
70
79
|
end
|
71
80
|
|
81
|
+
##
|
82
|
+
# SurveyMonkey API method params need to be a JSON-encoded string; this
|
83
|
+
# method passes through a string and tries to turn another data type into
|
84
|
+
# JSON.
|
85
|
+
|
72
86
|
def api_method_params(method_params)
|
73
87
|
begin
|
74
88
|
# TODO validate params against API spec
|
@@ -85,6 +99,11 @@ class Surveymonkey::API
|
|
85
99
|
end
|
86
100
|
end
|
87
101
|
|
102
|
+
##
|
103
|
+
# Create a new Surveymonkey::API object. The only parameter is an
|
104
|
+
# api_methods hash (use this if you want to override the definition of the
|
105
|
+
# SurveyMonkey API, I guess?)
|
106
|
+
|
88
107
|
def initialize
|
89
108
|
begin
|
90
109
|
@api_methods = Api_methods
|
@@ -1,8 +1,15 @@
|
|
1
1
|
require 'surveymonkey/logging'
|
2
2
|
|
3
|
+
##
|
4
|
+
# Object representing a SurveyMonkey API method.
|
5
|
+
|
3
6
|
class Surveymonkey::API::Method
|
4
7
|
attr_reader :path, :http_method
|
5
8
|
|
9
|
+
##
|
10
|
+
# Create a new method. Does some input validation to make sure the
|
11
|
+
# associated HTTP method is valid.
|
12
|
+
|
6
13
|
def initialize(path, http_method = 'post')
|
7
14
|
begin
|
8
15
|
$log.debug(sprintf("%s: enter", __method__))
|
data/lib/surveymonkey/client.rb
CHANGED
@@ -3,6 +3,9 @@ require "json"
|
|
3
3
|
|
4
4
|
require "surveymonkey/logging"
|
5
5
|
|
6
|
+
##
|
7
|
+
# Class encapsulating the HTTParty client used to communicate with the SurveyMonkey API.
|
8
|
+
|
6
9
|
class Surveymonkey::Client
|
7
10
|
include HTTParty
|
8
11
|
|
@@ -13,6 +16,12 @@ class Surveymonkey::Client
|
|
13
16
|
# public methods
|
14
17
|
attr_reader :baseuri, :api_key, :access_token
|
15
18
|
|
19
|
+
##
|
20
|
+
# Create a new Surveymonkey::Client object. Requires the following parameters:
|
21
|
+
# * baseuri
|
22
|
+
# * access_token
|
23
|
+
# * api_key
|
24
|
+
|
16
25
|
def initialize(baseuri, access_token, api_key)
|
17
26
|
begin
|
18
27
|
@baseuri = baseuri
|
@@ -37,7 +46,7 @@ class Surveymonkey::Client
|
|
37
46
|
# private methods
|
38
47
|
private
|
39
48
|
|
40
|
-
def _http_headers(token)
|
49
|
+
def _http_headers(token) #:nodoc:
|
41
50
|
begin
|
42
51
|
$log.debug(sprintf("%s: constructing http headers with token '%s'\n", __method__, token))
|
43
52
|
http_headers = {
|
data/lib/surveymonkey/logging.rb
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
##
|
2
|
+
# Implement logging for Surveymonkey via the Logging library.
|
3
|
+
#
|
4
|
+
# Logging configuration happens at runtime and is drawn from the
|
5
|
+
# **SURVEYMONKEY_LOGLEVEL** environment variable. Set this variable to one of
|
6
|
+
# the standard syslog levels (debug, info, warning, error, fatal) to enable
|
7
|
+
# more or less logging. At present Surveymonkey logs a lot of debug messages,
|
8
|
+
# and other than that just emits errors and fatals if it encounters problems.
|
9
|
+
# The default loglevel is error.
|
10
|
+
|
1
11
|
module Surveymonkey::Logging
|
2
12
|
# initialize logging
|
3
13
|
if ENV.member?('SURVEYMONKEY_LOGLEVEL')
|
data/lib/surveymonkey/request.rb
CHANGED
@@ -2,6 +2,9 @@ require 'surveymonkey/logging'
|
|
2
2
|
require 'surveymonkey/api'
|
3
3
|
require 'surveymonkey/client'
|
4
4
|
|
5
|
+
##
|
6
|
+
# Object representing a request to the SurveyMonkey API. Parameters should all be populated automatically.
|
7
|
+
|
5
8
|
class Surveymonkey::Request
|
6
9
|
|
7
10
|
begin
|
@@ -13,6 +16,13 @@ class Surveymonkey::Request
|
|
13
16
|
Baseuri = 'https://api.surveymonkey.net'
|
14
17
|
|
15
18
|
# public methods
|
19
|
+
|
20
|
+
##
|
21
|
+
# Send the HTTP request to the SurveyMonkey API and parse the response.
|
22
|
+
# This is an opportunity to override defaults, _e.g._ if you want to use
|
23
|
+
# different credentials for a specific request, or if you're sending the
|
24
|
+
# same request repeatedly with different parameters.
|
25
|
+
|
16
26
|
def execute(method_params = self.method_params, api_method = self.api_method, api_key = self.api_key, access_token = self.access_token)
|
17
27
|
begin
|
18
28
|
$log.debug(sprintf("%s: enter\n", __method__))
|
@@ -44,6 +54,14 @@ class Surveymonkey::Request
|
|
44
54
|
end
|
45
55
|
end
|
46
56
|
|
57
|
+
##
|
58
|
+
# Create a new Surveymonkey::Request object. Takes a string representing the API method name and a hash of parameters; the relevant parameters are the following:
|
59
|
+
#
|
60
|
+
# * baseuri
|
61
|
+
# * method_params
|
62
|
+
# * access_token
|
63
|
+
# * api_key
|
64
|
+
|
47
65
|
def initialize(api_method, *args)
|
48
66
|
begin
|
49
67
|
$log.debug(sprintf("%s: enter\n", __method__))
|
@@ -75,7 +93,7 @@ class Surveymonkey::Request
|
|
75
93
|
# private methods
|
76
94
|
private
|
77
95
|
|
78
|
-
def _client
|
96
|
+
def _client #:nodoc:
|
79
97
|
begin
|
80
98
|
@client = Surveymonkey::Client.new()
|
81
99
|
rescue StandardError => e
|
@@ -85,7 +103,7 @@ class Surveymonkey::Request
|
|
85
103
|
end
|
86
104
|
end
|
87
105
|
|
88
|
-
def _api
|
106
|
+
def _api #:nodoc:
|
89
107
|
begin
|
90
108
|
@api = Surveymonkey::API.new()
|
91
109
|
rescue StandardError => e
|
@@ -95,7 +113,7 @@ class Surveymonkey::Request
|
|
95
113
|
end
|
96
114
|
end
|
97
115
|
|
98
|
-
def _http_headers(token)
|
116
|
+
def _http_headers(token) #:nodoc:
|
99
117
|
begin
|
100
118
|
$log.debug(sprintf("%s: constructing http headers with token '%s'\n", __method__, token))
|
101
119
|
http_headers = {
|
@@ -111,7 +129,7 @@ class Surveymonkey::Request
|
|
111
129
|
end
|
112
130
|
end
|
113
131
|
|
114
|
-
def _from_env(key)
|
132
|
+
def _from_env(key) #:nodoc:
|
115
133
|
begin
|
116
134
|
$log.debug(sprintf("%s: fetching '%s' from environment\n", __method__, key))
|
117
135
|
value = ENV.fetch(key)
|
@@ -126,7 +144,7 @@ class Surveymonkey::Request
|
|
126
144
|
end
|
127
145
|
end
|
128
146
|
|
129
|
-
def _request_uri(path, api_key)
|
147
|
+
def _request_uri(path, api_key) #:nodoc:
|
130
148
|
begin
|
131
149
|
$log.debug(sprintf("%s: generating request uri fragment from '%s' and '%s'\n", __method__, path, api_key))
|
132
150
|
request_uri = sprintf("%s?api_key=%s", path, api_key)
|
data/lib/surveymonkey/version.rb
CHANGED
data/surveymonkey.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
|
12
12
|
spec.summary = %q{Client for SurveyMonkey REST API}
|
13
13
|
spec.description = %q{Interact with SurveyMonkey's REST API. Requires an API token.}
|
14
|
-
spec.homepage = "
|
14
|
+
spec.homepage = "https://github.com/hakamadare/rubygem-surveymonkey/"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency "bundler", ">= 1.7"
|
25
25
|
spec.add_development_dependency "pry", "~> 0.10"
|
26
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
|
+
spec.add_development_dependency "rdoc", "~> 4"
|
27
28
|
spec.add_development_dependency "rspec", "~> 2.4"
|
28
29
|
spec.add_development_dependency "rubygems-tasks", "~> 0.2"
|
29
30
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: surveymonkey
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Huff
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rdoc
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rspec
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,12 +158,11 @@ files:
|
|
144
158
|
- lib/surveymonkey/api.rb
|
145
159
|
- lib/surveymonkey/api/method.rb
|
146
160
|
- lib/surveymonkey/client.rb
|
147
|
-
- lib/surveymonkey/config.rb
|
148
161
|
- lib/surveymonkey/logging.rb
|
149
162
|
- lib/surveymonkey/request.rb
|
150
163
|
- lib/surveymonkey/version.rb
|
151
164
|
- surveymonkey.gemspec
|
152
|
-
homepage:
|
165
|
+
homepage: https://github.com/hakamadare/rubygem-surveymonkey/
|
153
166
|
licenses:
|
154
167
|
- MIT
|
155
168
|
metadata: {}
|
data/lib/surveymonkey/config.rb
DELETED