Class: StrawPoll
- Inherits:
-
Object
- Object
- StrawPoll
- Defined in:
- lib/strawpoll_api.rb
Instance Attribute Summary collapse
-
#api ⇒ Object
readonly
Returns the value of attribute api.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#leader ⇒ Object
readonly
Returns the value of attribute leader.
-
#link ⇒ Object
readonly
Returns the value of attribute link.
-
#multi ⇒ Object
Returns the value of attribute multi.
-
#options ⇒ Object
Returns the value of attribute options.
-
#perm ⇒ Object
Returns the value of attribute perm.
-
#results ⇒ Object
readonly
Returns the value of attribute results.
-
#title ⇒ Object
Returns the value of attribute title.
-
#votes ⇒ Object
readonly
Returns the value of attribute votes.
Instance Method Summary collapse
- #create! ⇒ Object
-
#initialize(title, *options) ⇒ StrawPoll
constructor
A new instance of StrawPoll.
- #view(id = @id) ⇒ Object
- #winner(id = @id) ⇒ Object
Constructor Details
#initialize(title, *options) ⇒ StrawPoll
Returns a new instance of StrawPoll.
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/strawpoll_api.rb', line 8 def initialize title, * raise ArgumentError unless .length >= 2 @title = title @multi = false @perm = true = @api = 'http://strawpoll.me/api/v2/polls/' @id = nil @leader = nil @votes = nil @link = nil @results = nil end |
Instance Attribute Details
#api ⇒ Object (readonly)
Returns the value of attribute api.
6 7 8 |
# File 'lib/strawpoll_api.rb', line 6 def api @api end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
6 7 8 |
# File 'lib/strawpoll_api.rb', line 6 def id @id end |
#leader ⇒ Object (readonly)
Returns the value of attribute leader.
6 7 8 |
# File 'lib/strawpoll_api.rb', line 6 def leader @leader end |
#link ⇒ Object (readonly)
Returns the value of attribute link.
6 7 8 |
# File 'lib/strawpoll_api.rb', line 6 def link @link end |
#multi ⇒ Object
Returns the value of attribute multi.
5 6 7 |
# File 'lib/strawpoll_api.rb', line 5 def multi @multi end |
#options ⇒ Object
Returns the value of attribute options.
5 6 7 |
# File 'lib/strawpoll_api.rb', line 5 def end |
#perm ⇒ Object
Returns the value of attribute perm.
5 6 7 |
# File 'lib/strawpoll_api.rb', line 5 def perm @perm end |
#results ⇒ Object (readonly)
Returns the value of attribute results.
6 7 8 |
# File 'lib/strawpoll_api.rb', line 6 def results @results end |
#title ⇒ Object
Returns the value of attribute title.
5 6 7 |
# File 'lib/strawpoll_api.rb', line 5 def title @title end |
#votes ⇒ Object (readonly)
Returns the value of attribute votes.
6 7 8 |
# File 'lib/strawpoll_api.rb', line 6 def votes @votes end |
Instance Method Details
#create! ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/strawpoll_api.rb', line 22 def create! raise ArgumentError unless !@title.empty? && .length >= 2 params = { "title" => @title, "options" => , "multi" => @multi, "permissive" => @perm, } url = URI @api resp = Net::HTTP.post_form(url, params) @id = JSON.parse(resp.body)['id'] @link = "http://strawpoll.me/#{@id}" @results = "http://strawpoll.me/#{@id}/r" resp.body end |
#view(id = @id) ⇒ Object
38 39 40 41 42 |
# File 'lib/strawpoll_api.rb', line 38 def view id=@id raise ArgumentError unless id.is_a? Fixnum url = URI "#{@api}#{id}" resp = Net::HTTP.get(url) end |
#winner(id = @id) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/strawpoll_api.rb', line 44 def winner id=@id raise ArgumentError unless id.is_a? Fixnum url = URI "#{@api}#{id}" resp = Net::HTTP.get(url) result = JSON.parse(resp)['votes'] winner = JSON.parse(resp)['options'][result.index(result.max)] if id == @id @leader = winner @votes = result end winner end |