surveygizmo 0.0.1 → 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.
Files changed (48) hide show
  1. data/.gitignore +2 -0
  2. data/.rspec +1 -0
  3. data/Rakefile +7 -1
  4. data/lib/surveygizmo/client.rb +10 -2
  5. data/lib/surveygizmo/client/contact.rb +3 -3
  6. data/lib/surveygizmo/client/filter.rb +1 -1
  7. data/lib/surveygizmo/client/survey.rb +4 -4
  8. data/lib/surveygizmo/client/survey_question.rb +25 -0
  9. data/lib/surveygizmo/client/survey_response.rb +3 -3
  10. data/lib/surveygizmo/client/survey_statistic.rb +24 -0
  11. data/lib/surveygizmo/configurable.rb +27 -0
  12. data/lib/surveygizmo/configuration.rb +1 -1
  13. data/lib/surveygizmo/connection.rb +10 -3
  14. data/lib/surveygizmo/request.rb +0 -10
  15. data/lib/surveygizmo/version.rb +1 -1
  16. data/readme.textile +12 -12
  17. data/spec/fixtures/account.json +1 -0
  18. data/spec/fixtures/account_user.json +1 -0
  19. data/spec/fixtures/account_users.json +1 -0
  20. data/spec/fixtures/contact.json +1 -0
  21. data/spec/fixtures/contacts.json +1 -0
  22. data/spec/fixtures/create_account_user.json +1 -0
  23. data/spec/fixtures/delete_account_user.json +1 -0
  24. data/spec/fixtures/survey.json +1 -0
  25. data/spec/fixtures/survey_campaign.json +1 -0
  26. data/spec/fixtures/survey_campaigns.json +1 -0
  27. data/spec/fixtures/survey_question.json +33 -0
  28. data/spec/fixtures/survey_questions.json +195 -0
  29. data/spec/fixtures/survey_response.json +1 -0
  30. data/spec/fixtures/survey_responses.json +1 -0
  31. data/spec/fixtures/survey_statistic.json +7 -0
  32. data/spec/fixtures/survey_statistics.json +92 -0
  33. data/spec/fixtures/surveys.json +1 -0
  34. data/spec/fixtures/update_account_user.json +1 -0
  35. data/spec/helper.rb +51 -0
  36. data/spec/surveygizmo/client/account_spec.rb +19 -0
  37. data/spec/surveygizmo/client/account_user_spec.rb +83 -0
  38. data/spec/surveygizmo/client/contact_spec.rb +31 -0
  39. data/spec/surveygizmo/client/filter_spec.rb +22 -0
  40. data/spec/surveygizmo/client/survey_campaign_spec.rb +31 -0
  41. data/spec/surveygizmo/client/survey_question_spec.rb +31 -0
  42. data/spec/surveygizmo/client/survey_response_spec.rb +31 -0
  43. data/spec/surveygizmo/client/survey_spec.rb +45 -0
  44. data/spec/surveygizmo/client_spec.rb +67 -0
  45. data/spec/surveygizmo/survey_statistic_spec.rb +31 -0
  46. data/spec/surveygizmo_spec.rb +34 -0
  47. data/surveygizmo.gemspec +7 -2
  48. metadata +154 -10
