Module: Pollster
- Defined in:
- lib/pollster.rb,
lib/pollster/api.rb,
lib/pollster/version.rb,
lib/pollster/api_error.rb,
lib/pollster/api_client.rb,
lib/pollster/models/tag.rb,
lib/pollster/models/poll.rb,
lib/pollster/models/chart.rb,
lib/pollster/configuration.rb,
lib/pollster/models/question.rb,
lib/pollster/models/poll_question.rb,
lib/pollster/models/chart_estimate.rb,
lib/pollster/models/question_responses.rb,
lib/pollster/models/inline_response_200.rb,
lib/pollster/models/inline_response_200_3.rb,
lib/pollster/models/inline_response_200_4.rb,
lib/pollster/models/poll_question_responses.rb,
lib/pollster/models/chart_pollster_trendlines.rb,
lib/pollster/models/question_poll_responses_raw.rb,
lib/pollster/models/pollster_chart_poll_questions.rb,
lib/pollster/models/question_poll_responses_clean.rb,
lib/pollster/models/chart_pollster_estimate_summary.rb,
lib/pollster/models/chart_estimate_lowess_parameters.rb,
lib/pollster/models/poll_question_sample_subpopulations.rb
Defined Under Namespace
Classes: Api, ApiClient, ApiError, Chart, ChartEstimate, ChartEstimateLowessParameters, ChartPollsterEstimateSummary, Configuration, InlineResponse200, InlineResponse2003, InlineResponse2004, Poll, PollQuestion, PollQuestionResponses, PollQuestionSampleSubpopulations, PollsterChartPollQuestions, Question, QuestionPollResponsesClean, QuestionPollResponsesRaw, QuestionResponses, Tag
Constant Summary collapse
- VERSION =
"2.0.0"
- ChartPollsterTrendlinePoint =
RubyImmutableStruct.new(:label, :date, :value, :low, :high) do def self.from_tsv_line(tsv_line) if m = ChartPollsterTrendlinePoint::TsvLineRegex.match(tsv_line) ChartPollsterTrendlinePoint.new( m[:label], Date.parse(m[:date]), m[:value].to_f, m[:low].empty? ? nil : m[:low].to_f, m[:high].empty? ? nil : m[:high].to_f ) else raise ArgumentError.new("TSV line `#{tsv_line}` is not a valid ChartPollsterTrendlinePoint line") end end end
- ChartPollsterTrendlines =
RubyImmutableStruct.new(:points) do ExpectedHeaderLine = "label\tdate\tvalue\tlow\thigh" def by_label ret = points.group_by(&:label) ret.values.each { |arr| arr.sort_by!(&:date) } ret end def self.from_tsv(tsv) lines = tsv.split(/(?:\r?\n)+/).reject(&:empty?) if /\A#{ExpectedHeaderLine}/ !~ lines[0] raise ArgumentError.new("First line of TSV is `#{lines[0]}`; expected `#{ExpectedHeaderLine}`") else points = lines[1..-1].map { |tsv_line| ChartPollsterTrendlinePoint.from_tsv_line(tsv_line) } ChartPollsterTrendlines.new(points) end end end
- QuestionPollResponseRaw =
RubyImmutableStruct.new( :response_text, :pollster_label, :value, :poll_slug, :survey_house, :start_date, :end_date, :question_text, :sample_subpopulation, :observations, :margin_of_error, :mode, :partisanship, :partisan_affiliation ) do def self.from_tsv_line(tsv_line) if m = QuestionPollResponseRaw::TsvLineRegex.match(tsv_line) QuestionPollResponseRaw.new( m[:response_text], m[:pollster_label], m[:value].to_f, m[:poll_slug], m[:survey_house], Date.parse(m[:start_date]), Date.parse(m[:end_date]), m[:question_text], m[:sample_subpopulation], m[:observations].empty? ? nil : m[:observations].to_i, m[:margin_of_error].empty? ? nil : m[:margin_of_error].to_f, m[:mode], m[:partisanship], m[:partisan_affiliation] ) else raise ArgumentError.new("TSV line `#{tsv_line}` is not a valid QuestionPollResponseRaw line") end end end
- PollsterChartPollQuestion =
RubyImmutableStruct.new( :responses, :poll_slug, :survey_house, :start_date, :end_date, :question_text, :sample_subpopulation, :observations, :margin_of_error, :mode, :partisanship, :partisan_affiliation ) do def self.from_tsv_line_with_labels(tsv_line, labels) if m = PollsterChartPollQuestion::TsvLineRegex.match(tsv_line) # split(..., -1) avoids omitting trailing blanks values = m[:values].split(/\t/, -1).map{ |v| v.empty? ? nil : v.to_f } if values.length != labels.length raise ArgumentError.new("TSV line `#{tsv_line}` has #{values.length} values for #{labels.length} labels") end responses = {} for i in 0...(labels.length) responses[labels[i]] = values[i] end PollsterChartPollQuestion.new( responses, m[:poll_slug], m[:survey_house], Date.parse(m[:start_date]), Date.parse(m[:end_date]), m[:question_text], m[:sample_subpopulation], m[:observations].empty? ? nil : m[:observations].to_i, m[:margin_of_error].empty? ? nil : m[:margin_of_error].to_f, m[:mode], m[:partisanship], m[:partisan_affiliation] ) else raise ArgumentError.new("TSV line `#{tsv_line}` is not a valid PollsterChartPollQuestion line") end end end
- QuestionPollResponseClean =
RubyImmutableStruct.new( :responses, :poll_slug, :survey_house, :start_date, :end_date, :question_text, :sample_subpopulation, :observations, :margin_of_error, :mode, :partisanship, :partisan_affiliation ) do def self.from_tsv_line_with_labels(tsv_line, labels) if m = QuestionPollResponseClean::TsvLineRegex.match(tsv_line) # split(..., -1) avoids omitting trailing blanks values = m[:values].split(/\t/, -1).map{ |v| v.empty? ? nil : v.to_f } if values.length != labels.length raise ArgumentError.new("TSV line `#{tsv_line}` has #{values.length} values for #{labels.length} labels") end responses = {} for i in 0...(labels.length) responses[labels[i]] = values[i] end QuestionPollResponseClean.new( responses, m[:poll_slug], m[:survey_house], Date.parse(m[:start_date]), Date.parse(m[:end_date]), m[:question_text], m[:sample_subpopulation], m[:observations].empty? ? nil : m[:observations].to_i, m[:margin_of_error].empty? ? nil : m[:margin_of_error].to_f, m[:mode], m[:partisanship], m[:partisan_affiliation] ) else raise ArgumentError.new("TSV line `#{tsv_line}` is not a valid QuestionPollResponseClean line") end end end
Class Method Summary collapse
-
.configure ⇒ Object
Customize default settings for the SDK using block.
Class Method Details
.configure ⇒ Object
Customize default settings for the SDK using block.
Pollster.configure do |config|
config.username = "xxx"
config.password = "xxx"
end
If no block given, return the default Configuration object.
38 39 40 41 42 43 44 |
# File 'lib/pollster.rb', line 38 def configure if block_given? yield(Configuration.default) else Configuration.default end end |