survey-gizmo-ruby 6.2.6 → 6.2.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bec70065e63bfbce5fbe051b24b1287c3b48da77
4
- data.tar.gz: d045b945faac6833471a7e9e2cdc55523eefe50f
3
+ metadata.gz: 20a04949f16c25819c1023e91c871fa7db8aab13
4
+ data.tar.gz: 99f4d0a5c17a0f7a83a67c3ecb8039ec5643b0d6
5
5
  SHA512:
6
- metadata.gz: 1244fe6fbacc861a11cab40e4b256d5352e6b212fd28c32bfc099ce362f68976dd365e60bb4478de16c3699b810d6a0cf768d4bbb786083beaef99f535621880
7
- data.tar.gz: bec1a6537c50205d9a246cc31dec8e56e6012c609e1bbdff14910524db9190edf6d8fe5c451bf89da43d3d2e0f5874b98e74c441153bfd1d310732fe828499ad
6
+ metadata.gz: 7ffdb74e5fa62bd8e37744d8ecae7a18357110d3842b0a531af0ea0e1a92afb2f6b44ccc832bbb7523144129c13257881fff496b4e32c58ffb887942804e6323
7
+ data.tar.gz: dca6e6c8ff26776d48df6e66ad9850faf165773d91e4bb5968c83e733293895d684984cccd396f0cd154d3e11dd621382eb129ebe5ffddf3d1f7bcdaecc1f13e
data/README.md CHANGED
@@ -58,7 +58,7 @@ And then your ruby code just has to make sure to call
58
58
  SurveyGizmo.configure
59
59
  ````
60
60
 
61
- once at some point.
61
+ once at some point to load the tokens out of the `ENV` and into the configuration.
62
62
 
63
63
  ## Usage
64
64
 
@@ -68,7 +68,7 @@ once at some point.
68
68
 
69
69
  `SurveyGizmo::API::Klass.all` returns an `Enumerator` you can use to loop through your results/questions/surveys etc. It will actually iterate through ALL your results (pagination will be handled for you) if you pass `all_pages: true`.
70
70
 
71
- Because `.all` returns an `Enumerator`, you have to call `.to_a` or some other enumerable method to trigger actual API data retrieval.
71
+ Because `.all` returns an `Enumerator`, you have to call `.each` or `.to_a` or some other enumerable method to trigger actual API data retrieval.
72
72
  ```ruby
73
73
  SurveyGizmo::API::Survey.all(all_pages: true) # => #<Enumerator: #<Enumerator::Generator>:each>
74
74
  SurveyGizmo::API::Survey.all(all_pages: true).to_a # => [Survey, Survey, Survey, ...]
@@ -107,8 +107,9 @@ question.destroy
107
107
  # Iterate over all your Responses
108
108
  survey.responses.each { |response| do_something_with(response) }
109
109
  # Use filters to limit results - this example will iterate over page 3 of completed, non test data
110
- # SurveyResponses submitted within the past 3 days for contact 999. It demonstrates how to use some of
111
- # the gem's built in filters/generators as well as how to construct a filter.
110
+ # SurveyResponses submitted within the past 3 days for contact 999. The example `filters` array
111
+ # demonstrates how to use some of the gem's built in filters/generators as well as how to construct
112
+ # an ad hoc filter hash.
112
113
  # See: http://apihelp.surveygizmo.com/help/article/link/filters for more info on filters
113
114
  filters = [
114
115
  SurveyGizmo::API::Response::NO_TEST_DATA,
@@ -54,13 +54,15 @@ module SurveyGizmo
54
54
  interval: SurveyGizmo.configuration.retry_interval,
55
55
  tries: SurveyGizmo.configuration.retry_attempts + 1,
56
56
  on: [
57
- SurveyGizmo::BadResponseError,
58
- SurveyGizmo::RateLimitExceededError,
59
57
  Errno::ETIMEDOUT,
58
+ Faraday::Error::ClientError,
60
59
  Net::ReadTimeout,
61
- Faraday::Error::ParsingError,
62
- Faraday::Error::TimeoutError
63
- ]
60
+ SurveyGizmo::BadResponseError,
61
+ SurveyGizmo::RateLimitExceededError
62
+ ],
63
+ on_retry: Proc.new do |exception, tries|
64
+ SurveyGizmo.configuration.logger.warn("Retrying after #{exception.class}: #{tries} attempts.")
65
+ end
64
66
  }
65
67
  end
66
68
  end
@@ -35,7 +35,7 @@ module SurveyGizmo
35
35
  # Properties from the conditions hash (e.g. survey_id) will be added to the returned objects
36
36
  def all(conditions = {})
37
37
  fail ':all_pages and :page are mutually exclusive' if conditions[:page] && conditions[:all_pages]
38
- logger.warn('WARNING: Only retrieving first page of results!') unless conditions[:page] || conditions[:all_pages]
38
+ logger.warn('Only retrieving first page of results!') unless conditions[:page] || conditions[:all_pages]
39
39
 
40
40
  all_pages = conditions.delete(:all_pages)
41
41
  conditions[:resultsperpage] ||= SurveyGizmo.configuration.results_per_page
@@ -44,7 +44,9 @@ module SurveyGizmo
44
44
  response = nil
45
45
 
46
46
  while !response || (all_pages && response['page'] < response['total_pages'])
47
- conditions[:page] = response ? response['page'] + 1 : conditions.fetch(:page, 1)
47
+ conditions[:page] = response ? response['page'] + 1 : conditions.fetch(:page, 1)
48
+
49
+ start_fetch_time = Time.now
48
50
  logger.debug("Fetching #{name} page #{conditions} - #{conditions[:page]}#{response ? "/#{response['total_pages']}" : ''}...")
49
51
  response = Connection.get(create_route(:create, conditions)).body
50
52
  collection = response['data'].map { |datum| datum.is_a?(Hash) ? new(conditions.merge(datum)) : datum }
@@ -55,6 +57,7 @@ module SurveyGizmo
55
57
  collection += collection.flat_map { |question| question.sub_questions }
56
58
  end
57
59
 
60
+ logger.debug(" Fetched #{conditions[:resultsperpage]} of #{name} in #{(Time.now - start_fetch_time).to_i}s...")
58
61
  collection.each { |e| yielder.yield(e) }
59
62
  end
60
63
  end
@@ -1,3 +1,3 @@
1
1
  module SurveyGizmo
2
- VERSION = '6.2.6'
2
+ VERSION = '6.2.9'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: survey-gizmo-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.2.6
4
+ version: 6.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kabari Hendrick
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-09-03 00:00:00.000000000 Z
14
+ date: 2016-09-04 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport