bcms_polling 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. data/GPL.txt +674 -0
  2. data/Gemfile +4 -0
  3. data/README.markdown +8 -11
  4. data/{public/bcms/polling → app/assets}/README +0 -0
  5. data/app/assets/javascripts/bcms_polling.js +5 -0
  6. data/{public/bcms/polling → app/assets/javascripts/bcms_polling}/bcms-polling.js +0 -0
  7. data/app/assets/stylesheets/bcms_polling/application.css +13 -0
  8. data/{public/bcms/polling → app/assets/stylesheets/bcms_polling}/bcms-polling.css +0 -0
  9. data/app/controllers/bcms_polling/polling_controller.rb +46 -0
  10. data/app/controllers/bcms_polling/polls_controller.rb +2 -0
  11. data/app/helpers/bcms_polling/application_helper.rb +4 -0
  12. data/app/helpers/{cms → bcms_polling}/polls_helper.rb +1 -1
  13. data/app/models/bcms_polling/poll.rb +38 -0
  14. data/app/models/bcms_polling/poll_response.rb +9 -0
  15. data/app/views/{polling → bcms_polling/polling}/results.html.erb +1 -1
  16. data/app/views/{cms → bcms_polling}/polls/_form.html.erb +1 -2
  17. data/app/views/{cms → bcms_polling}/polls/render.html.erb +3 -3
  18. data/config/routes.rb +3 -0
  19. data/db/bcms_polling.seeds.rb +1 -0
  20. data/db/migrate/20110216195733_create_polls.rb +0 -4
  21. data/db/migrate/20120530182315_v110.rb +8 -0
  22. data/lib/bcms_polling.rb +5 -1
  23. data/lib/bcms_polling/engine.rb +27 -0
  24. data/lib/bcms_polling/route_extensions.rb +13 -0
  25. data/lib/bcms_polling/version.rb +3 -0
  26. data/lib/generators/bcms_polling/install/USAGE +3 -0
  27. data/lib/generators/bcms_polling/install/install_generator.rb +21 -0
  28. data/test/bcms_polling_test.rb +7 -0
  29. data/test/test_helper.rb +9 -32
  30. data/test/unit/models/bcms_polling/poll_response_test.rb +11 -0
  31. data/test/unit/models/bcms_polling/poll_test.rb +52 -0
  32. metadata +82 -66
  33. data/Rakefile +0 -42
  34. data/VERSION +0 -1
  35. data/app/controllers/cms/polls_controller.rb +0 -2
  36. data/app/controllers/polling_controller.rb +0 -44
  37. data/app/models/poll.rb +0 -37
  38. data/app/models/poll_response.rb +0 -4
  39. data/doc/README_FOR_APP +0 -2
  40. data/lib/bcms_polling/routes.rb +0 -12
  41. data/rails/init.rb +0 -5
  42. data/test/performance/browsing_test.rb +0 -9
  43. data/test/unit/models/poll_response_test.rb +0 -9
  44. data/test/unit/models/poll_test.rb +0 -41
metadata CHANGED
@@ -1,107 +1,123 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bcms_polling
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 0
9
- - 3
10
- version: 1.0.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - BrowserMedia
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-02-23 00:00:00 -05:00
19
- default_executable:
20
- dependencies: []
21
-
12
+ date: 2012-05-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: browsercms
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - <
20
+ - !ruby/object:Gem::Version
21
+ version: 3.6.0
22
+ - - ! '>='
23
+ - !ruby/object:Gem::Version
24
+ version: 3.5.0
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: 3.6.0
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: 3.5.0
22
36
  description: Allows for user feedback via short polling questions.
23
37
  email: github@browsermedia.com
24
38
  executables: []
25
-
26
39
  extensions: []
27
-
28
- extra_rdoc_files:
29
- - LICENSE.txt
30
- - README.markdown
31
- files:
32
- - COPYRIGHT.txt
40
+ extra_rdoc_files:
33
41
  - LICENSE.txt
34
42
  - README.markdown
