Class: PollEverywhere::Models::Poll
- Inherits:
-
Object
- Object
- PollEverywhere::Models::Poll
show all
- Includes:
- Serializable
- Defined in:
- lib/polleverywhere/models.rb
Overview
Poll is an abstract base class for multiple choice and free text polls
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
included
Constructor Details
#initialize(http = PollEverywhere.http) ⇒ Poll
Returns a new instance of Poll.
109
110
111
|
# File 'lib/polleverywhere/models.rb', line 109
def initialize(http=PollEverywhere.http)
self.http = http
end
|
Instance Attribute Details
#http ⇒ Object
Returns the value of attribute http.
107
108
109
|
# File 'lib/polleverywhere/models.rb', line 107
def http
@http
end
|
Class Method Details
.all ⇒ Object
145
146
147
148
149
150
151
152
153
154
155
156
|
# File 'lib/polleverywhere/models.rb', line 145
def self.all
PollEverywhere.http.get.from("/my/polls").as(:json).response do |response|
::JSON.parse(response.body).map do |hash|
case hash.keys.first.to_sym
when MCP.root_key
MCP.from_hash(hash)
when FTP.root_key
MCP.from_hash(hash)
end
end
end
end
|
.get(permalink) ⇒ Object
141
142
143
|
# File 'lib/polleverywhere/models.rb', line 141
def self.get(permalink)
from_hash(:permalink => permalink).fetch
end
|
Instance Method Details
#archive ⇒ Object
158
159
160
161
162
163
164
165
166
167
168
|
# File 'lib/polleverywhere/models.rb', line 158
def archive
if persisted?
http.delete.to(path + "/results/archive").response do |response|
return true
end
return false
else
false
end
end
|
#clear ⇒ Object
170
171
172
173
174
175
176
177
178
179
180
|
# File 'lib/polleverywhere/models.rb', line 170
def clear
if persisted?
http.delete.to(path + "/results").response do |response|
return true
end
return false
else
false
end
end
|
#destroy ⇒ Object
182
183
184
185
186
|
# File 'lib/polleverywhere/models.rb', line 182
def destroy
http.delete(path).response do |response|
self.id = self.permalink = nil
end
end
|
#path ⇒ Object
188
189
190
|
# File 'lib/polleverywhere/models.rb', line 188
def path
"/#{self.class.root_key}s/#{permalink}" if persisted?
end
|
#persisted? ⇒ Boolean
125
126
127
|
# File 'lib/polleverywhere/models.rb', line 125
def persisted?
!!permalink
end
|
#possible_states ⇒ Object
192
193
194
|
# File 'lib/polleverywhere/models.rb', line 192
def possible_states
[:opened, :closed, :maxed_out]
end
|
#save ⇒ Object
129
130
131
132
133
134
135
136
137
138
139
|
# File 'lib/polleverywhere/models.rb', line 129
def save
if persisted?
http.put(to_json).as(:json).to(path).response do |response|
from_json response.body
end
else
http.post(to_json).as(:json).to("/#{self.class.root_key}s").response do |response|
from_json response.body
end
end
end
|
#start ⇒ Object
Start the poll so that it may receive audience responses
114
115
116
117
|
# File 'lib/polleverywhere/models.rb', line 114
def start
self.state = "opened"
save
end
|
#stop ⇒ Object
Stop the poll so that it stops receieving responses
120
121
122
123
|
# File 'lib/polleverywhere/models.rb', line 120
def stop
self.state = "closed"
save
end
|