@@ -0,0 +1,67 @@
1
+ require 'helper'
2
+
3
+ describe Surveygizmo::Client do
4
+ subject do
5
+ Surveygizmo::Client.new(
6
+ :username => "steven@somewhere.org",
7
+ :password => "keyboardcat"
8
+ )
9
+ end
10
+
11
+ context "with module configuration" do
12
+ before do
13
+ Surveygizmo.configure do |config|
14
+ Surveygizmo::Configurable.keys.each do |key|
15
+ config.send("#{key}=", key)
16
+ end
17
+ end
18
+ end
19
+
20
+ after do
21
+ Surveygizmo.reset
22
+ end
23
+
24
+ it "inherits the module configuration" do
25
+ client = Surveygizmo::Client.new
26
+ Surveygizmo::Configurable.keys.each do |key|
27
+ client.instance_variable_get(:"@#{key}").should eq key
28
+ end
29
+ end
30
+ end
31
+
32
+ describe "#credentials?" do
33
+ it "returns true if all credentials are present" do
34
+ client = Surveygizmo::Client.new(:username => "steven@somewhere.org", :password => "keyboardcat")
35
+ client.credentials?.should be_true
36
+ end
37
+ it "returns false if any credentials are missing" do
38
+ client = Surveygizmo::Client.new(:username => "steven@somewhere.org")
39
+ client.credentials?.should be_false
40
+ end
41
+ end
42
+
43
+ describe "#auth_query_hash" do
44
+ it "creates the correct auth query params" do
45
+ authorization = subject.send(:auth_query_hash)
46
+ authorization[:'user:md5'].should eq "steven@somewhere.org:39f8d5313141b1f2bade311ba571537e"
47
+ end
48
+ end
49
+
50
+ context "authenticating requests" do
51
+ subject do
52
+ Surveygizmo::Client.new(:username => "steven@somewhere.org", :password => "keyboardcat")
53
+ end
54
+ before do
55
+ authorization = subject.send(:auth_query_hash)
56
+ stub_get("/v2/account").
57
+ with(:query => authorization).
58
+ to_return(:body => fixture("account.json"), :headers => {:content_type => "application/json; charset=utf-8"})
59
+ end
60
+ it "includes authorization in request query hash" do
61
+ subject.account
62
+ a_get("/v2/account").
63
+ with(:query => {:'user:md5' => "steven@somewhere.org:39f8d5313141b1f2bade311ba571537e"}).
64
+ should have_been_made
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,31 @@
1
+ require 'helper'
2
+
3
+ describe Surveygizmo::API do
4
+ before do
5
+ @client = Surveygizmo::Client.new
6
+ end
7
+
8
+ describe "#survey_statistics" do
9
+ before do
10
+ stub_get("/v2/survey/1018301/surveystatistic").
11
+ to_return(:body => fixture("survey_statistics.json"), :headers => {:content_type => "application/json; charset=utf-8"})
12
+ end
13
+
14
+ it "requests the correct resource" do
15
+ @client.survey_statistics(1018301)
16
+ a_get("/v2/survey/1018301/surveystatistic").should have_been_made
17
+ end
18
+ end
19
+
20
+ describe "#survey_statistic" do
21
+ before do
22
+ stub_get("/v2/survey/1018301/surveystatistic/1").
23
+ to_return(:body => fixture("survey_statistic.json"), :headers => {:content_type => "application/json; charset=utf-8"})
24
+ end
25
+ it "requests the correct resource" do
26
+ @client.survey_statistic(1018301, 1)
27
+ a_get("/v2/survey/1018301/surveystatistic/1").
28
+ should have_been_made
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,34 @@
1
+ require 'helper'
2
+
3
+ describe Surveygizmo do
4
+ after do
5
+ Surveygizmo.reset
6
+ end
7
+
8
+ context "when delegating to a client" do
9
+
10
+ before do
11
+ stub_get("/v2/account").
12
+ to_return(:body => fixture("account.json"), :headers => {:content_type => "application/json; charset=utf-8"})
13
+ end
14
+
15
+ it "requests the correct resource" do
16
+ Surveygizmo.account
17
+ a_get("/v2/account").
18
+ should have_been_made
19
+ end
20
+
21
+ it "returns the same results as a client" do
22
+ Surveygizmo.account.should eq Surveygizmo::Client.new.account
23
+ end
24
+ end
25
+
26
+ describe '.respond_to?' do
27
+ it "delegates to Surveygizmo::Client" do
28
+ Surveygizmo.respond_to?(:account).should be_true
29
+ end
30
+ it "takes an optional argument" do
31
+ Surveygizmo.respond_to?(:account, true).should be_true
32
+ end
33
+ end
34
+ end
@@ -13,14 +13,19 @@ Gem::Specification.new do |s|
13
13
  s.rubyforge_project = 'surveygizmo'
14
14
 
15
15
  # Development Gems
16
- # s.add_development_dependency 'rspec'
16
+ s.add_development_dependency 'rspec'
17
+ s.add_development_dependency 'rake'
18
+ s.add_development_dependency 'webmock'
19
+ s.add_development_dependency 'simplecov'
20
+
17
21
  # Gems
18
22
  s.add_dependency 'hashie', '~> 1.1.0'
19
23
  s.add_dependency 'faraday', '~> 0.7.4'
20
24
  s.add_dependency 'faraday_middleware', '~> 0.7.0'
21
25
 
26
+
22
27
  s.files = `git ls-files`.split("\n")
23
28
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
24
29
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
25
30
  s.require_paths = ['lib']
26
- end
31
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: surveygizmo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,75 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-14 00:00:00.000000000 Z
12
+ date: 2012-09-14 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: webmock
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: simplecov
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
14
78
  - !ruby/object:Gem::Dependency
15
79
  name: hashie
16
- requirement: &70230798285560 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
17
81
  none: false
18
82
  requirements:
19
83
  - - ~>
@@ -21,10 +85,15 @@ dependencies:
21
85
  version: 1.1.0
22
86
  type: :runtime
23
87
  prerelease: false
24
- version_requirements: *70230798285560
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.1.0
25
94
  - !ruby/object:Gem::Dependency
26
95
  name: faraday
27
- requirement: &70230798284520 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
28
97
  none: false
29
98
  requirements:
30
99
  - - ~>
@@ -32,10 +101,15 @@ dependencies:
32
101
  version: 0.7.4
33
102
  type: :runtime
34
103
  prerelease: false
35
- version_requirements: *70230798284520
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.7.4
36
110
  - !ruby/object:Gem::Dependency
37
111
  name: faraday_middleware
38
- requirement: &70230798283660 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
39
113
  none: false
40
114
  requirements:
41
115
  - - ~>
@@ -43,7 +117,12 @@ dependencies:
43
117
  version: 0.7.0
44
118
  type: :runtime
45
119
  prerelease: false