35
- - Rakefile
36
- - VERSION
37
- - app/controllers/cms/polls_controller.rb
38
- - app/controllers/polling_controller.rb
39
- - app/helpers/cms/polls_helper.rb
40
- - app/models/poll.rb
41
- - app/models/poll_response.rb
42
- - app/views/cms/polls/_form.html.erb
43
- - app/views/cms/polls/render.html.erb
44
- - app/views/polling/results.html.erb
43
+ files:
44
+ - app/assets/javascripts/bcms_polling/bcms-polling.js
45
+ - app/assets/javascripts/bcms_polling.js
46
+ - app/assets/README
47
+ - app/assets/stylesheets/bcms_polling/application.css
48
+ - app/assets/stylesheets/bcms_polling/bcms-polling.css
49
+ - app/controllers/bcms_polling/polling_controller.rb
50
+ - app/controllers/bcms_polling/polls_controller.rb
51
+ - app/helpers/bcms_polling/application_helper.rb
52
+ - app/helpers/bcms_polling/polls_helper.rb
53
+ - app/models/bcms_polling/poll.rb
54
+ - app/models/bcms_polling/poll_response.rb
55
+ - app/views/bcms_polling/polling/results.html.erb
56
+ - app/views/bcms_polling/polls/_form.html.erb
57
+ - app/views/bcms_polling/polls/render.html.erb
58
+ - config/routes.rb
59
+ - db/bcms_polling.seeds.rb
45
60
  - db/migrate/20110216195733_create_polls.rb
46
- - doc/README_FOR_APP
61
+ - db/migrate/20120530182315_v110.rb
62
+ - lib/bcms_polling/engine.rb
63
+ - lib/bcms_polling/route_extensions.rb
64
+ - lib/bcms_polling/version.rb
47
65
  - lib/bcms_polling.rb
48
- - lib/bcms_polling/routes.rb
49
- - public/bcms/polling/README
50
- - public/bcms/polling/bcms-polling.css
51
- - public/bcms/polling/bcms-polling.js
52
- - rails/init.rb
66
+ - lib/generators/bcms_polling/install/install_generator.rb
67
+ - lib/generators/bcms_polling/install/USAGE
68
+ - LICENSE.txt
69
+ - README.markdown
70
+ - Gemfile
71
+ - COPYRIGHT.txt
72
+ - GPL.txt
73
+ - test/bcms_polling_test.rb
53
74
  - test/functional/cms/poll_responses_controller_test.rb
54
75
  - test/functional/cms/polls_controller_test.rb
55
76
  - test/functional/poll_responses_controller_test.rb
56
77
  - test/functional/polls_controller_test.rb
57
- - test/performance/browsing_test.rb
58
78
  - test/test_helper.rb
59
79
  - test/unit/helpers/poll_responses_helper_test.rb
60
80
  - test/unit/helpers/polls_helper_test.rb
61
- - test/unit/models/poll_response_test.rb
62
- - test/unit/models/poll_test.rb
63
- has_rdoc: true
81
+ - test/unit/models/bcms_polling/poll_response_test.rb
82
+ - test/unit/models/bcms_polling/poll_test.rb
64
83
  homepage: http://browsercms.org
65
84
  licenses: []
66
-
67
85
  post_install_message:
68
86
  rdoc_options: []
69
-
70
- require_paths:
87
+ require_paths:
71
88
  - lib
72
- required_ruby_version: !ruby/object:Gem::Requirement
89
+ required_ruby_version: !ruby/object:Gem::Requirement
73
90
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- hash: 3
78
- segments:
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ segments:
79
96
  - 0
80
- version: "0"
81
- required_rubygems_version: !ruby/object:Gem::Requirement
97
+ hash: 3673451308358223518
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
99
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ segments:
88
105
  - 0
89
- version: "0"
106
+ hash: 3673451308358223518
90
107
  requirements: []
91
-
92
- rubyforge_project: browsercms
93
- rubygems_version: 1.3.7
108
+ rubyforge_project: bcms_polling
109
+ rubygems_version: 1.8.24
94
110
  signing_key:
95
111
  specification_version: 3
96
112
  summary: A Polling Module for BrowserCMS
97
- test_files:
113
+ test_files:
114
+ - test/bcms_polling_test.rb
98
115
  - test/functional/cms/poll_responses_controller_test.rb
99
116
  - test/functional/cms/polls_controller_test.rb
100
117
  - test/functional/poll_responses_controller_test.rb
