survey-gizmo-ruby 0.7.1 → 0.9.6
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.
- 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: []
|