46
- version_requirements: *70230798283660
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 0.7.0
47
126
  description: A Ruby wrapper for the SurveyGizmo REST API
48
127
  email:
49
128
  - developers@helloample.com
@@ -52,6 +131,7 @@ extensions: []
52
131
  extra_rdoc_files: []
53
132
  files:
54
133
  - .gitignore
134
+ - .rspec
55
135
  - Gemfile
56
136
  - LICENSE
57
137
  - Rakefile
@@ -64,12 +144,45 @@ files:
64
144
  - lib/surveygizmo/client/filter.rb
65
145
  - lib/surveygizmo/client/survey.rb
66
146
  - lib/surveygizmo/client/survey_campaign.rb
147
+ - lib/surveygizmo/client/survey_question.rb
67
148
  - lib/surveygizmo/client/survey_response.rb
149
+ - lib/surveygizmo/client/survey_statistic.rb
150
+ - lib/surveygizmo/configurable.rb
68
151
  - lib/surveygizmo/configuration.rb
69
152
  - lib/surveygizmo/connection.rb
70
153
  - lib/surveygizmo/request.rb
71
154
  - lib/surveygizmo/version.rb
72
155
  - readme.textile
156
+ - spec/fixtures/account.json
157
+ - spec/fixtures/account_user.json
158
+ - spec/fixtures/account_users.json
159
+ - spec/fixtures/contact.json
160
+ - spec/fixtures/contacts.json
161
+ - spec/fixtures/create_account_user.json
162
+ - spec/fixtures/delete_account_user.json
163
+ - spec/fixtures/survey.json
164
+ - spec/fixtures/survey_campaign.json
165
+ - spec/fixtures/survey_campaigns.json
166
+ - spec/fixtures/survey_question.json
167
+ - spec/fixtures/survey_questions.json
168
+ - spec/fixtures/survey_response.json
169
+ - spec/fixtures/survey_responses.json
170
+ - spec/fixtures/survey_statistic.json
171
+ - spec/fixtures/survey_statistics.json
172
+ - spec/fixtures/surveys.json
173
+ - spec/fixtures/update_account_user.json
174
+ - spec/helper.rb
175
+ - spec/surveygizmo/client/account_spec.rb
176
+ - spec/surveygizmo/client/account_user_spec.rb
177
+ - spec/surveygizmo/client/contact_spec.rb
178
+ - spec/surveygizmo/client/filter_spec.rb
179
+ - spec/surveygizmo/client/survey_campaign_spec.rb
180
+ - spec/surveygizmo/client/survey_question_spec.rb
181
+ - spec/surveygizmo/client/survey_response_spec.rb
182
+ - spec/surveygizmo/client/survey_spec.rb
183
+ - spec/surveygizmo/client_spec.rb
184
+ - spec/surveygizmo/survey_statistic_spec.rb
185
+ - spec/surveygizmo_spec.rb
73
186
  - surveygizmo.gemspec
74
187
  homepage: http://github.com/ample/surveygizmo
75
188
  licenses: []
@@ -91,8 +204,39 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
204
  version: '0'
92
205
  requirements: []
93
206
  rubyforge_project: surveygizmo
94
- rubygems_version: 1.8.11
207
+ rubygems_version: 1.8.24
95
208
  signing_key:
96
209
  specification_version: 3
97
210
  summary: A Ruby wrapper for the SurveyGizmo REST API
98
- test_files: []
211
+ test_files:
212
+ - spec/fixtures/account.json
213
+ - spec/fixtures/account_user.json
214
+ - spec/fixtures/account_users.json
215
+ - spec/fixtures/contact.json
216
+ - spec/fixtures/contacts.json
217
+ - spec/fixtures/create_account_user.json
218
+ - spec/fixtures/delete_account_user.json
219
+ - spec/fixtures/survey.json
220
+ - spec/fixtures/survey_campaign.json
221
+ - spec/fixtures/survey_campaigns.json
222
+ - spec/fixtures/survey_question.json
223
+ - spec/fixtures/survey_questions.json
224
+ - spec/fixtures/survey_response.json
225
+ - spec/fixtures/survey_responses.json
226
+ - spec/fixtures/survey_statistic.json
227
+ - spec/fixtures/survey_statistics.json
228
+ - spec/fixtures/surveys.json
229
+ - spec/fixtures/update_account_user.json
230
+ - spec/helper.rb
231
+ - spec/surveygizmo/client/account_spec.rb
232
+ - spec/surveygizmo/client/account_user_spec.rb
233
+ - spec/surveygizmo/client/contact_spec.rb
234
+ - spec/surveygizmo/client/filter_spec.rb
235
+ - spec/surveygizmo/client/survey_campaign_spec.rb
236
+ - spec/surveygizmo/client/survey_question_spec.rb
237
+ - spec/surveygizmo/client/survey_response_spec.rb
238
+ - spec/surveygizmo/client/survey_spec.rb
239
+ - spec/surveygizmo/client_spec.rb
240
+ - spec/surveygizmo/survey_statistic_spec.rb
241
+ - spec/surveygizmo_spec.rb
242
+ has_rdoc: