refinerycms-polls 0.0.1.dev
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.
- data/.gitignore +55 -0
- data/Gemfile +71 -0
- data/Guardfile +27 -0
- data/README.md +35 -0
- data/Rakefile +20 -0
- data/app/assets/images/refinery/polls/pollbg.gif +0 -0
- data/app/assets/javascripts/refinery/polls/poll_form.js +8 -0
- data/app/assets/stylesheets/refinery/polls/poll_form.css.scss +31 -0
- data/app/controllers/refinery/polls/admin/answers_controller.rb +55 -0
- data/app/controllers/refinery/polls/admin/questions_controller.rb +11 -0
- data/app/controllers/refinery/polls/questions_controller.rb +62 -0
- data/app/models/refinery/polls/answer.rb +39 -0
- data/app/models/refinery/polls/question.rb +60 -0
- data/app/models/refinery/polls/setting.rb +62 -0
- data/app/models/refinery/polls/vote.rb +34 -0
- data/app/views/refinery/polls/admin/answers/_actions.html.erb +25 -0
- data/app/views/refinery/polls/admin/answers/_answer.html.erb +16 -0
- data/app/views/refinery/polls/admin/answers/_answers.html.erb +2 -0
- data/app/views/refinery/polls/admin/answers/_form.html.erb +17 -0
- data/app/views/refinery/polls/admin/answers/_records.html.erb +18 -0
- data/app/views/refinery/polls/admin/answers/_sorteable_list.html.erb +5 -0
- data/app/views/refinery/polls/admin/answers/edit.html.erb +1 -0
- data/app/views/refinery/polls/admin/answers/index.html.erb +7 -0
- data/app/views/refinery/polls/admin/answers/new.html.erb +1 -0
- data/app/views/refinery/polls/admin/questions/_actions.html.erb +25 -0
- data/app/views/refinery/polls/admin/questions/_form.html.erb +29 -0
- data/app/views/refinery/polls/admin/questions/_question.html.erb +22 -0
- data/app/views/refinery/polls/admin/questions/_questions.html.erb +2 -0
- data/app/views/refinery/polls/admin/questions/_records.html.erb +18 -0
- data/app/views/refinery/polls/admin/questions/_sortable_list.html.erb +5 -0
- data/app/views/refinery/polls/admin/questions/edit.html.erb +1 -0
- data/app/views/refinery/polls/admin/questions/index.html.erb +7 -0
- data/app/views/refinery/polls/admin/questions/new.html.erb +1 -0
- data/app/views/refinery/polls/questions/_answers_form.html.erb +10 -0
- data/app/views/refinery/polls/questions/_poll.html.erb +10 -0
- data/app/views/refinery/polls/questions/_results.html.erb +14 -0
- data/app/views/refinery/polls/questions/index.html.erb +11 -0
- data/app/views/refinery/polls/questions/results.html.erb +0 -0
- data/app/views/refinery/polls/questions/show.html.erb +39 -0
- data/app/views/refinery/polls/questions/submit.js.erb +1 -0
- data/config/locales/en.yml +44 -0
- data/config/locales/es.yml +31 -0
- data/config/locales/fr.yml +30 -0
- data/config/locales/nb.yml +30 -0
- data/config/locales/nl.yml +30 -0
- data/config/routes.rb +33 -0
- data/db/migrate/1_create_polls_questions.rb +41 -0
- data/db/migrate/2_create_polls_answers.rb +25 -0
- data/db/migrate/3_create_polls_votes.rb +14 -0
- data/db/migrate/4_add_slug_to_questions_and_answers.rb +9 -0
- data/db/migrate/5_create_polls_translations.rb +22 -0
- data/db/seeds.rb +24 -0
- data/lib/generators/refinery/polls_generator.rb +25 -0
- data/lib/generators/refinery/templates/config/initializers/refinery/poll.rb.erb +4 -0
- data/lib/refinery/polls/configuration.rb +10 -0
- data/lib/refinery/polls/engine.rb +26 -0
- data/lib/refinery/polls/version.rb +18 -0
- data/lib/refinery/polls.rb +21 -0
- data/lib/refinerycms-polls.rb +1 -0
- data/lib/tasks/refinery/polls.rake +13 -0
- data/refinerycms-polls.gemspec +27 -0
- data/spec/models/refinery/polls/question_spec.rb +18 -0
- data/spec/requests/refinery/polls/admin/questions_spec.rb +101 -0
- data/spec/spec_helper.rb +50 -0
- data/spec/support/factories/refinery/polls.rb +7 -0
- data/tasks/rspec.rake +6 -0
- data/tasks/testing.rake +8 -0
- metadata +163 -0
@@ -0,0 +1,18 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Polls
|
3
|
+
class Version
|
4
|
+
@major = 0
|
5
|
+
@minor = 0
|
6
|
+
@tiny = 1
|
7
|
+
@build = 'dev'
|
8
|
+
|
9
|
+
class << self
|
10
|
+
attr_reader :major, :minor, :tiny, :build
|
11
|
+
|
12
|
+
def to_s
|
13
|
+
[@major, @minor, @tiny, @build].compact.join('.')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'refinerycms-core'
|
2
|
+
|
3
|
+
module Refinery
|
4
|
+
autoload :PollsGenerator, 'generators/refinery/polls_generator'
|
5
|
+
|
6
|
+
module Polls
|
7
|
+
require 'refinery/polls/engine'
|
8
|
+
require 'refinery/polls/configuration'
|
9
|
+
class << self
|
10
|
+
attr_writer :root
|
11
|
+
|
12
|
+
def root
|
13
|
+
@root ||= Pathname.new(File.expand_path('../../../', __FILE__))
|
14
|
+
end
|
15
|
+
|
16
|
+
def factory_paths
|
17
|
+
@factory_paths ||= [ root.join('spec', 'factories').to_s ]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'refinery/polls'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Encoding: UTF-8
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
require 'refinery/polls/version'
|
4
|
+
|
5
|
+
version = Refinery::Polls::Version.to_s
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.name = %q{refinerycms-polls}
|
10
|
+
s.version = version
|
11
|
+
s.description = 'Ruby on Rails Polls extension for Refinery CMS'
|
12
|
+
s.date = '2012-07-03'
|
13
|
+
s.summary = 'Polls extension for Refinery CMS'
|
14
|
+
s.require_paths = %w(lib)
|
15
|
+
s.files = `git ls-files`.split("\n") #Dir["{app,config,db,lib}/**/*"] + ["readme.md"]
|
16
|
+
s.test_files = `git ls-files -- spec/*`.split("\n")
|
17
|
+
s.authors = ['Agustin Viñao']
|
18
|
+
s.email = %q{agustinvinao@gmail.com}
|
19
|
+
s.homepage = 'https://github.com/agustinvinao/refinerycms-polls'
|
20
|
+
|
21
|
+
# Runtime dependencies
|
22
|
+
s.add_dependency 'refinerycms-core' , '~> 2.0.2'
|
23
|
+
s.add_dependency 'refinerycms-settings' , '~> 2.0.0'
|
24
|
+
|
25
|
+
# Development dependencies (usually used for testing)
|
26
|
+
s.add_development_dependency 'refinerycms-testing' , '~> 2.0.2'
|
27
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Refinery
|
4
|
+
module Polls
|
5
|
+
describe quesiton do
|
6
|
+
describe "validations" do
|
7
|
+
subject do
|
8
|
+
FactoryGirl.create(:question,
|
9
|
+
:title => "Refinery CMS")
|
10
|
+
end
|
11
|
+
|
12
|
+
it { should be_valid }
|
13
|
+
its(:errors) { should be_empty }
|
14
|
+
its(:title) { should == "Refinery CMS" }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "spec_helper"
|
3
|
+
|
4
|
+
describe Refinery do
|
5
|
+
describe "Polls" do
|
6
|
+
describe "Admin" do
|
7
|
+
describe "questions" do
|
8
|
+
login_refinery_user
|
9
|
+
|
10
|
+
describe "questions list" do
|
11
|
+
before(:each) do
|
12
|
+
FactoryGirl.create(:question, :title => "UniqueTitleOne")
|
13
|
+
FactoryGirl.create(:question, :title => "UniqueTitleTwo")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "shows two items" do
|
17
|
+
visit refinery.polls_admin_questions_path
|
18
|
+
page.should have_content("UniqueTitleOne")
|
19
|
+
page.should have_content("UniqueTitleTwo")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "create" do
|
24
|
+
before(:each) do
|
25
|
+
visit refinery.polls_admin_questions_path
|
26
|
+
|
27
|
+
click_link "Add New Question"
|
28
|
+
end
|
29
|
+
|
30
|
+
context "valid data" do
|
31
|
+
it "should succeed" do
|
32
|
+
fill_in "Title", :with => "This is a test of the first string field"
|
33
|
+
click_button "Save"
|
34
|
+
|
35
|
+
page.should have_content("'This is a test of the first string field' was successfully added.")
|
36
|
+
Refinery::Polls::Question.count.should == 1
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "invalid data" do
|
41
|
+
it "should fail" do
|
42
|
+
click_button "Save"
|
43
|
+
|
44
|
+
page.should have_content("Title can't be blank")
|
45
|
+
Refinery::Polls::Question.count.should == 0
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "duplicate" do
|
50
|
+
before(:each) { FactoryGirl.create(:question, :title => "UniqueTitle") }
|
51
|
+
|
52
|
+
it "should fail" do
|
53
|
+
visit refinery.polls_admin_questions_path
|
54
|
+
|
55
|
+
click_link "Add New Question"
|
56
|
+
|
57
|
+
fill_in "Title", :with => "UniqueTitle"
|
58
|
+
click_button "Save"
|
59
|
+
|
60
|
+
page.should have_content("There were problems")
|
61
|
+
Refinery::Polls::Question.count.should == 1
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "edit" do
|
68
|
+
before(:each) { FactoryGirl.create(:question, :title => "A title") }
|
69
|
+
|
70
|
+
it "should succeed" do
|
71
|
+
visit refinery.polls_admin_questions_path
|
72
|
+
|
73
|
+
within ".actions" do
|
74
|
+
click_link "Edit this question"
|
75
|
+
end
|
76
|
+
|
77
|
+
fill_in "Title", :with => "A different title"
|
78
|
+
click_button "Save"
|
79
|
+
|
80
|
+
page.should have_content("'A different title' was successfully updated.")
|
81
|
+
page.should have_no_content("A title")
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe "destroy" do
|
86
|
+
before(:each) { FactoryGirl.create(:question, :title => "UniqueTitleOne") }
|
87
|
+
|
88
|
+
it "should succeed" do
|
89
|
+
visit refinery.polls_admin_questions_path
|
90
|
+
|
91
|
+
click_link "Remove this question forever"
|
92
|
+
|
93
|
+
page.should have_content("'UniqueTitleOne' was successfully removed.")
|
94
|
+
Refinery::Polls::Question.count.should == 0
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
def setup_environment
|
2
|
+
# Configure Rails Environment
|
3
|
+
ENV["RAILS_ENV"] ||= 'test'
|
4
|
+
|
5
|
+
require File.expand_path("../dummy/config/environment", __FILE__)
|
6
|
+
|
7
|
+
require 'rspec/rails'
|
8
|
+
require 'capybara/rspec'
|
9
|
+
|
10
|
+
Rails.backtrace_cleaner.remove_silencers!
|
11
|
+
|
12
|
+
RSpec.configure do |config|
|
13
|
+
config.mock_with :rspec
|
14
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
15
|
+
config.filter_run :focus => true
|
16
|
+
config.run_all_when_everything_filtered = true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def each_run
|
21
|
+
Rails.cache.clear
|
22
|
+
ActiveSupport::Dependencies.clear
|
23
|
+
FactoryGirl.reload
|
24
|
+
|
25
|
+
# Requires supporting files with custom matchers and macros, etc,
|
26
|
+
# in ./support/ and its subdirectories including factories.
|
27
|
+
([Rails.root.to_s] | ::Refinery::Plugins.registered.pathnames).map{|p|
|
28
|
+
Dir[File.join(p, 'spec', 'support', '**', '*.rb').to_s]
|
29
|
+
}.flatten.sort.each do |support_file|
|
30
|
+
require support_file
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# If spork is available in the Gemfile it'll be used but we don't force it.
|
35
|
+
unless (begin; require 'spork'; rescue LoadError; nil end).nil?
|
36
|
+
Spork.prefork do
|
37
|
+
# Loading more in this block will cause your tests to run faster. However,
|
38
|
+
# if you change any configuration or code from libraries loaded here, you'll
|
39
|
+
# need to restart spork for it take effect.
|
40
|
+
setup_environment
|
41
|
+
end
|
42
|
+
|
43
|
+
Spork.each_run do
|
44
|
+
# This code will be run each time you run your specs.
|
45
|
+
each_run
|
46
|
+
end
|
47
|
+
else
|
48
|
+
setup_environment
|
49
|
+
each_run
|
50
|
+
end
|
data/tasks/rspec.rake
ADDED
data/tasks/testing.rake
ADDED
metadata
ADDED
@@ -0,0 +1,163 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: refinerycms-polls
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1.dev
|
5
|
+
prerelease: 6
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Agustin Viñao
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-07-03 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: refinerycms-core
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.0.2
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.0.2
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: refinerycms-settings
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 2.0.0
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.0.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: refinerycms-testing
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 2.0.2
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.0.2
|
62
|
+
description: Ruby on Rails Polls extension for Refinery CMS
|
63
|
+
email: agustinvinao@gmail.com
|
64
|
+
executables: []
|
65
|
+
extensions: []
|
66
|
+
extra_rdoc_files: []
|
67
|
+
files:
|
68
|
+
- .gitignore
|
69
|
+
- Gemfile
|
70
|
+
- Guardfile
|
71
|
+
- README.md
|
72
|
+
- Rakefile
|
73
|
+
- app/assets/images/refinery/polls/pollbg.gif
|
74
|
+
- app/assets/javascripts/refinery/polls/poll_form.js
|
75
|
+
- app/assets/stylesheets/refinery/polls/poll_form.css.scss
|
76
|
+
- app/controllers/refinery/polls/admin/answers_controller.rb
|
77
|
+
- app/controllers/refinery/polls/admin/questions_controller.rb
|
78
|
+
- app/controllers/refinery/polls/questions_controller.rb
|
79
|
+
- app/models/refinery/polls/answer.rb
|
80
|
+
- app/models/refinery/polls/question.rb
|
81
|
+
- app/models/refinery/polls/setting.rb
|
82
|
+
- app/models/refinery/polls/vote.rb
|
83
|
+
- app/views/refinery/polls/admin/answers/_actions.html.erb
|
84
|
+
- app/views/refinery/polls/admin/answers/_answer.html.erb
|
85
|
+
- app/views/refinery/polls/admin/answers/_answers.html.erb
|
86
|
+
- app/views/refinery/polls/admin/answers/_form.html.erb
|
87
|
+
- app/views/refinery/polls/admin/answers/_records.html.erb
|
88
|
+
- app/views/refinery/polls/admin/answers/_sorteable_list.html.erb
|
89
|
+
- app/views/refinery/polls/admin/answers/edit.html.erb
|
90
|
+
- app/views/refinery/polls/admin/answers/index.html.erb
|
91
|
+
- app/views/refinery/polls/admin/answers/new.html.erb
|
92
|
+
- app/views/refinery/polls/admin/questions/_actions.html.erb
|
93
|
+
- app/views/refinery/polls/admin/questions/_form.html.erb
|
94
|
+
- app/views/refinery/polls/admin/questions/_question.html.erb
|
95
|
+
- app/views/refinery/polls/admin/questions/_questions.html.erb
|
96
|
+
- app/views/refinery/polls/admin/questions/_records.html.erb
|
97
|
+
- app/views/refinery/polls/admin/questions/_sortable_list.html.erb
|
98
|
+
- app/views/refinery/polls/admin/questions/edit.html.erb
|
99
|
+
- app/views/refinery/polls/admin/questions/index.html.erb
|
100
|
+
- app/views/refinery/polls/admin/questions/new.html.erb
|
101
|
+
- app/views/refinery/polls/questions/_answers_form.html.erb
|
102
|
+
- app/views/refinery/polls/questions/_poll.html.erb
|
103
|
+
- app/views/refinery/polls/questions/_results.html.erb
|
104
|
+
- app/views/refinery/polls/questions/index.html.erb
|
105
|
+
- app/views/refinery/polls/questions/results.html.erb
|
106
|
+
- app/views/refinery/polls/questions/show.html.erb
|
107
|
+
- app/views/refinery/polls/questions/submit.js.erb
|
108
|
+
- config/locales/en.yml
|
109
|
+
- config/locales/es.yml
|
110
|
+
- config/locales/fr.yml
|
111
|
+
- config/locales/nb.yml
|
112
|
+
- config/locales/nl.yml
|
113
|
+
- config/routes.rb
|
114
|
+
- db/migrate/1_create_polls_questions.rb
|
115
|
+
- db/migrate/2_create_polls_answers.rb
|
116
|
+
- db/migrate/3_create_polls_votes.rb
|
117
|
+
- db/migrate/4_add_slug_to_questions_and_answers.rb
|
118
|
+
- db/migrate/5_create_polls_translations.rb
|
119
|
+
- db/seeds.rb
|
120
|
+
- lib/generators/refinery/polls_generator.rb
|
121
|
+
- lib/generators/refinery/templates/config/initializers/refinery/poll.rb.erb
|
122
|
+
- lib/refinery/polls.rb
|
123
|
+
- lib/refinery/polls/configuration.rb
|
124
|
+
- lib/refinery/polls/engine.rb
|
125
|
+
- lib/refinery/polls/version.rb
|
126
|
+
- lib/refinerycms-polls.rb
|
127
|
+
- lib/tasks/refinery/polls.rake
|
128
|
+
- refinerycms-polls.gemspec
|
129
|
+
- spec/models/refinery/polls/question_spec.rb
|
130
|
+
- spec/requests/refinery/polls/admin/questions_spec.rb
|
131
|
+
- spec/spec_helper.rb
|
132
|
+
- spec/support/factories/refinery/polls.rb
|
133
|
+
- tasks/rspec.rake
|
134
|
+
- tasks/testing.rake
|
135
|
+
homepage: https://github.com/agustinvinao/refinerycms-polls
|
136
|
+
licenses: []
|
137
|
+
post_install_message:
|
138
|
+
rdoc_options: []
|
139
|
+
require_paths:
|
140
|
+
- lib
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
none: false
|
143
|
+
requirements:
|
144
|
+
- - ! '>='
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
149
|
+
requirements:
|
150
|
+
- - ! '>'
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 1.3.1
|
153
|
+
requirements: []
|
154
|
+
rubyforge_project:
|
155
|
+
rubygems_version: 1.8.24
|
156
|
+
signing_key:
|
157
|
+
specification_version: 3
|
158
|
+
summary: Polls extension for Refinery CMS
|
159
|
+
test_files:
|
160
|
+
- spec/models/refinery/polls/question_spec.rb
|
161
|
+
- spec/requests/refinery/polls/admin/questions_spec.rb
|
162
|
+
- spec/spec_helper.rb
|
163
|
+
- spec/support/factories/refinery/polls.rb
|