polleverywhere 0.0.2 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/Gemfile +5 -0
- data/README.md +11 -10
- data/Rakefile +4 -3
- data/api/build/index.html +0 -0
- data/api/config.rb +64 -0
- data/api/config.ru +14 -0
- data/api/views/index.html.haml +112 -0
- data/api/views/layout.haml +21 -0
- data/api/views/stylesheets/site.css.sass +42 -0
- data/docs/api.haml +49 -31
- data/lib/polleverywhere/api.rb +9 -0
- data/lib/polleverywhere/configuration.rb +1 -1
- data/lib/polleverywhere/http/adapter.rb +1 -1
- data/lib/polleverywhere/http.rb +1 -1
- data/lib/polleverywhere/models.rb +11 -10
- data/lib/polleverywhere/version.rb +1 -1
- data/polleverywhere.gemspec +6 -5
- data/spec/integration/api_spec.rb +10 -0
- metadata +12 -6
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Poll Everywhere API Gem
|
1
|
+
# The Official Poll Everywhere API Gem
|
2
2
|
|
3
3
|
The Poll Everywhere gem is the best way to integrate Poll Everywhere with your applications.
|
4
4
|
|
@@ -22,19 +22,20 @@ If you're using bundler, add the following line to your Gemfile:
|
|
22
22
|
password "my_password"
|
23
23
|
end
|
24
24
|
|
25
|
-
#
|
26
|
-
|
27
|
-
poll =
|
28
|
-
poll.
|
29
|
-
poll.
|
30
|
-
|
25
|
+
# Create a multiple choice poll
|
26
|
+
poll = PollEverywhere::MultipleChoicePoll.new
|
27
|
+
poll.title = 'Do you love numbers?'
|
28
|
+
poll.options = %w[1 2 3]
|
29
|
+
poll.save
|
30
|
+
# Create a free text poll
|
31
|
+
poll = PollEverywhere::FreeTextPoll.new
|
32
|
+
poll.title = 'What is your favorite thing about vacation?'
|
31
33
|
poll.save
|
32
|
-
|
34
|
+
# Now start playing! Get a list of your polls
|
35
|
+
polls = PollEverywhere::Poll.all
|
33
36
|
|
34
37
|
You can do all sorts of fun stuff with polls!
|
35
38
|
|
36
|
-
# TODO
|
37
|
-
|
38
39
|
A roadmap for our API:
|
39
40
|
|
40
41
|
* API models and documentation for more pieces of our application
|
data/Rakefile
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
require 'bundler'
|
2
2
|
Bundler::GemHelper.install_tasks
|
3
|
-
require 'haml'
|
4
3
|
require 'polleverywhere'
|
5
4
|
|
6
5
|
namespace :doc do
|
7
6
|
desc "Generate API documentation"
|
8
7
|
task :api do
|
9
8
|
PollEverywhere.config do
|
10
|
-
username
|
11
|
-
password
|
9
|
+
username "test"
|
10
|
+
password "test"
|
11
|
+
url "http://api.polleverywhere.com"
|
12
|
+
http_adapter :doc
|
12
13
|
end
|
13
14
|
|
14
15
|
puts PollEverywhere::API::Documentation.generate
|
File without changes
|
data/api/config.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
# CodeRay syntax highlighting in Haml
|
2
|
+
# activate :code_ray
|
3
|
+
|
4
|
+
# Automatic sitemaps (gem install middleman-slickmap)
|
5
|
+
# require "middleman-slickmap"
|
6
|
+
# activate :slickmap
|
7
|
+
|
8
|
+
# Automatic image dimension calculations
|
9
|
+
# activate :automatic_image_sizes
|
10
|
+
|
11
|
+
# Per-page layout changes
|
12
|
+
# With no layout
|
13
|
+
# page "/path/to/file.html", :layout => false
|
14
|
+
# With alternative layout
|
15
|
+
# page "/path/to/file.html", :layout => :otherlayout
|
16
|
+
|
17
|
+
# Helpers
|
18
|
+
helpers do
|
19
|
+
def examples(model)
|
20
|
+
model.http.adapter.request.to_curl
|
21
|
+
end
|
22
|
+
|
23
|
+
def example(&block)
|
24
|
+
formats = {}
|
25
|
+
block.call
|
26
|
+
# formats[:ruby] = block.to_source(:strip_enclosure => true)
|
27
|
+
formats[:curl] = PollEverywhere.config.http_adapter.last_requests.map(&:to_curl).join("\n\n")
|
28
|
+
puts formats.map{ |format, example| %(<pre class="#{format}">#{example}</pre>) }.join
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# Change the CSS directory
|
33
|
+
# set :css_dir, "alternative_css_directory"
|
34
|
+
|
35
|
+
# Change the JS directory
|
36
|
+
# set :js_dir, "alternative_js_directory"
|
37
|
+
|
38
|
+
# Change the images directory
|
39
|
+
# set :images_dir, "alternative_image_directory"
|
40
|
+
|
41
|
+
# Build-specific configuration
|
42
|
+
configure :build do
|
43
|
+
# For example, change the Compass output style for deployment
|
44
|
+
# activate :minify_css
|
45
|
+
|
46
|
+
# Minify Javascript on build
|
47
|
+
# activate :minify_javascript
|
48
|
+
|
49
|
+
# Enable cache buster
|
50
|
+
# activate :cache_buster
|
51
|
+
|
52
|
+
# Use relative URLs
|
53
|
+
# activate :relative_assets
|
54
|
+
|
55
|
+
# Compress PNGs after build (gem install middleman-smusher)
|
56
|
+
# require "middleman-smusher"
|
57
|
+
# activate :smusher
|
58
|
+
|
59
|
+
# Generate ugly/obfuscated HTML from Haml
|
60
|
+
# activate :ugly_haml
|
61
|
+
|
62
|
+
# Or use a different image path
|
63
|
+
# set :http_path, "/Content/images/"
|
64
|
+
end
|
data/api/config.ru
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
require 'middleman'
|
4
|
+
require 'polleverywhere'
|
5
|
+
require 'sourcify'
|
6
|
+
|
7
|
+
PollEverywhere.config do
|
8
|
+
username "test"
|
9
|
+
password "test"
|
10
|
+
url "http://localhost:3000"
|
11
|
+
http_adapter :doc
|
12
|
+
end
|
13
|
+
|
14
|
+
run Middleman::Server
|
@@ -0,0 +1,112 @@
|
|
1
|
+
!!! html
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title Poll Everywhere API
|
5
|
+
%body
|
6
|
+
%header
|
7
|
+
%h1 Poll Everywhere API Documentation
|
8
|
+
|
9
|
+
%section
|
10
|
+
%p This API assumes that you are familar with the low-level semantics of HTTP, including the use of tools like cURL, and JSON.
|
11
|
+
|
12
|
+
%h1 Authentication
|
13
|
+
%p HTTP Basic authentication is currently used for logging into Poll Everywhere accounts. More information can be found at <a href="http://en.wikipedia.org/HTTP Basic">Wikipedia</a>.
|
14
|
+
|
15
|
+
%h1 We use JSON
|
16
|
+
%p Simple JSON key-value data structures are used throughout the API application to persist and modify data to the web application. Typically resources will include a root key that corresponds with the name of the name of the resource; from example, multiple choice polls all have the root key 'multiple_choice_poll'.
|
17
|
+
|
18
|
+
%h1 Polls
|
19
|
+
%h2 Multiple choice polls
|
20
|
+
%p These polls are great for collecting structured information from audiences if you want to define a set of answers that participants may choose from.
|
21
|
+
|
22
|
+
%h3 Attributes
|
23
|
+
%dl.attributes
|
24
|
+
%dt=PollEverywhere::MultipleChoicePoll.root_key
|
25
|
+
%dd Root key for multiple choice poll data.
|
26
|
+
%dd
|
27
|
+
%dl
|
28
|
+
-PollEverywhere::MultipleChoicePoll.props.each do |_, prop|
|
29
|
+
%dt=prop.name
|
30
|
+
%dd=prop.description
|
31
|
+
-if prop.name == :options
|
32
|
+
%dd
|
33
|
+
%dl
|
34
|
+
-PollEverywhere::MultipleChoicePoll::Option.props.each do |_, prop|
|
35
|
+
%dt=prop.name
|
36
|
+
%dd=prop.description
|
37
|
+
%h3 Creating a multiple choice poll
|
38
|
+
:ruby
|
39
|
+
example do
|
40
|
+
@mcp = PollEverywhere::MultipleChoicePoll.from_hash(:title => 'Hey dude!', :options => %w[red blue green]).save
|
41
|
+
end
|
42
|
+
|
43
|
+
%h3 Changing the title of a multiple choice poll
|
44
|
+
:ruby
|
45
|
+
example do
|
46
|
+
@mcp.title = "I like different titles"
|
47
|
+
@mcp.save
|
48
|
+
end
|
49
|
+
|
50
|
+
%h3 Closing and opening multiple choice polls
|
51
|
+
%p To close a poll, change the state to "closed"
|
52
|
+
:ruby
|
53
|
+
example do
|
54
|
+
@mcp.stop
|
55
|
+
end
|
56
|
+
|
57
|
+
%p To open it back up (and allow responses to come on through) change the state to "opened"
|
58
|
+
:ruby
|
59
|
+
example do
|
60
|
+
@mcp.start
|
61
|
+
end
|
62
|
+
|
63
|
+
%h3 Delete a multiple choice poll
|
64
|
+
%p When you're totally finished with the poll and you want to tidy things up a bit, you can delete polls
|
65
|
+
:ruby
|
66
|
+
example do
|
67
|
+
@mcp.destroy
|
68
|
+
end
|
69
|
+
|
70
|
+
%h2 Free text polls
|
71
|
+
%p These polls are used to collect short answers or unstructured responses from participants.
|
72
|
+
%h3 Attributes
|
73
|
+
%dl.attributes
|
74
|
+
%dt=PollEverywhere::FTP.root_key
|
75
|
+
%dd Root key for free text poll data.
|
76
|
+
%dd
|
77
|
+
%dl
|
78
|
+
-PollEverywhere::FTP.props.each do |_, prop|
|
79
|
+
%dt=prop.name
|
80
|
+
%dd=prop.description
|
81
|
+
|
82
|
+
%h3 Create free text polls
|
83
|
+
%p Creating a free text poll is similar to building a multiple choice poll, just without the options attribute.
|
84
|
+
:ruby
|
85
|
+
example do
|
86
|
+
@ftp = PollEverywhere::FreeTextPoll.from_hash(:title => "What is the meaning of life?").save
|
87
|
+
end
|
88
|
+
|
89
|
+
%h3 Modify a free text poll
|
90
|
+
%p Change the title attribute to change the poll
|
91
|
+
:ruby
|
92
|
+
example do
|
93
|
+
@ftp.state = "opened"
|
94
|
+
@ftp.save
|
95
|
+
end
|
96
|
+
|
97
|
+
%h3 Delete a free text poll
|
98
|
+
:ruby
|
99
|
+
example do
|
100
|
+
@ftp.destroy
|
101
|
+
end
|
102
|
+
|
103
|
+
%footer
|
104
|
+
%p
|
105
|
+
This documentation was automatically generated by the Poll Everywhere rubygem at
|
106
|
+
=succeed '.' do
|
107
|
+
%a(href="http://github.com/polleverywhere/polleverywhere") http://github.com/polleverywhere/polleverywhere
|
108
|
+
Community support for the API is available on the
|
109
|
+
%a(href="http://groups.google.com/group/polleverywhere-dev") Poll Everywhere Developer mailing list
|
110
|
+
and paid professional support at
|
111
|
+
=succeed '.' do
|
112
|
+
%a(href="http://www.polleverywhere.com/professional-support") Poll Everywhere
|
@@ -0,0 +1,21 @@
|
|
1
|
+
!!! 5
|
2
|
+
%html{ :lang => "en" }
|
3
|
+
%head
|
4
|
+
%meta{ :charset => "utf-8" }
|
5
|
+
|
6
|
+
/ Always force latest IE rendering engine (even in intranet) & Chrome Frame
|
7
|
+
%meta{ :content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible" }
|
8
|
+
|
9
|
+
/ Comment in layout
|
10
|
+
|
11
|
+
= stylesheet_link_tag "site.css"
|
12
|
+
|
13
|
+
:javascript
|
14
|
+
// Comment in javascript
|
15
|
+
|
16
|
+
= yield_content :head
|
17
|
+
|
18
|
+
%body{ :class => page_classes }
|
19
|
+
|
20
|
+
#main{ :role => "main" }
|
21
|
+
= yield
|
@@ -0,0 +1,42 @@
|
|
1
|
+
@import "compass"
|
2
|
+
|
3
|
+
$base-font-size: 16px
|
4
|
+
$code-font-size: 13px
|
5
|
+
|
6
|
+
body
|
7
|
+
font:
|
8
|
+
family: Georgia, Palatino, "Palatino Linotype", Times, "Times New Roman", serif
|
9
|
+
size: $base-font-size
|
10
|
+
width: 40em
|
11
|
+
margin: auto auto
|
12
|
+
|
13
|
+
code
|
14
|
+
font-family: monaco, courier
|
15
|
+
font-size: $code-font-size
|
16
|
+
line-height: $base-font-size
|
17
|
+
padding: $base-font-size
|
18
|
+
display: block
|
19
|
+
padding: 1em
|
20
|
+
background: #eee
|
21
|
+
margin: 1em 0
|
22
|
+
|
23
|
+
h1,h2,h3,h4,h5,h6
|
24
|
+
font-weight: normal
|
25
|
+
|
26
|
+
h1
|
27
|
+
font-size: 30px
|
28
|
+
h2
|
29
|
+
font-size: 24px
|
30
|
+
h3,h4,h5.h6
|
31
|
+
font-size: 20px
|
32
|
+
|
33
|
+
dl.attributes
|
34
|
+
dt
|
35
|
+
margin-top: 1em
|
36
|
+
font-family: courier
|
37
|
+
font-size: $code-font-size
|
38
|
+
line-height: $base-font-size
|
39
|
+
dl, dd
|
40
|
+
margin-left: 0
|
41
|
+
dd > dl
|
42
|
+
margin-left: 1em
|
data/docs/api.haml
CHANGED
@@ -5,21 +5,22 @@
|
|
5
5
|
%body
|
6
6
|
%header
|
7
7
|
%h1 Poll Everywhere API Documentation
|
8
|
-
%em Disclaimer: this documentation is only intended for an internal preview. Hold off on using this stuff until we announce it on our blog.
|
9
8
|
|
10
9
|
%section
|
11
10
|
%p This API assumes that you are familar with the low-level semantics of HTTP, including the use of tools like cURL, and JSON.
|
12
11
|
|
13
12
|
%h1 Authentication
|
14
|
-
%p HTTP Basic authentication is currently used for logging into Poll Everywhere accounts.
|
13
|
+
%p HTTP Basic authentication is currently used for logging into Poll Everywhere accounts. More information can be found at <a href="http://en.wikipedia.org/HTTP Basic">Wikipedia</a>.
|
15
14
|
|
16
15
|
%h1 We use JSON
|
17
16
|
%p Simple JSON key-value data structures are used throughout the API application to persist and modify data to the web application. Typically resources will include a root key that corresponds with the name of the name of the resource; from example, multiple choice polls all have the root key 'multiple_choice_poll'.
|
18
|
-
|
17
|
+
|
19
18
|
%h1 Polls
|
20
19
|
%h2 Multiple choice polls
|
21
|
-
%
|
22
|
-
|
20
|
+
%p These polls are great for collecting structured information from audiences if you want to define a set of answers that participants may choose from.
|
21
|
+
|
22
|
+
%h3 Attributes
|
23
|
+
%dl.attributes
|
23
24
|
%dt=PollEverywhere::MultipleChoicePoll.root_key
|
24
25
|
%dd Root key for multiple choice poll data.
|
25
26
|
%dd
|
@@ -33,33 +34,43 @@
|
|
33
34
|
-PollEverywhere::MultipleChoicePoll::Option.props.each do |_, prop|
|
34
35
|
%dt=prop.name
|
35
36
|
%dd=prop.description
|
36
|
-
|
37
37
|
%h3 Creating a multiple choice poll
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
38
|
+
:ruby
|
39
|
+
example do
|
40
|
+
@mcp = PollEverywhere::MultipleChoicePoll.from_hash(:title => 'Hey dude!', :options => %w[red blue green]).save
|
41
|
+
end
|
42
|
+
|
43
|
+
%h3 Changing the title of a multiple choice poll
|
44
|
+
:ruby
|
45
|
+
example do
|
46
|
+
@mcp.title = "I like different titles"
|
47
|
+
@mcp.save
|
48
|
+
end
|
45
49
|
|
46
50
|
%h3 Closing and opening multiple choice polls
|
47
51
|
%p To close a poll, change the state to "closed"
|
48
|
-
|
49
|
-
|
52
|
+
:ruby
|
53
|
+
example do
|
54
|
+
@mcp.stop
|
55
|
+
end
|
50
56
|
|
51
57
|
%p To open it back up (and allow responses to come on through) change the state to "opened"
|
52
|
-
|
53
|
-
|
58
|
+
:ruby
|
59
|
+
example do
|
60
|
+
@mcp.start
|
61
|
+
end
|
54
62
|
|
55
63
|
%h3 Delete a multiple choice poll
|
56
64
|
%p When you're totally finished with the poll and you want to tidy things up a bit, you can delete polls
|
57
|
-
|
58
|
-
|
59
|
-
|
65
|
+
:ruby
|
66
|
+
example do
|
67
|
+
@mcp.destroy
|
68
|
+
end
|
69
|
+
|
60
70
|
%h2 Free text polls
|
61
|
-
%
|
62
|
-
%
|
71
|
+
%p These polls are used to collect short answers or unstructured responses from participants.
|
72
|
+
%h3 Attributes
|
73
|
+
%dl.attributes
|
63
74
|
%dt=PollEverywhere::FTP.root_key
|
64
75
|
%dd Root key for free text poll data.
|
65
76
|
%dd
|
@@ -70,18 +81,25 @@
|
|
70
81
|
|
71
82
|
%h3 Create free text polls
|
72
83
|
%p Creating a free text poll is similar to building a multiple choice poll, just without the options attribute.
|
73
|
-
|
74
|
-
|
75
|
-
|
84
|
+
:ruby
|
85
|
+
example do
|
86
|
+
@ftp = PollEverywhere::FreeTextPoll.from_hash(:title => "What is the meaning of life?").save
|
87
|
+
end
|
88
|
+
|
76
89
|
%h3 Modify a free text poll
|
77
90
|
%p Change the title attribute to change the poll
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
91
|
+
:ruby
|
92
|
+
example do
|
93
|
+
@ftp.state = "opened"
|
94
|
+
@ftp.save
|
95
|
+
end
|
96
|
+
|
82
97
|
%h3 Delete a free text poll
|
83
|
-
|
84
|
-
|
98
|
+
:ruby
|
99
|
+
example do
|
100
|
+
@ftp.destroy
|
101
|
+
end
|
102
|
+
|
85
103
|
%footer
|
86
104
|
%p
|
87
105
|
This documentation was automatically generated by the Poll Everywhere rubygem at
|
data/lib/polleverywhere/api.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# require 'sourcify'
|
1
2
|
require 'haml'
|
2
3
|
|
3
4
|
module PollEverywhere
|
@@ -23,6 +24,14 @@ module PollEverywhere
|
|
23
24
|
def examples(model)
|
24
25
|
model.http.adapter.request.to_curl
|
25
26
|
end
|
27
|
+
|
28
|
+
def example(&block)
|
29
|
+
formats = {}
|
30
|
+
block.call
|
31
|
+
# formats[:ruby] = block.to_source(:strip_enclosure => true)
|
32
|
+
formats[:curl] = PollEverywhere.config.http_adapter.last_requests.map(&:to_curl).join("\n\n")
|
33
|
+
puts formats.map{ |format, example| %(<pre class="#{format}">#{example}</pre>) }.join
|
34
|
+
end
|
26
35
|
end
|
27
36
|
end
|
28
37
|
end
|
@@ -27,7 +27,7 @@ module PollEverywhere
|
|
27
27
|
# this form of authorization will be replaced with a token authorization
|
28
28
|
# so that a password is not required.
|
29
29
|
def http_basic_credentials
|
30
|
-
"Basic #{Base64.encode64("#{username}:#{password}")}"
|
30
|
+
"Basic #{Base64.encode64("#{username}:#{password}")}".chomp
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
data/lib/polleverywhere/http.rb
CHANGED
@@ -11,7 +11,7 @@ module PollEverywhere
|
|
11
11
|
# Simple HTTP request/response objects for our adapter and DSL
|
12
12
|
class Request < Struct.new(:method, :url, :headers, :body)
|
13
13
|
def to_curl
|
14
|
-
%(curl -X #{method.to_s.upcase} #{headers.map{|h,v| %(-H "#{h}: #{v}")}.join(" ")} -d "#{body.gsub(/[!"`']/){|m| "\\#{m}" }}" "#{url}")
|
14
|
+
%(curl -X #{method.to_s.upcase} #{headers.map{|h,v| %(-H "#{h}: #{v}")}.join(" ")} -d "#{body.gsub(/[!"`'\n]/){|m| "\\#{m}" }}" "#{url}")
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -1,10 +1,9 @@
|
|
1
1
|
module PollEverywhere # :nodoc
|
2
2
|
module Models # :nodoc
|
3
|
-
|
4
|
-
# Poll is an abstract base classe for multiple choice and free text polls
|
3
|
+
# Poll is an abstract base class for multiple choice and free text polls
|
5
4
|
class Poll
|
6
5
|
include Serializable
|
7
|
-
|
6
|
+
|
8
7
|
prop :id
|
9
8
|
|
10
9
|
prop :updated_at do
|
@@ -19,10 +18,6 @@ module PollEverywhere # :nodoc
|
|
19
18
|
description %{Data and time that the poll was started.}
|
20
19
|
end
|
21
20
|
|
22
|
-
prop :options do
|
23
|
-
description %{The possible choices that people choose for a poll.}
|
24
|
-
end
|
25
|
-
|
26
21
|
prop :permalink do
|
27
22
|
description %{An obscufated ID that's used as a private link for sharing the poll}
|
28
23
|
end
|
@@ -39,13 +34,13 @@ module PollEverywhere # :nodoc
|
|
39
34
|
|
40
35
|
# Start the poll so that it may receive audience responses
|
41
36
|
def start
|
42
|
-
state = "opened"
|
37
|
+
self.state = "opened"
|
43
38
|
save
|
44
39
|
end
|
45
40
|
|
46
41
|
# Stop the poll so that it stops receieving responses
|
47
42
|
def stop
|
48
|
-
state = "closed"
|
43
|
+
self.state = "closed"
|
49
44
|
save
|
50
45
|
end
|
51
46
|
|
@@ -109,10 +104,16 @@ module PollEverywhere # :nodoc
|
|
109
104
|
|
110
105
|
root_key :multiple_choice_poll
|
111
106
|
|
107
|
+
prop :options do
|
108
|
+
description %{The possible choices that people choose for a poll.}
|
109
|
+
end
|
110
|
+
|
112
111
|
class Option
|
113
112
|
include Serializable
|
114
113
|
|
115
|
-
prop :id
|
114
|
+
prop :id do
|
115
|
+
description "Unique identifier for the option. This is primarily used to keep track of what option attributes are changed."
|
116
|
+
end
|
116
117
|
|
117
118
|
prop :value do
|
118
119
|
description "Text that is displayed in the chart that represents what a participant chooses when they response to a poll."
|
data/polleverywhere.gemspec
CHANGED
@@ -7,14 +7,15 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = Polleverywhere::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
9
|
s.authors = ["Brad Gessler, Steel Fu"]
|
10
|
-
s.email = ["
|
11
|
-
s.homepage = "http://www.
|
12
|
-
s.summary = %q{
|
10
|
+
s.email = ["opensource@polleverywhere.com"]
|
11
|
+
s.homepage = "http://www.github.com/polleverywhere/polleverywhere"
|
12
|
+
s.summary = %q{Integrate Poll Everywhere into your Ruby applications}
|
13
13
|
s.description = %q{An easy way to integrate Poll Everywhere into your Ruby applications.}
|
14
|
-
|
14
|
+
|
15
15
|
s.rubyforge_project = "polleverywhere"
|
16
16
|
s.add_dependency "json"
|
17
|
-
|
17
|
+
# TODO get rid of this dependency by using Ruby Net::HTTP
|
18
|
+
s.add_dependency "rest-client", "~> 1.6.3"
|
18
19
|
|
19
20
|
s.files = `git ls-files`.split("\n")
|
20
21
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -60,6 +60,16 @@ describe "API" do
|
|
60
60
|
it "should update title" do
|
61
61
|
@mcp.title.should eql("My pita bread is moldy")
|
62
62
|
end
|
63
|
+
|
64
|
+
it "should start" do
|
65
|
+
@mcp.start
|
66
|
+
@mcp.state.should eql("opened")
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should stop" do
|
70
|
+
@mcp.stop
|
71
|
+
@mcp.state.should eql("closed")
|
72
|
+
end
|
63
73
|
end
|
64
74
|
|
65
75
|
it "should destroy" do
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: polleverywhere
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Brad Gessler, Steel Fu
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-06-
|
13
|
+
date: 2011-06-27 00:00:00 -06:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -33,11 +33,11 @@ dependencies:
|
|
33
33
|
- - ~>
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 1.6.3
|
36
|
-
type: :
|
36
|
+
type: :runtime
|
37
37
|
version_requirements: *id002
|
38
38
|
description: An easy way to integrate Poll Everywhere into your Ruby applications.
|
39
39
|
email:
|
40
|
-
-
|
40
|
+
- opensource@polleverywhere.com
|
41
41
|
executables: []
|
42
42
|
|
43
43
|
extensions: []
|
@@ -51,6 +51,12 @@ files:
|
|
51
51
|
- Guardfile
|
52
52
|
- README.md
|
53
53
|
- Rakefile
|
54
|
+
- api/build/index.html
|
55
|
+
- api/config.rb
|
56
|
+
- api/config.ru
|
57
|
+
- api/views/index.html.haml
|
58
|
+
- api/views/layout.haml
|
59
|
+
- api/views/stylesheets/site.css.sass
|
54
60
|
- docs/api.haml
|
55
61
|
- lib/polleverywhere.rb
|
56
62
|
- lib/polleverywhere/api.rb
|
@@ -68,7 +74,7 @@ files:
|
|
68
74
|
- spec/lib/polleverywhere_spec.rb
|
69
75
|
- spec/spec_helper.rb
|
70
76
|
has_rdoc: true
|
71
|
-
homepage: http://www.
|
77
|
+
homepage: http://www.github.com/polleverywhere/polleverywhere
|
72
78
|
licenses: []
|
73
79
|
|
74
80
|
post_install_message:
|
@@ -94,7 +100,7 @@ rubyforge_project: polleverywhere
|
|
94
100
|
rubygems_version: 1.5.2
|
95
101
|
signing_key:
|
96
102
|
specification_version: 3
|
97
|
-
summary:
|
103
|
+
summary: Integrate Poll Everywhere into your Ruby applications
|
98
104
|
test_files:
|
99
105
|
- spec/integration/api_spec.rb
|
100
106
|
- spec/lib/polleverywhere_spec.rb
|