survey-gizmo-ruby 0.7.1 → 0.9.6
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +5 -3
- data/Gemfile.lock +20 -16
- data/README.md +7 -7
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/lib/survey_gizmo/api/contact.rb +49 -0
- data/lib/survey_gizmo/api/email_message.rb +33 -0
- data/lib/survey_gizmo/api/option.rb +8 -7
- data/lib/survey_gizmo/api/page.rb +7 -7
- data/lib/survey_gizmo/api/question.rb +8 -7
- data/lib/survey_gizmo/api/response.rb +18 -9
- data/lib/survey_gizmo/api/survey.rb +21 -11
- data/lib/survey_gizmo/api/survey_campaign.rb +33 -0
- data/lib/survey_gizmo/collection.rb +15 -15
- data/lib/survey_gizmo/resource.rb +109 -45
- data/lib/survey_gizmo/survey_gizmo.rb +11 -7
- data/spec/resource_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- data/spec/survey-gizmo-ruby_spec.rb +5 -4
- metadata +52 -26
data/Gemfile
CHANGED
@@ -1,15 +1,17 @@
|
|
1
|
-
source
|
1
|
+
source :rubygems
|
2
2
|
|
3
|
-
gem "activesupport", '
|
3
|
+
gem "activesupport", '~> 3.0'
|
4
4
|
gem 'i18n'
|
5
|
-
gem 'virtus'
|
5
|
+
gem 'virtus'
|
6
6
|
gem 'httparty'
|
7
|
+
gem 'addressable', :require => "addressable/uri"
|
7
8
|
|
8
9
|
group :development do
|
9
10
|
gem 'bluecloth', :require => nil
|
10
11
|
gem "yard", "~> 0.7.0"
|
11
12
|
gem "bundler", "~> 1.0"
|
12
13
|
gem "jeweler", "~> 1.6.4"
|
14
|
+
gem 'awesome_print', :require => 'ap'
|
13
15
|
end
|
14
16
|
|
15
17
|
group :test do
|
data/Gemfile.lock
CHANGED
@@ -1,24 +1,26 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
activesupport (3.
|
4
|
+
activesupport (3.2.8)
|
5
|
+
i18n (~> 0.6)
|
5
6
|
multi_json (~> 1.0)
|
6
|
-
addressable (2.2
|
7
|
-
awesome_print (1.0
|
7
|
+
addressable (2.3.2)
|
8
|
+
awesome_print (1.1.0)
|
9
|
+
backports (2.6.4)
|
8
10
|
bluecloth (2.2.0)
|
9
11
|
crack (0.3.1)
|
10
12
|
diff-lcs (1.1.3)
|
11
13
|
git (1.2.5)
|
12
|
-
httparty (0.
|
13
|
-
multi_json
|
14
|
+
httparty (0.9.0)
|
15
|
+
multi_json (~> 1.0)
|
14
16
|
multi_xml
|
15
|
-
i18n (0.6.
|
17
|
+
i18n (0.6.1)
|
16
18
|
jeweler (1.6.4)
|
17
19
|
bundler (~> 1.0)
|
18
20
|
git (>= 1.2.5)
|
19
21
|
rake
|
20
|
-
multi_json (1.
|
21
|
-
multi_xml (0.
|
22
|
+
multi_json (1.3.6)
|
23
|
+
multi_xml (0.5.1)
|
22
24
|
net-http-spy (0.2.1)
|
23
25
|
rake (0.9.2.2)
|
24
26
|
rspec (2.11.0)
|
@@ -26,20 +28,22 @@ GEM
|
|
26
28
|
rspec-expectations (~> 2.11.0)
|
27
29
|
rspec-mocks (~> 2.11.0)
|
28
30
|
rspec-core (2.11.1)
|
29
|
-
rspec-expectations (2.11.
|
31
|
+
rspec-expectations (2.11.3)
|
30
32
|
diff-lcs (~> 1.1.3)
|
31
|
-
rspec-mocks (2.11.
|
32
|
-
virtus (0.
|
33
|
-
|
34
|
-
|
33
|
+
rspec-mocks (2.11.3)
|
34
|
+
virtus (0.5.2)
|
35
|
+
backports (~> 2.6.1)
|
36
|
+
webmock (1.8.11)
|
37
|
+
addressable (>= 2.2.7)
|
35
38
|
crack (>= 0.1.7)
|
36
|
-
yard (0.7.
|
39
|
+
yard (0.7.5)
|
37
40
|
|
38
41
|
PLATFORMS
|
39
42
|
ruby
|
40
43
|
|
41
44
|
DEPENDENCIES
|
42
|
-
activesupport (
|
45
|
+
activesupport (~> 3.0)
|
46
|
+
addressable
|
43
47
|
awesome_print
|
44
48
|
bluecloth
|
45
49
|
bundler (~> 1.0)
|
@@ -48,6 +52,6 @@ DEPENDENCIES
|
|
48
52
|
jeweler (~> 1.6.4)
|
49
53
|
net-http-spy
|
50
54
|
rspec (~> 2.11.0)
|
51
|
-
virtus
|
55
|
+
virtus
|
52
56
|
webmock
|
53
57
|
yard (~> 0.7.0)
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Survey Gizmo (ruby)
|
2
2
|
|
3
|
-
Integrate with the [Survey Gizmo API](http://developer.surveygizmo.com/resources/rest-api-documentation-version-1-01/) using an ActiveModel style interface. We currently support rest API **
|
3
|
+
Integrate with the [Survey Gizmo API](http://developer.surveygizmo.com/resources/rest-api-documentation-version-1-01/) using an ActiveModel style interface. We currently support rest API **v3**. If you want to use version 1 of the API, please use gem version ~0.7.0
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -28,9 +28,9 @@ Integrate with the [Survey Gizmo API](http://developer.surveygizmo.com/resources
|
|
28
28
|
|
29
29
|
## Adding API Objects
|
30
30
|
|
31
|
-
Currently, the following API objects are included in the gem: `Survey`, `Question`, `Option`, `Page`, `Response`. If you want to use something that isn't included you can easily write a class that handles it. Here's an example of the
|
31
|
+
Currently, the following API objects are included in the gem: `Survey`, `Question`, `Option`, `Page`, `Response`, `EmailMessage`, `SurveyCampaign`, `Contact`. If you want to use something that isn't included you can easily write a class that handles it. Here's an example of the how to do so:
|
32
32
|
|
33
|
-
class
|
33
|
+
class SomeObject
|
34
34
|
# the base where most of the methods for handling the API are stored
|
35
35
|
include SurveyGizmo::Resource
|
36
36
|
|
@@ -38,12 +38,12 @@ Currently, the following API objects are included in the gem: `Survey`, `Questio
|
|
38
38
|
attribute :id, Integer
|
39
39
|
attribute :title, String
|
40
40
|
attribute :status, String
|
41
|
-
attribute :type, String
|
41
|
+
attribute :type, String
|
42
42
|
attribute :created_on, DateTime
|
43
43
|
|
44
44
|
# defing the paths used to retrieve/set info
|
45
|
-
route '/
|
46
|
-
route '/
|
45
|
+
route '/something/:id', :via => [:get, :update, :delete]
|
46
|
+
route '/something', :via => :create
|
47
47
|
|
48
48
|
# this must be defined with the params that would be included in any route
|
49
49
|
def to_param_options
|
@@ -70,6 +70,6 @@ There are several API objects that are available and not included in this gem. I
|
|
70
70
|
|
71
71
|
# Copyright
|
72
72
|
|
73
|
-
Copyright (c)
|
73
|
+
Copyright (c) 2012 RipTheJacker. See LICENSE.txt for
|
74
74
|
further details.
|
75
75
|
|
data/Rakefile
CHANGED
@@ -17,10 +17,10 @@ Jeweler::Tasks.new do |gem|
|
|
17
17
|
gem.name = "survey-gizmo-ruby"
|
18
18
|
gem.homepage = "http://github.com/RipTheJacker/survey-gizmo-ruby"
|
19
19
|
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{gem to
|
21
|
-
gem.description = %Q{}
|
20
|
+
gem.summary = %Q{gem to use the Survey Gizmo REST API}
|
21
|
+
gem.description = %Q{gem to use the SurveyGizmo.com REST API, v3+}
|
22
22
|
gem.email = "self@ripthejacker.com"
|
23
|
-
gem.authors = ["Kabari Hendrick"]
|
23
|
+
gem.authors = ["Kabari Hendrick", "Chris Horn"]
|
24
24
|
gem.files = FileList['lib/**/*.rb', 'Gemfile*', '[A-Z]*', 'Rakefile', 'spec/**/*'].to_a
|
25
25
|
# dependencies defined in Gemfile
|
26
26
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.9.6
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module SurveyGizmo; module API
|
2
|
+
# @see SurveyGizmo::Resource::ClassMethods
|
3
|
+
class Contact
|
4
|
+
include SurveyGizmo::Resource
|
5
|
+
|
6
|
+
# @macro [attach] virtus_attribute
|
7
|
+
# @return [$2]
|
8
|
+
attribute :id, Integer
|
9
|
+
attribute :survey_id, Integer
|
10
|
+
attribute :campaign_id, Integer
|
11
|
+
attribute :estatus, String
|
12
|
+
attribute :esubscriberstatus, String
|
13
|
+
attribute :semailaddress, String
|
14
|
+
attribute :sfirstname, String
|
15
|
+
attribute :slastname, String
|
16
|
+
attribute :sorganization, String
|
17
|
+
attribute :sdepartment, String
|
18
|
+
attribute :sbusinessphone, String
|
19
|
+
attribute :shomephone, String
|
20
|
+
attribute :sfaxphone, String
|
21
|
+
attribute :sworkphone, String
|
22
|
+
attribute :smailingaddress, String
|
23
|
+
attribute :smailingaddress2, String
|
24
|
+
attribute :smailingaddresscity, String
|
25
|
+
attribute :smailingaddressstate, String
|
26
|
+
attribute :smailingaddresscountry, String
|
27
|
+
attribute :smailingaddresspostal, String
|
28
|
+
attribute :stitle, String
|
29
|
+
attribute :surl, String
|
30
|
+
attribute :scustomfield1, String
|
31
|
+
attribute :scustomfield2, String
|
32
|
+
attribute :scustomfield3, String
|
33
|
+
attribute :scustomfield4, String
|
34
|
+
attribute :scustomfield5, String
|
35
|
+
attribute :scustomfield6, String
|
36
|
+
attribute :scustomfield7, String
|
37
|
+
attribute :scustomfield8, String
|
38
|
+
attribute :scustomfield9, String
|
39
|
+
attribute :scustomfield10, String
|
40
|
+
|
41
|
+
route '/survey/:survey_id/surveycampaign/:campaign_id/contact/:id', :via => [:get, :update, :delete]
|
42
|
+
route '/survey/:survey_id/surveycampaign/:campaign_id/contact', :via => :create
|
43
|
+
|
44
|
+
# @see SurveyGizmo::Resource#to_param_options
|
45
|
+
def to_param_options
|
46
|
+
{:id => self.id, :survey_id => self.survey_id, :campaign_id => self.campaign_id}
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end; end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module SurveyGizmo; module API
|
2
|
+
# @see SurveyGizmo::Resource::ClassMethods
|
3
|
+
class EmailMessage
|
4
|
+
include SurveyGizmo::Resource
|
5
|
+
|
6
|
+
# @macro [attach] virtus_attribute
|
7
|
+
# @return [$2]
|
8
|
+
attribute :id, Integer
|
9
|
+
attribute :survey_id, Integer
|
10
|
+
attribute :campaign_id, Integer
|
11
|
+
attribute :invite_identity, Integer
|
12
|
+
attribute :_type, String
|
13
|
+
attribute :_subtype, String
|
14
|
+
attribute :subject, String
|
15
|
+
attribute :replies, String
|
16
|
+
attribute :messagetype, String
|
17
|
+
attribute :medium, String
|
18
|
+
attribute :status, String
|
19
|
+
attribute :from, Hash
|
20
|
+
attribute :body, Hash
|
21
|
+
attribute :send, Boolean
|
22
|
+
attribute :datecreated, DateTime
|
23
|
+
attribute :datemodified, DateTime
|
24
|
+
|
25
|
+
route '/survey/:survey_id/surveycampaign/:campaign_id/emailmessage/:id', :via => [:get, :update, :delete]
|
26
|
+
route '/survey/:survey_id/surveycampaign/:campaign_id/emailmessage', :via => :create
|
27
|
+
|
28
|
+
# @see SurveyGizmo::Resource#to_param_options
|
29
|
+
def to_param_options
|
30
|
+
{:id => self.id, :survey_id => self.survey_id, :campaign_id => self.campaign_id}
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end; end
|
@@ -2,20 +2,21 @@ module SurveyGizmo; module API
|
|
2
2
|
# @see SurveyGizmo::Resource::ClassMethods
|
3
3
|
class Option
|
4
4
|
include SurveyGizmo::Resource
|
5
|
-
|
5
|
+
|
6
6
|
# @macro [attach] virtus_attribute
|
7
7
|
# @return [$2]
|
8
8
|
attribute :id, Integer
|
9
|
-
attribute :title, String
|
10
|
-
attribute :value, String
|
11
9
|
attribute :survey_id, Integer
|
12
10
|
attribute :page_id, Integer
|
13
11
|
attribute :question_id, Integer
|
14
|
-
|
12
|
+
attribute :title, String
|
13
|
+
attribute :value, String
|
14
|
+
attribute :properties, Hash
|
15
|
+
|
15
16
|
# routing
|
16
17
|
route '/survey/:survey_id/surveypage/:page_id/surveyquestion/:question_id/surveyoption', :via => :create
|
17
18
|
route '/survey/:survey_id/surveypage/:page_id/surveyquestion/:question_id/surveyoption/:id', :via => [:get, :update, :delete]
|
18
|
-
|
19
|
+
|
19
20
|
# survey gizmo sends a hash back for :title
|
20
21
|
# @private
|
21
22
|
def title_with_multilingual=(val)
|
@@ -23,11 +24,11 @@ module SurveyGizmo; module API
|
|
23
24
|
end
|
24
25
|
|
25
26
|
alias_method_chain :title=, :multilingual
|
26
|
-
|
27
|
+
|
27
28
|
# @see SurveyGizmo::Resource#to_param_options
|
28
29
|
def to_param_options
|
29
30
|
{:id => self.id, :survey_id => self.survey_id, :page_id => self.page_id, :question_id => self.question_id}
|
30
31
|
end
|
31
|
-
|
32
|
+
|
32
33
|
end
|
33
34
|
end; end
|
@@ -2,7 +2,7 @@ module SurveyGizmo; module API
|
|
2
2
|
# @see SurveyGizmo::Resource::ClassMethods
|
3
3
|
class Page
|
4
4
|
include SurveyGizmo::Resource
|
5
|
-
|
5
|
+
|
6
6
|
# @macro [attach] virtus_attribute
|
7
7
|
# @return [$2]
|
8
8
|
attribute :id, Integer
|
@@ -11,15 +11,15 @@ module SurveyGizmo; module API
|
|
11
11
|
attribute :properties, Hash
|
12
12
|
attribute :after, Integer
|
13
13
|
attribute :survey_id, Integer
|
14
|
-
|
15
|
-
|
14
|
+
|
15
|
+
|
16
16
|
# routing
|
17
17
|
route '/survey/:survey_id/surveypage', :via => :create
|
18
18
|
route '/survey/:survey_id/surveypage/:id', :via => [:get, :update, :delete]
|
19
|
-
|
19
|
+
|
20
20
|
# @macro collection
|
21
21
|
collection :questions
|
22
|
-
|
22
|
+
|
23
23
|
# survey gizmo sends a hash back for :title
|
24
24
|
# @private
|
25
25
|
def title_with_multilingual=(val)
|
@@ -27,8 +27,8 @@ module SurveyGizmo; module API
|
|
27
27
|
end
|
28
28
|
|
29
29
|
alias_method_chain :title=, :multilingual
|
30
|
-
|
31
|
-
# @see SurveyGizmo::Resource#to_param_options
|
30
|
+
|
31
|
+
# @see SurveyGizmo::Resource#to_param_options
|
32
32
|
def to_param_options
|
33
33
|
{:id => self.id, :survey_id => self.survey_id}
|
34
34
|
end
|
@@ -2,27 +2,28 @@ module SurveyGizmo; module API
|
|
2
2
|
# @see SurveyGizmo::Resource::ClassMethods
|
3
3
|
class Question
|
4
4
|
include SurveyGizmo::Resource
|
5
|
-
|
5
|
+
|
6
6
|
# @macro [attach] virtus_attribute
|
7
7
|
# @return [$2]
|
8
8
|
attribute :id, Integer
|
9
9
|
attribute :title, String
|
10
10
|
attribute :type, String
|
11
11
|
attribute :description, String
|
12
|
+
attribute :shortname, String
|
12
13
|
attribute :properties, Hash
|
13
14
|
attribute :after, Integer
|
14
15
|
attribute :survey_id, Integer
|
15
16
|
attribute :page_id, Integer, :default => 1
|
16
|
-
|
17
|
+
|
17
18
|
alias_attribute :_subtype, :type
|
18
|
-
|
19
|
+
|
19
20
|
route '/survey/:survey_id/surveyquestion/:id', :via => :get
|
20
21
|
route '/survey/:survey_id/surveypage/:page_id/surveyquestion', :via => :create
|
21
22
|
route '/survey/:survey_id/surveypage/:page_id/surveyquestion/:id', :via => [:update, :delete]
|
22
|
-
|
23
|
+
|
23
24
|
# @macro collection
|
24
25
|
collection :options
|
25
|
-
|
26
|
+
|
26
27
|
# survey gizmo sends a hash back for :title
|
27
28
|
# @private
|
28
29
|
def title_with_multilingual=(val)
|
@@ -30,8 +31,8 @@ module SurveyGizmo; module API
|
|
30
31
|
end
|
31
32
|
|
32
33
|
alias_method_chain :title=, :multilingual
|
33
|
-
|
34
|
-
# @see SurveyGizmo::Resource#to_param_options
|
34
|
+
|
35
|
+
# @see SurveyGizmo::Resource#to_param_options
|
35
36
|
def to_param_options
|
36
37
|
{:id => self.id, :survey_id => self.survey_id, :page_id => self.page_id}
|
37
38
|
end
|
@@ -2,22 +2,31 @@ module SurveyGizmo; module API
|
|
2
2
|
# @see SurveyGizmo::Resource::ClassMethods
|
3
3
|
class Response
|
4
4
|
include SurveyGizmo::Resource
|
5
|
-
|
5
|
+
|
6
6
|
# @macro [attach] virtus_attribute
|
7
7
|
# @return [$2] the attribute +$1+ as a $2
|
8
|
-
attribute :id,
|
9
|
-
attribute :
|
10
|
-
attribute :
|
11
|
-
attribute :
|
12
|
-
|
8
|
+
attribute :id, Integer
|
9
|
+
attribute :survey_id, Integer
|
10
|
+
attribute :contact_id, Integer
|
11
|
+
attribute :data, String
|
12
|
+
attribute :status, String
|
13
|
+
attribute :date_submitted, DateTime
|
14
|
+
attribute :is_test_data, Boolean
|
15
|
+
attribute :sResponseComment, String
|
16
|
+
attribute :variable, Hash # READ-ONLY
|
17
|
+
attribute :meta, Hash # READ-ONLY
|
18
|
+
attribute :shown, Hash # READ-ONLY
|
19
|
+
attribute :url, Hash # READ-ONLY
|
20
|
+
attribute :answers, Hash # READ-ONLY
|
21
|
+
|
13
22
|
# routing
|
14
23
|
route '/survey/:survey_id/surveyresponse', :via => :create
|
15
24
|
route '/survey/:survey_id/surveyresponse/:id', :via => [:get, :update, :delete]
|
16
|
-
|
17
|
-
# @see SurveyGizmo::Resource#to_param_options
|
25
|
+
|
26
|
+
# @see SurveyGizmo::Resource#to_param_options
|
18
27
|
def to_param_options
|
19
28
|
{:id => self.id, :survey_id => self.survey_id}
|
20
29
|
end
|
21
|
-
|
30
|
+
|
22
31
|
end
|
23
32
|
end; end
|
@@ -2,23 +2,33 @@ module SurveyGizmo; module API
|
|
2
2
|
# @see SurveyGizmo::Resource::ClassMethods
|
3
3
|
class Survey
|
4
4
|
include SurveyGizmo::Resource
|
5
|
-
|
5
|
+
|
6
6
|
# @macro [attach] virtus_attribute
|
7
7
|
# @return [$2]
|
8
|
-
attribute :id,
|
9
|
-
attribute :
|
10
|
-
attribute :
|
11
|
-
attribute :
|
12
|
-
attribute :
|
13
|
-
attribute :
|
14
|
-
|
8
|
+
attribute :id, Integer
|
9
|
+
attribute :team, Integer
|
10
|
+
attribute :_type, String
|
11
|
+
attribute :_subtype, String
|
12
|
+
attribute :status, String
|
13
|
+
attribute :forward_only, Boolean
|
14
|
+
attribute :title, String
|
15
|
+
attribute :internal_title, String
|
16
|
+
attribute :title_ml, Hash
|
17
|
+
attribute :links, Hash
|
18
|
+
attribute :theme, Integer
|
19
|
+
attribute :blockby, String
|
20
|
+
attribute :languages, Array
|
21
|
+
attribute :statistics, Array
|
22
|
+
attribute :created_on, DateTime
|
23
|
+
attribute :modified_on, DateTime
|
24
|
+
|
15
25
|
route '/survey/:id', :via => [:get, :update, :delete]
|
16
26
|
route '/survey', :via => :create
|
17
|
-
|
27
|
+
|
18
28
|
# @macro collection
|
19
29
|
collection :pages
|
20
|
-
|
21
|
-
# @see SurveyGizmo::Resource#to_param_options
|
30
|
+
|
31
|
+
# @see SurveyGizmo::Resource#to_param_options
|
22
32
|
def to_param_options
|
23
33
|
{:id => self.id}
|
24
34
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module SurveyGizmo; module API
|
2
|
+
# @see SurveyGizmo::Resource::ClassMethods
|
3
|
+
class SurveyCampaign
|
4
|
+
include SurveyGizmo::Resource
|
5
|
+
|
6
|
+
# @macro [attach] virtus_attribute
|
7
|
+
# @return [$2]
|
8
|
+
attribute :id, Integer
|
9
|
+
attribute :name, String
|
10
|
+
attribute :_type, String
|
11
|
+
attribute :_subtype, String
|
12
|
+
attribute :__subtype, String
|
13
|
+
attribute :status, String
|
14
|
+
attribute :uri, String
|
15
|
+
attribute :SSL, Boolean
|
16
|
+
attribute :slug, String
|
17
|
+
attribute :language, String
|
18
|
+
attribute :close_message, String
|
19
|
+
attribute :limit_responses, String
|
20
|
+
attribute :tokenvariables, Array
|
21
|
+
attribute :survey_id, Integer
|
22
|
+
attribute :datecreated, DateTime
|
23
|
+
attribute :datemodified, DateTime
|
24
|
+
|
25
|
+
route '/survey/:survey_id/surveycampaign/:id', :via => [:get, :update, :delete]
|
26
|
+
route '/survey/:survey_id/surveycampaign', :via => :create
|
27
|
+
|
28
|
+
# @see SurveyGizmo::Resource#to_param_options
|
29
|
+
def to_param_options
|
30
|
+
{:id => self.id, :survey_id => self.survey_id}
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end; end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module SurveyGizmo
|
2
2
|
class Collection
|
3
3
|
include Enumerable
|
4
|
-
|
4
|
+
|
5
5
|
private
|
6
|
-
# @param [Class] resource
|
6
|
+
# @param [Class] resource
|
7
7
|
# @param [Symbol] name
|
8
8
|
# @param [Array] values in hashes
|
9
9
|
def initialize(resource, name, values)
|
@@ -12,14 +12,14 @@ module SurveyGizmo
|
|
12
12
|
@loaded = false
|
13
13
|
@options = resource.collections[name]
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
public
|
17
|
-
|
17
|
+
|
18
18
|
# @private
|
19
19
|
def length
|
20
20
|
@array.length
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
# @private
|
24
24
|
def each
|
25
25
|
lazy_load
|
@@ -29,13 +29,13 @@ module SurveyGizmo
|
|
29
29
|
@collection.each
|
30
30
|
end
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
# @private
|
34
34
|
def method_missing(meth, *args, &blk)
|
35
35
|
lazy_load
|
36
36
|
@collection.send(meth, *args, &blk)
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
# @private
|
40
40
|
def model
|
41
41
|
return @model if defined?(@model)
|
@@ -43,31 +43,31 @@ module SurveyGizmo
|
|
43
43
|
name_string = options[:target].is_a?(Symbol) ? ActiveSupport::Inflector.classify(options[:target]) : options[:target]
|
44
44
|
@model = name_string[/::/] ? Object.const_get?(name_string) : Resource.descendants.detect{ |d| ActiveSupport::Inflector.demodulize(d.name) == name_string }
|
45
45
|
raise NameError, "#{name_string} is not a descendant of SurveyGizmo::Resource" unless @model
|
46
|
-
@model
|
46
|
+
@model
|
47
47
|
end
|
48
|
-
|
49
|
-
|
48
|
+
|
49
|
+
|
50
50
|
protected
|
51
51
|
attr_accessor :options
|
52
|
-
|
52
|
+
|
53
53
|
def lazy_load
|
54
54
|
return if loaded?
|
55
55
|
@collection = @array.map{|hash| load_object(hash) }
|
56
56
|
mark_loaded
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
def load_object(obj_or_attributes)
|
60
60
|
return obj_or_attributes if loaded?
|
61
61
|
obj_or_attributes.is_a?(Hash) ? model.load(obj_or_attributes) : obj_or_attributes
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
def mark_loaded
|
65
65
|
@loaded = true
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
def loaded?
|
69
69
|
@loaded
|
70
70
|
end
|
71
|
-
|
71
|
+
|
72
72
|
end
|
73
73
|
end
|
@@ -1,30 +1,42 @@
|
|
1
1
|
require "set"
|
2
|
+
require "addressable/uri"
|
2
3
|
|
3
4
|
module SurveyGizmo
|
4
5
|
module Resource
|
5
6
|
extend ActiveSupport::Concern
|
6
|
-
|
7
|
+
|
7
8
|
included do
|
8
9
|
include Virtus
|
9
10
|
instance_variable_set('@paths', {})
|
10
11
|
instance_variable_set('@collections', {})
|
11
12
|
SurveyGizmo::Resource.descendants << self
|
12
13
|
end
|
13
|
-
|
14
|
+
|
14
15
|
# @return [Set] Every class that includes SurveyGizmo::Resource
|
15
16
|
def self.descendants
|
16
17
|
@descendants ||= Set.new
|
17
18
|
end
|
18
|
-
|
19
|
+
|
19
20
|
# These are methods that every API resource has to access resources
|
20
21
|
# in Survey Gizmo
|
21
22
|
module ClassMethods
|
22
|
-
|
23
|
+
|
24
|
+
# Convert a [Hash] of filters into a query string
|
25
|
+
# @param [Hash] filters
|
26
|
+
# @return [String]
|
27
|
+
def convert_filters_into_query_string(filters = nil)
|
28
|
+
"" unless filters && filters.size > 0
|
29
|
+
uri = Addressable::URI.new
|
30
|
+
uri.query_values = filters
|
31
|
+
"?#{uri.query}"
|
32
|
+
end
|
33
|
+
|
23
34
|
# Get a list of resources
|
24
35
|
# @param [Hash] conditions
|
36
|
+
# @param [Hash] filters
|
25
37
|
# @return [SurveyGizmo::Collection, Array]
|
26
|
-
def all(conditions = {})
|
27
|
-
response = Response.new SurveyGizmo.get(handle_route(:create, conditions))
|
38
|
+
def all(conditions = {}, filters = nil)
|
39
|
+
response = Response.new SurveyGizmo.get(handle_route(:create, conditions) + convert_filters_into_query_string(filters))
|
28
40
|
if response.ok?
|
29
41
|
_collection = SurveyGizmo::Collection.new(self, nil, response.data)
|
30
42
|
_collection.send(:options=, {:target => self, :parent => self})
|
@@ -33,15 +45,16 @@ module SurveyGizmo
|
|
33
45
|
[]
|
34
46
|
end
|
35
47
|
end
|
36
|
-
|
48
|
+
|
37
49
|
# Get the first resource
|
38
50
|
# @param [Hash] conditions
|
51
|
+
# @param [Hash] filters
|
39
52
|
# @return [Object, nil]
|
40
|
-
def first(conditions)
|
41
|
-
response = Response.new SurveyGizmo.get(handle_route(:get, conditions))
|
53
|
+
def first(conditions = {}, filters = nil)
|
54
|
+
response = Response.new SurveyGizmo.get(handle_route(:get, conditions) + convert_filters_into_query_string(filters))
|
42
55
|
response.ok? ? load(conditions.merge(response.data)) : nil
|
43
56
|
end
|
44
|
-
|
57
|
+
|
45
58
|
# Create a new resource
|
46
59
|
# @param [Hash] attributes
|
47
60
|
# @return [Resource]
|
@@ -51,7 +64,7 @@ module SurveyGizmo
|
|
51
64
|
resource.__send__(:_create)
|
52
65
|
resource
|
53
66
|
end
|
54
|
-
|
67
|
+
|
55
68
|
# Deleted the Resource from Survey Gizmo
|
56
69
|
# @param [Hash] conditions
|
57
70
|
# @return [Boolean]
|
@@ -59,11 +72,11 @@ module SurveyGizmo
|
|
59
72
|
response = Response.new SurveyGizmo.delete(handle_route(:delete, conditions))
|
60
73
|
response.ok?
|
61
74
|
end
|
62
|
-
|
75
|
+
|
63
76
|
# Define the path where a resource is located
|
64
|
-
# @param [String] path
|
77
|
+
# @param [String] path
|
65
78
|
# the path in Survey Gizmo for the resource
|
66
|
-
# @param [Hash] options
|
79
|
+
# @param [Hash] options
|
67
80
|
# @option options [Array] :via
|
68
81
|
# which is `:get`, `:create`, `:update`, `:delete`, or `:any`
|
69
82
|
# @scope class
|
@@ -73,19 +86,19 @@ module SurveyGizmo
|
|
73
86
|
methods.is_a?(Array) ? methods.each{|m| @paths[m] = path } : (@paths[methods] = path)
|
74
87
|
nil
|
75
88
|
end
|
76
|
-
|
89
|
+
|
77
90
|
# @api private
|
78
91
|
def load(attributes = {})
|
79
92
|
resource = new(attributes)
|
80
93
|
resource.__send__(:clean!)
|
81
94
|
resource
|
82
95
|
end
|
83
|
-
|
96
|
+
|
84
97
|
# Defines a new collection. These are child objects of the resource.
|
85
98
|
# @macro [new] collection
|
86
99
|
# @param [Symbol] resource_name the name of the collection, pluralized
|
87
100
|
# @param [Class] model and optional class name if the class name does not match the resource_name
|
88
|
-
# @return [Collection]
|
101
|
+
# @return [Collection]
|
89
102
|
# the $1 collection
|
90
103
|
# @scope instance
|
91
104
|
def collection(resource_name, model = nil)
|
@@ -94,29 +107,29 @@ module SurveyGizmo
|
|
94
107
|
def #{resource_name}
|
95
108
|
@#{resource_name} ||= []
|
96
109
|
end
|
97
|
-
|
110
|
+
|
98
111
|
def #{resource_name}=(array)
|
99
112
|
@#{resource_name} = SurveyGizmo::Collection.new(#{self}, :#{resource_name}, array)
|
100
113
|
end
|
101
114
|
EOS
|
102
115
|
end
|
103
|
-
|
116
|
+
|
104
117
|
# @api private
|
105
118
|
def collections
|
106
119
|
@collections.dup.freeze
|
107
120
|
end
|
108
|
-
|
121
|
+
|
109
122
|
# @api private
|
110
123
|
def handle_route(key, *interp)
|
111
124
|
path = @paths[key]
|
112
125
|
raise "No routes defined for `#{key}` in #{self.name}" unless path
|
113
126
|
options = interp.last.is_a?(Hash) ? interp.pop : path.scan(/:(\w+)/).inject({}){|hash, k| hash.merge(k.to_sym => interp.shift) }
|
114
|
-
path.gsub(/:(\w+)/) do |m|
|
127
|
+
path.gsub(/:(\w+)/) do |m|
|
115
128
|
options[$1.to_sym].tap{ |result| raise(SurveyGizmo::URLError, "Missing parameters in request: `#{m}`") unless result }
|
116
129
|
end
|
117
130
|
end
|
118
131
|
end
|
119
|
-
|
132
|
+
|
120
133
|
# Updates attributes and saves this Resource instance
|
121
134
|
#
|
122
135
|
# @param [Hash] attributes
|
@@ -128,7 +141,7 @@ module SurveyGizmo
|
|
128
141
|
self.attributes = attributes
|
129
142
|
self.save
|
130
143
|
end
|
131
|
-
|
144
|
+
|
132
145
|
# Save the instance to Survey Gizmo
|
133
146
|
#
|
134
147
|
# @return [Boolean]
|
@@ -142,21 +155,21 @@ module SurveyGizmo
|
|
142
155
|
end
|
143
156
|
end
|
144
157
|
end
|
145
|
-
|
158
|
+
|
146
159
|
# fetch resource from SurveyGizmo and reload the attributes
|
147
160
|
# @return [self, false]
|
148
161
|
# Returns the object, if saved. Otherwise returns false.
|
149
162
|
def reload
|
150
163
|
handle_response SurveyGizmo.get(handle_route(:get)) do
|
151
|
-
if _response.ok?
|
164
|
+
if _response.ok?
|
152
165
|
self.attributes = _response.data
|
153
166
|
clean!
|
154
167
|
else
|
155
168
|
false
|
156
169
|
end
|
157
|
-
end
|
170
|
+
end
|
158
171
|
end
|
159
|
-
|
172
|
+
|
160
173
|
# Deleted the Resource from Survey Gizmo
|
161
174
|
# @return [Boolean]
|
162
175
|
def destroy
|
@@ -165,13 +178,13 @@ module SurveyGizmo
|
|
165
178
|
_response.ok? ? destroyed! : false
|
166
179
|
end
|
167
180
|
end
|
168
|
-
|
181
|
+
|
169
182
|
# The state of the current Resource
|
170
183
|
# @api private
|
171
184
|
def new?
|
172
185
|
@_state.nil?
|
173
186
|
end
|
174
|
-
|
187
|
+
|
175
188
|
# @todo This seemed like a good way to prevent accidently trying to perform an action
|
176
189
|
# on a record at a point when it would fail. Not sure if it's really necessary though.
|
177
190
|
[:clean, # stored and not dirty
|
@@ -184,84 +197,135 @@ module SurveyGizmo
|
|
184
197
|
@_state = state
|
185
198
|
true
|
186
199
|
end
|
187
|
-
|
200
|
+
|
188
201
|
# Inquire about the method state if $1
|
189
202
|
define_method("#{state}?") do
|
190
203
|
@_state == state
|
191
204
|
end
|
192
|
-
|
205
|
+
|
193
206
|
private "#{state}!"
|
194
207
|
end
|
195
|
-
|
208
|
+
|
196
209
|
# Sets the hash that will be used to interpolate values in routes. It needs to be defined per model.
|
197
210
|
# @return [Hash] a hash of the values needed in routing
|
198
211
|
def to_param_options
|
199
212
|
raise "Define #to_param_options in #{self.class.name}"
|
200
213
|
end
|
201
|
-
|
214
|
+
|
202
215
|
# Any errors returned by Survey Gizmo
|
203
216
|
# @return [Array]
|
204
217
|
def errors
|
205
218
|
@errors ||= []
|
206
219
|
end
|
207
220
|
|
221
|
+
# @return [Hash] The raw JSON returned by Survey Gizmo
|
222
|
+
def raw_response
|
223
|
+
_response.response if _response
|
224
|
+
end
|
225
|
+
|
208
226
|
# @visibility private
|
209
227
|
def inspect
|
210
228
|
attrs = self.class.attributes.map do |attrib|
|
211
229
|
value = attrib.get!(self).inspect
|
212
230
|
|
213
|
-
"#{attrib.instance_variable_name}=#{value}"
|
231
|
+
"#{attrib.instance_variable_name}=#{value}" if attrib.respond_to?(:instance_variable_name)
|
214
232
|
end
|
215
233
|
|
216
234
|
"#<#{self.class.name}:#{self.object_id} #{attrs.join(' ')}>"
|
217
235
|
end
|
218
|
-
|
236
|
+
|
219
237
|
# This class normalizes the response returned by Survey Gizmo
|
220
238
|
class Response
|
221
239
|
def ok?
|
222
240
|
@response['result_ok']
|
223
241
|
end
|
224
|
-
|
242
|
+
|
225
243
|
# The parsed JSON data of the response
|
226
244
|
def data
|
227
245
|
@_data ||= (@response['data'] || {})
|
228
246
|
end
|
229
|
-
|
247
|
+
|
230
248
|
# The error message if there is one
|
231
249
|
def message
|
232
250
|
@_message ||= @response['message']
|
233
251
|
end
|
234
252
|
|
253
|
+
attr_reader :response
|
254
|
+
|
235
255
|
private
|
256
|
+
def cleanup_attribute_name(attr)
|
257
|
+
attr.downcase.gsub(/[^[:alnum:]]+/,'_').gsub(/(url|variable|standard|shown)/,'').gsub(/_+/,'_').gsub(/^_/,'').gsub(/_$/,'')
|
258
|
+
end
|
259
|
+
|
260
|
+
def find_attribute_parent(attr)
|
261
|
+
case attr.downcase
|
262
|
+
when /url/
|
263
|
+
"url"
|
264
|
+
when /variable.*standard/
|
265
|
+
"meta"
|
266
|
+
when /variable.*shown/
|
267
|
+
"shown"
|
268
|
+
when /variable/
|
269
|
+
"variable"
|
270
|
+
when /question/
|
271
|
+
"answers"
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
236
275
|
def initialize(response)
|
237
276
|
@response = response.parsed_response
|
277
|
+
return unless @response['data'].class == Hash
|
278
|
+
@_data = @response['data']
|
279
|
+
|
280
|
+
# Handle really crappy [] notation in SG API, so far just in SurveyResponse
|
281
|
+
@_data.keys.grep(/^\[/).each do |key|
|
282
|
+
next unless @_data[key].length > 0
|
283
|
+
|
284
|
+
parent = find_attribute_parent(key)
|
285
|
+
@_data[parent] = {} unless @_data[parent]
|
286
|
+
|
287
|
+
case key.downcase
|
288
|
+
when /(url|variable.*standard)/
|
289
|
+
@_data[parent][cleanup_attribute_name(key).to_sym] = @_data[key]
|
290
|
+
when /variable.*shown/
|
291
|
+
@_data[parent][cleanup_attribute_name(key).to_i] = @_data[key].include?("1")
|
292
|
+
when /variable/
|
293
|
+
@_data[parent][cleanup_attribute_name(key).to_i] = @_data[key].to_i
|
294
|
+
when /question/
|
295
|
+
@_data[parent][key] = @_data[key]
|
296
|
+
end
|
297
|
+
|
298
|
+
@_data.delete(key)
|
299
|
+
end
|
238
300
|
end
|
239
301
|
end
|
240
302
|
|
241
|
-
protected
|
242
303
|
|
304
|
+
protected
|
305
|
+
|
243
306
|
def attributes_without_blanks
|
244
307
|
self.attributes.reject{|k,v| v.blank? }
|
245
308
|
end
|
246
|
-
|
309
|
+
|
247
310
|
private
|
311
|
+
# The response object from SurveyGizmo. Useful for viewing the raw data returned
|
248
312
|
attr_reader :_response
|
249
|
-
|
313
|
+
|
250
314
|
def set_response(http)
|
251
315
|
@_response = Response.new(http)
|
252
316
|
end
|
253
|
-
|
317
|
+
|
254
318
|
def handle_route(key)
|
255
319
|
self.class.handle_route(key, to_param_options)
|
256
320
|
end
|
257
|
-
|
321
|
+
|
258
322
|
def handle_response(resp, &block)
|
259
323
|
set_response(resp)
|
260
324
|
(self.errors << _response.message) unless _response.ok?
|
261
325
|
self.errors.clear if !self.errors.empty? && _response.ok?
|
262
326
|
instance_eval(&block)
|
263
327
|
end
|
264
|
-
|
328
|
+
|
265
329
|
def _create(attributes = {})
|
266
330
|
http = SurveyGizmo.put(handle_route(:create), :query => self.attributes_without_blanks)
|
267
331
|
handle_response http do
|
@@ -270,9 +334,9 @@ module SurveyGizmo
|
|
270
334
|
saved!
|
271
335
|
else
|
272
336
|
false
|
273
|
-
end
|
337
|
+
end
|
274
338
|
end
|
275
339
|
end
|
276
|
-
|
340
|
+
|
277
341
|
end
|
278
342
|
end
|
@@ -10,24 +10,28 @@ require "survey_gizmo/resource"
|
|
10
10
|
require "survey_gizmo/collection"
|
11
11
|
|
12
12
|
require "survey_gizmo/api/survey"
|
13
|
+
require "survey_gizmo/api/survey_campaign"
|
13
14
|
require "survey_gizmo/api/question"
|
14
15
|
require "survey_gizmo/api/option"
|
15
16
|
require "survey_gizmo/api/page"
|
17
|
+
require "survey_gizmo/api/contact"
|
16
18
|
require "survey_gizmo/api/response"
|
19
|
+
require "survey_gizmo/api/email_message"
|
17
20
|
|
18
21
|
module SurveyGizmo
|
19
22
|
include HTTParty
|
20
|
-
|
23
|
+
debug_output $stderr if ENV['GIZMO_DEBUG']
|
24
|
+
|
21
25
|
format :json
|
22
|
-
|
26
|
+
|
23
27
|
URLError = Class.new(RuntimeError)
|
24
|
-
|
28
|
+
|
25
29
|
# The base uri for this version of the API is $1
|
26
|
-
base_uri 'https://restapi.surveygizmo.com/
|
27
|
-
|
30
|
+
base_uri 'https://restapi.surveygizmo.com/v3'
|
31
|
+
|
28
32
|
@@options = {}
|
29
33
|
mattr_accessor :options
|
30
|
-
|
34
|
+
|
31
35
|
# Setup the account credentials to access the API
|
32
36
|
# @param [Hash] opts
|
33
37
|
# @option opts [#to_s] :user
|
@@ -38,5 +42,5 @@ module SurveyGizmo
|
|
38
42
|
self.options = opts
|
39
43
|
default_params({"user:pass" => opts.values_at(:user, :password).join(':')})
|
40
44
|
end
|
41
|
-
|
45
|
+
|
42
46
|
end
|
data/spec/resource_spec.rb
CHANGED
@@ -47,7 +47,7 @@ describe "Survey Gizmo Resource" do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
describe SurveyGizmo::API::Survey do
|
50
|
-
let(:create_attributes){ {:title => 'Spec', :
|
50
|
+
let(:create_attributes){ {:title => 'Spec', :_type => 'survey', :status => 'In Design'} }
|
51
51
|
let(:get_attributes) { create_attributes.merge(:id => 1234) }
|
52
52
|
let(:update_attributes){ {:title => 'Updated'} }
|
53
53
|
let(:first_params){ {:id => 1234} }
|
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe "SurveyGizmo" do
|
4
4
|
it "should have a base uri" do
|
5
|
-
SurveyGizmo.base_uri.should == 'https://restapi.surveygizmo.com/
|
5
|
+
SurveyGizmo.base_uri.should == 'https://restapi.surveygizmo.com/v3'
|
6
6
|
end
|
7
7
|
|
8
8
|
it "should allow basic authentication configuration" do
|
@@ -89,17 +89,18 @@ describe "SurveyGizmo" do
|
|
89
89
|
end
|
90
90
|
|
91
91
|
it "can handle nested collections" do
|
92
|
+
pending("Needs to be changed to work with suite. Right now it only passes in isolation.")
|
92
93
|
SurveyGizmoSpec::ResourceTest.collection :generic_resources
|
93
|
-
@
|
94
|
+
@generic_resource_list = [
|
94
95
|
{:id => 1, :title => 'Generic Test 5'},
|
95
96
|
{:id => 2, :title => 'Generic Test 6'},
|
96
97
|
{:id => 3, :title => 'Generic Test 7'}
|
97
98
|
]
|
98
99
|
|
99
|
-
@array << {:id => 99, :generic_resources => @
|
100
|
+
@array << {:id => 99, :generic_resources => @generic_resource_list}
|
100
101
|
obj = described_class.new(:id => 1, :resources => @array)
|
101
102
|
obj.resources.first.should be_instance_of(SurveyGizmoSpec::ResourceTest)
|
102
|
-
obj.resources.
|
103
|
+
obj.resources.detect{|r| r.id == 99 }.generic_resources.first.should be_instance_of(SurveyGizmoSpec::GenericResource)
|
103
104
|
end
|
104
105
|
end
|
105
106
|
end
|
metadata
CHANGED
@@ -1,30 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: survey-gizmo-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Kabari Hendrick
|
9
|
+
- Chris Horn
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2012-
|
13
|
+
date: 2012-10-09 00:00:00.000000000Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: activesupport
|
16
|
-
requirement: &
|
17
|
+
requirement: &70327435758280 !ruby/object:Gem::Requirement
|
17
18
|
none: false
|
18
19
|
requirements:
|
19
|
-
- -
|
20
|
+
- - ~>
|
20
21
|
- !ruby/object:Gem::Version
|
21
|
-
version: 3.0
|
22
|
+
version: '3.0'
|
22
23
|
type: :runtime
|
23
24
|
prerelease: false
|
24
|
-
version_requirements: *
|
25
|
+
version_requirements: *70327435758280
|
25
26
|
- !ruby/object:Gem::Dependency
|
26
27
|
name: i18n
|
27
|
-
requirement: &
|
28
|
+
requirement: &70327435756840 !ruby/object:Gem::Requirement
|
28
29
|
none: false
|
29
30
|
requirements:
|
30
31
|
- - ! '>='
|
@@ -32,21 +33,21 @@ dependencies:
|
|
32
33
|
version: '0'
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements: *
|
36
|
+
version_requirements: *70327435756840
|
36
37
|
- !ruby/object:Gem::Dependency
|
37
38
|
name: virtus
|
38
|
-
requirement: &
|
39
|
+
requirement: &70327435748540 !ruby/object:Gem::Requirement
|
39
40
|
none: false
|
40
41
|
requirements:
|
41
|
-
- -
|
42
|
+
- - ! '>='
|
42
43
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0
|
44
|
+
version: '0'
|
44
45
|
type: :runtime
|
45
46
|
prerelease: false
|
46
|
-
version_requirements: *
|
47
|
+
version_requirements: *70327435748540
|
47
48
|
- !ruby/object:Gem::Dependency
|
48
49
|
name: httparty
|
49
|
-
requirement: &
|
50
|
+
requirement: &70327435746040 !ruby/object:Gem::Requirement
|
50
51
|
none: false
|
51
52
|
requirements:
|
52
53
|
- - ! '>='
|
@@ -54,10 +55,21 @@ dependencies:
|
|
54
55
|
version: '0'
|
55
56
|
type: :runtime
|
56
57
|
prerelease: false
|
57
|
-
version_requirements: *
|
58
|
+
version_requirements: *70327435746040
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: addressable
|
61
|
+
requirement: &70327435744300 !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
type: :runtime
|
68
|
+
prerelease: false
|
69
|
+
version_requirements: *70327435744300
|
58
70
|
- !ruby/object:Gem::Dependency
|
59
71
|
name: bluecloth
|
60
|
-
requirement: &
|
72
|
+
requirement: &70327435742600 !ruby/object:Gem::Requirement
|
61
73
|
none: false
|
62
74
|
requirements:
|
63
75
|
- - ! '>='
|
@@ -65,10 +77,10 @@ dependencies:
|
|
65
77
|
version: '0'
|
66
78
|
type: :development
|
67
79
|
prerelease: false
|
68
|
-
version_requirements: *
|
80
|
+
version_requirements: *70327435742600
|
69
81
|
- !ruby/object:Gem::Dependency
|
70
82
|
name: yard
|
71
|
-
requirement: &
|
83
|
+
requirement: &70327435741380 !ruby/object:Gem::Requirement
|
72
84
|
none: false
|
73
85
|
requirements:
|
74
86
|
- - ~>
|
@@ -76,10 +88,10 @@ dependencies:
|
|
76
88
|
version: 0.7.0
|
77
89
|
type: :development
|
78
90
|
prerelease: false
|
79
|
-
version_requirements: *
|
91
|
+
version_requirements: *70327435741380
|
80
92
|
- !ruby/object:Gem::Dependency
|
81
93
|
name: bundler
|
82
|
-
requirement: &
|
94
|
+
requirement: &70327435729640 !ruby/object:Gem::Requirement
|
83
95
|
none: false
|
84
96
|
requirements:
|
85
97
|
- - ~>
|
@@ -87,10 +99,10 @@ dependencies:
|
|
87
99
|
version: '1.0'
|
88
100
|
type: :development
|
89
101
|
prerelease: false
|
90
|
-
version_requirements: *
|
102
|
+
version_requirements: *70327435729640
|
91
103
|
- !ruby/object:Gem::Dependency
|
92
104
|
name: jeweler
|
93
|
-
requirement: &
|
105
|
+
requirement: &70327435724260 !ruby/object:Gem::Requirement
|
94
106
|
none: false
|
95
107
|
requirements:
|
96
108
|
- - ~>
|
@@ -98,8 +110,19 @@ dependencies:
|
|
98
110
|
version: 1.6.4
|
99
111
|
type: :development
|
100
112
|
prerelease: false
|
101
|
-
version_requirements: *
|
102
|
-
|
113
|
+
version_requirements: *70327435724260
|
114
|
+
- !ruby/object:Gem::Dependency
|
115
|
+
name: awesome_print
|
116
|
+
requirement: &70327435712160 !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
type: :development
|
123
|
+
prerelease: false
|
124
|
+
version_requirements: *70327435712160
|
125
|
+
description: gem to use the SurveyGizmo.com REST API, v3+
|
103
126
|
email: self@ripthejacker.com
|
104
127
|
executables: []
|
105
128
|
extensions: []
|
@@ -114,11 +137,14 @@ files:
|
|
114
137
|
- Rakefile
|
115
138
|
- VERSION
|
116
139
|
- lib/survey-gizmo-ruby.rb
|
140
|
+
- lib/survey_gizmo/api/contact.rb
|
141
|
+
- lib/survey_gizmo/api/email_message.rb
|
117
142
|
- lib/survey_gizmo/api/option.rb
|
118
143
|
- lib/survey_gizmo/api/page.rb
|
119
144
|
- lib/survey_gizmo/api/question.rb
|
120
145
|
- lib/survey_gizmo/api/response.rb
|
121
146
|
- lib/survey_gizmo/api/survey.rb
|
147
|
+
- lib/survey_gizmo/api/survey_campaign.rb
|
122
148
|
- lib/survey_gizmo/collection.rb
|
123
149
|
- lib/survey_gizmo/resource.rb
|
124
150
|
- lib/survey_gizmo/survey_gizmo.rb
|
@@ -148,7 +174,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
148
174
|
version: '0'
|
149
175
|
segments:
|
150
176
|
- 0
|
151
|
-
hash:
|
177
|
+
hash: 1680038984146331974
|
152
178
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
179
|
none: false
|
154
180
|
requirements:
|
@@ -157,8 +183,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
183
|
version: '0'
|
158
184
|
requirements: []
|
159
185
|
rubyforge_project:
|
160
|
-
rubygems_version: 1.8.
|
186
|
+
rubygems_version: 1.8.8
|
161
187
|
signing_key:
|
162
188
|
specification_version: 3
|
163
|
-
summary: gem to
|
189
|
+
summary: gem to use the Survey Gizmo REST API
|
164
190
|
test_files: []
|