class SurveyGizmo::ParseSurveyGizmo

Constants

PAGINATION_FIELDS
TIME_FIELDS

Private Class Methods

cleanup_attribute_name(attr) click to toggle source
# File lib/survey_gizmo/faraday_middleware/parse_survey_gizmo.rb, line 76
def self.cleanup_attribute_name(attr)
  attr.downcase.gsub(/[^[:alnum:]]+/, '_')
               .gsub(/(url|variable|standard|shown)/, '')
               .gsub(/_+/, '_')
               .gsub(/^_|_$/, '')
end
find_attribute_parent(attr) click to toggle source
# File lib/survey_gizmo/faraday_middleware/parse_survey_gizmo.rb, line 83
def self.find_attribute_parent(attr)
  case attr.downcase
  when /url/
    'url'
  when /variable.*standard/
    'meta'
  when /variable.*shown/
    'shown'
  when /variable/
    'variable'
  when /question/
    'answers'
  end
end

Public Instance Methods

call(environment) click to toggle source
# File lib/survey_gizmo/faraday_middleware/parse_survey_gizmo.rb, line 25
def call(environment)
  @app.call(environment).on_complete do |response|
    fail RateLimitExceededError if response.status == 429
    fail BadResponseError, "Bad response code #{response.status} in #{response.inspect}" unless response.status == 200
    fail BadResponseError, response.body['message'] unless response.body['result_ok'] && response.body['result_ok'].to_s =~ /^true$/i

    process_response(response)
  end
end