surveygizmo 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: