diff --git a/README b/README index 5634866..e3e2f6b 100644 --- a/README +++ b/README @@ -6,7 +6,7 @@ Various parsers, maily to be used with Twitter TwitterVote ======= -Let's users create votings or small surveys and vote in those. +Lets users create votings or small surveys and vote in those. Copyright (c) 2009 Thomas R. Koll , released under the MIT license diff --git a/lib/parsers/twitter/vote.rb b/lib/parsers/twitter/vote.rb index 9ff1927..c8cd841 100644 --- a/lib/parsers/twitter/vote.rb +++ b/lib/parsers/twitter/vote.rb @@ -6,15 +6,13 @@ class Vote def parse(input) case input.split(" ")[1] || input when /^\@/ # vote by user name - value = input.split(" ")[2..-1].join(' ') - return :error if value.blank? - return :vote, {:user_screen_name => input.split(" ")[1][1..-1], :value => value } + option = input.split(" ")[2..-1].join(' ') + return :error if option.blank? + return :vote, {:user_screen_name => input.split(" ")[1][1..-1], :option => option } when /^\#?\d+/ # vote by survey id - value = input.split(" ")[2..-1].join(' ') - return :error if value.blank? - return :vote, {:id => input.split(" ")[1][/\d+/], :value => value} - when 'list' - return :list + option = input.split(" ")[2..-1].join(' ') + return :error if option.blank? + return :vote, {:id => input.split(" ")[1][/\d+/], :option => option} when 'create' # a new survey else if input.match(/\?/) diff --git a/test/parsers/twitter/vote_test.rb b/test/parsers/twitter/vote_test.rb index 895e705..2ad4b2e 100644 --- a/test/parsers/twitter/vote_test.rb +++ b/test/parsers/twitter/vote_test.rb @@ -11,18 +11,17 @@ def test_02_create_voting_with_options assert_equal [:create, {:question => 'Is there a god?', :options => %w(Yes Maybe No)}], @parser.parse('Is there a god? Yes. Maybe. No') assert_equal [:create, {:question => 'Is there a god?', :options => %w(Yes Maybe No)}], @parser.parse('Is there a god? Yes Maybe No') end - def test_03_list_my_votings - assert_equal :list, @parser.parse('@vote list') + def test_03_vote_on_id + assert_equal [:vote, {:id => '123', :option => 'No'}], @parser.parse('@vote #123 No') end - def test_04_vote_on_id - assert_equal [:vote, {:id => '123', :value => 'No'}], @parser.parse('@vote #123 No') + def test_04_vote_on_username + assert_equal [:vote, {:user_screen_name => 'TomK32', :option => 'Yes'}], @parser.parse('@vote @TomK32 Yes') end - def test_05_vote_on_username - assert_equal [:vote, {:user_screen_name => 'TomK32', :value => 'Yes'}], @parser.parse('@vote @TomK32 Yes') - end - def test_06_errors + def test_05_errors assert_equal :error, @parser.parse('@vote Yes') assert_equal :error, @parser.parse('@vote @TomK32') assert_equal :error, @parser.parse('@vote #123') + assert_equal :error, @parser.parse('@vote You look great') + assert_equal :error, @parser.parse('@vote I think @tomk32 looks great') end end