101
118
  - test/functional/polls_controller_test.rb
102
- - test/performance/browsing_test.rb
103
119
  - test/test_helper.rb
104
120
  - test/unit/helpers/poll_responses_helper_test.rb
105
121
  - test/unit/helpers/polls_helper_test.rb
106
- - test/unit/models/poll_response_test.rb
107
- - test/unit/models/poll_test.rb
122
+ - test/unit/models/bcms_polling/poll_response_test.rb
123
+ - test/unit/models/bcms_polling/poll_test.rb
data/Rakefile DELETED
@@ -1,42 +0,0 @@
1
- # Add your own tasks in files placed in lib/tasks ending in .rake,
2
- # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
-
4
- require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5
-
6
- require 'rake'
7
- require 'rake/testtask'
8
- require 'rake/rdoctask'
9
-
10
- require 'tasks/rails'
11
-
12
- begin
13
- require 'jeweler'
14
- Jeweler::Tasks.new do |gemspec|
15
- gemspec.name = "bcms_polling"
16
- gemspec.rubyforge_project = "browsercms"
17
- gemspec.summary = "A Polling Module for BrowserCMS"
18
- gemspec.email = "github@browsermedia.com"
19
- gemspec.homepage = "http://browsercms.org"
20
- gemspec.description = "Allows for user feedback via short polling questions."
21
- gemspec.authors = ["BrowserMedia"]
22
- gemspec.files = []
23
- gemspec.files += Dir["app/**/*"]
24
- gemspec.files -= Dir["app/views/layouts/templates/*"]
25
- gemspec.files -= Dir["app/controllers/application_controller.rb"]
26
- gemspec.files -= Dir["app/helpers/application_helper.rb"]
27
- gemspec.files += Dir["doc/**/*"]
28
- gemspec.files += Dir["db/migrate/[0-9]*.rb"].reject {|f| f =~ /_browsercms|_load_seed/ }
29
- gemspec.files += Dir["lib/**/*"]
30
- gemspec.files += Dir["rails/init.rb"]
31
- gemspec.files += Dir["public/bcms/polling/**/*"]
32
- gemspec.files += Dir["README.markdown"]
33
- gemspec.files += Dir["Rakefile"]
34
- gemspec.files += Dir["LICENSE.txt"]
35
- gemspec.files += Dir["COPYRIGHT.txt"]
36
- gemspec.files += Dir["VERSION"]
37
- end
38
- rescue LoadError
39
- puts "Jeweler not available. Install it with: gem install jeweler"
40
- end
41
-
42
- Jeweler::GemcutterTasks.new
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.0.3
@@ -1,2 +0,0 @@
1
- class Cms::PollsController < Cms::ContentBlockController
2
- end
@@ -1,44 +0,0 @@
1
- # Handles the public submissions of answers to poll questions.
2
- class PollingController < ApplicationController
3
- include Cms::PollsHelper
4
- include Cms::Authentication::Controller
5
-
6
- def update
7
- @response = PollResponse.find(params[:id])
8
- unique_key = cookie_key(@response.poll)
9
-
10
- if !cookies[unique_key]
11
- @response.votes += 1
12
- @response.save!
13
-
14
- cookies[unique_key] = {
15
- :value => true,
16
- :expires => 1.year.from_now
17
- }
18
- logger.warn "Saving cookie called '#{unique_key}'"
19
- else
20
- logger.warn "User attempted to submit another answer to the same poll."
21
- end
22
-
23
- render :nothing => true, :status => :ok
24
- end
25
-
26
- def results
27
- @poll = Poll.find(params[:id])
28
- render :layout => false
29
- end
30
-
31
- def reset
32
- @poll = Poll.find(params[:id])
33
-
34
- cookie = cookie_key(@poll)
35
- cookies.delete(cookie)
36
-
37
- redirect_to "/"
38
- end
39
-
40
- private
41
- def cookie_key(poll)
42
- cookie_for(poll)
43
- end
44
- end
data/app/models/poll.rb DELETED
@@ -1,37 +0,0 @@
1
- class Poll < ActiveRecord::Base
2
- acts_as_content_block
3
-
4
- has_many :responses, :class_name => "PollResponse"
5
- accepts_nested_attributes_for :responses, :allow_destroy => true
6
-
7
- validates_presence_of :question
8
-
9
- def total_votes
10
- self.responses.inject(0) { |sum, r| sum += r.votes }
11
- end
12
-
13
- def name
14
- question
15
- end
16
-
17
-
18
- # Overridden to make sure nested attributes (i.e. poll responses) will correctly update.
19
- def update_attributes(attributes)
20
- unless attributes[:responses_attributes].blank?
21
- logger.debug "Forcing update of poll so updated answers are saved."
22
- self.updated_at = Time.now # Force this block to update, regardless of what was submitted.
23
-
24
- else
25
- logger.debug "No poll attributes were submitted."
26
- end
27
- super(attributes)
28
- end
29
-
30
- # Overridden for purely debugging purposes.
31
- def different_from_last_draft?
32
- result = super
33
- logger.debug "Is this poll is different than the last draft? '#{result}'"
34
- result
35
- end
36
-
37
- end
@@ -1,4 +0,0 @@
1
- class PollResponse < ActiveRecord::Base
2
- belongs_to :poll
3
- validates_presence_of :answer
4
- end
data/doc/README_FOR_APP DELETED
@@ -1,2 +0,0 @@
1
- Use this README file to introduce your application and point to useful places in the API for learning more.
2
- Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
@@ -1,12 +0,0 @@
1
- module Cms::Routes
2
- def routes_for_bcms_polling
3
-
4
- poll_results '/polls/:id/results', :controller=>"polling", :action=>'results'
5
- poll_reset '/polls/:id/reset', :controller=>"polling", :action=>'reset'
6
- poll_response '/poll_responses/:id', :controller=>"polling", :action=>'update'
7
- namespace(:cms) do |cms|
8
- cms.content_blocks :poll_responses
9
- cms.content_blocks :polls
10
- end
11
- end
12
- end
data/rails/init.rb DELETED
@@ -1,5 +0,0 @@
1
- require 'browsercms'
2
- gem_root = File.expand_path(File.join(File.dirname(__FILE__), ".."))
3
- Cms.add_to_rails_paths gem_root
4
- Cms.add_generator_paths gem_root, "db/migrate/[0-9]*_*.rb"
5
- Cms.add_generator_paths gem_root, "public/bcms/polling/**/*"
@@ -1,9 +0,0 @@
1
- require 'test_helper'
2
- require 'performance_test_help'
3
-
4
- # Profiling results for each test method are written to tmp/performance.
5
- class BrowsingTest < ActionController::PerformanceTest
6
- def test_homepage
7
- get '/'
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '/../../test_helper')
2
-
3
- class PollResponseTest < ActiveSupport::TestCase
4
-
5
- test "should be able to create new block" do
6
- assert PollResponse.create!(:answer=>"Non-blank")
7
- end
8
-
9
- end
@@ -1,41 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '/../../test_helper')
2
-
3
- class PollTest < ActiveSupport::TestCase
4
-
5
- test "should be able to create new block" do
6
- assert Poll.create!(:question=>"A?")
7
- end
8
-
9
-
10
- test "Should have responses" do
11
- p = Poll.create!(:question=>"What color?")
12
-
13
- p.responses << PollResponse.create!(:answer=>"Red")
14
- p.responses << PollResponse.create!(:answer=>"Blue")
15
-
16
- found = Poll.find(p.id)
17
- assert_equal 2, p.responses.size
18
-
19
- end
20
-
21
- test "Should have responses unpublished" do
22
- p = Poll.create!(:question=>"What color?")
23
-
24
- p.responses << PollResponse.create!(:answer=>"Red")
25
- p.responses << PollResponse.create!(:answer=>"Blue")
26
-
27
- found = Poll.find(p.id)
28
- found = found.as_of_draft_version
29
- assert_equal 2, p.responses.size
30
-
31
- end
32
-
33
- test "Binding responses as nested attributes for new object" do
34
- poll = Poll.create!(:question=>"Are you different?")
35
- poll.update_attributes({ :responses_attributes=>{"0"=>{"answer"=>"Answer 1"}}})
36
- assert_equal 1, poll.responses.size
37
- assert_equal 1, PollResponse.count
38
-
39
- end
40
-
41
- end