reviewable 0.0.1

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 (104) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +23 -0
  5. data/app/assets/javascripts/reviewable/application.js +13 -0
  6. data/app/assets/stylesheets/reviewable/application.css +15 -0
  7. data/app/controllers/reviewable/questions_controller.rb +58 -0
  8. data/app/controllers/reviewable/reviewable_controller.rb +5 -0
  9. data/app/controllers/reviewable/reviews_controller.rb +58 -0
  10. data/app/helpers/reviewable/application_helper.rb +4 -0
  11. data/app/models/reviewable/question.rb +37 -0
  12. data/app/models/reviewable/review.rb +24 -0
  13. data/app/views/layouts/reviewable/application.html.erb +14 -0
  14. data/app/views/reviewable/questions/_form.html.erb +28 -0
  15. data/app/views/reviewable/questions/_question.html.erb +10 -0
  16. data/app/views/reviewable/questions/_question.json.jbuilder +10 -0
  17. data/app/views/reviewable/questions/edit.html.erb +3 -0
  18. data/app/views/reviewable/questions/index.html.erb +21 -0
  19. data/app/views/reviewable/questions/index.json.jbuilder +5 -0
  20. data/app/views/reviewable/questions/new.html.erb +3 -0
  21. data/config/routes.rb +3 -0
  22. data/db/migrate/20141013142401_enable_uuid_ossp_extension.rb +7 -0
  23. data/db/migrate/20141013142552_create_reviewable_reviews.rb +15 -0
  24. data/db/migrate/20141013145632_create_reviewable_questions.rb +15 -0
  25. data/lib/reviewable.rb +4 -0
  26. data/lib/reviewable/acts_as_reviewable.rb +25 -0
  27. data/lib/reviewable/engine.rb +22 -0
  28. data/lib/reviewable/version.rb +3 -0
  29. data/lib/tasks/reviewable_tasks.rake +4 -0
  30. data/spec/dummy/README.rdoc +28 -0
  31. data/spec/dummy/Rakefile +6 -0
  32. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  33. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  34. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  35. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  36. data/spec/dummy/app/models/product.rb +4 -0
  37. data/spec/dummy/app/models/user.rb +2 -0
  38. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  39. data/spec/dummy/bin/bundle +3 -0
  40. data/spec/dummy/bin/rails +4 -0
  41. data/spec/dummy/bin/rake +4 -0
  42. data/spec/dummy/config.ru +4 -0
  43. data/spec/dummy/config/application.rb +23 -0
  44. data/spec/dummy/config/boot.rb +5 -0
  45. data/spec/dummy/config/database.yml +85 -0
  46. data/spec/dummy/config/environment.rb +5 -0
  47. data/spec/dummy/config/environments/development.rb +37 -0
  48. data/spec/dummy/config/environments/production.rb +78 -0
  49. data/spec/dummy/config/environments/test.rb +39 -0
  50. data/spec/dummy/config/initializers/assets.rb +8 -0
  51. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  52. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  53. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  54. data/spec/dummy/config/initializers/inflections.rb +16 -0
  55. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  56. data/spec/dummy/config/initializers/session_store.rb +3 -0
  57. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  58. data/spec/dummy/config/locales/en.yml +23 -0
  59. data/spec/dummy/config/routes.rb +4 -0
  60. data/spec/dummy/config/secrets.yml +22 -0
  61. data/spec/dummy/db/development.sqlite3 +0 -0
  62. data/spec/dummy/db/migrate/20141013173317_create_products.rb +9 -0
  63. data/spec/dummy/db/migrate/20141013174327_create_users.rb +9 -0
  64. data/spec/dummy/db/schema.rb +56 -0
  65. data/spec/dummy/log/development.log +256 -0
  66. data/spec/dummy/log/test.log +41431 -0
  67. data/spec/dummy/public/404.html +67 -0
  68. data/spec/dummy/public/422.html +67 -0
  69. data/spec/dummy/public/500.html +66 -0
  70. data/spec/dummy/public/favicon.ico +0 -0
  71. data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  72. data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  73. data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  74. data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  75. data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  76. data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  77. data/spec/dummy/tmp/capybara/capybara-201410141638119443873212.html +24 -0
  78. data/spec/dummy/tmp/capybara/capybara-201410141807209663577120.html +34 -0
  79. data/spec/dummy/tmp/capybara/capybara-201410141808528516645046.html +34 -0
  80. data/spec/dummy/tmp/capybara/capybara-201410141809478831156886.html +34 -0
  81. data/spec/dummy/tmp/capybara/capybara-201410141811022811314427.html +34 -0
  82. data/spec/dummy/tmp/capybara/capybara-201410141813201391325985.html +34 -0
  83. data/spec/dummy/tmp/capybara/capybara-201410141855296114330585.html +86 -0
  84. data/spec/dummy/tmp/capybara/capybara-201410141857326053813040.html +34 -0
  85. data/spec/dummy/tmp/capybara/capybara-201410141857482438637842.html +35 -0
  86. data/spec/dummy/tmp/capybara/capybara-201410141858304336368395.html +35 -0
  87. data/spec/dummy/tmp/capybara/capybara-20141014185925908498887.html +86 -0
  88. data/spec/dummy/tmp/capybara/capybara-201410141904184954015862.html +35 -0
  89. data/spec/dummy/tmp/capybara/capybara-201410141905062396116920.html +46 -0
  90. data/spec/dummy/tmp/capybara/capybara-201410141905261123020644.html +46 -0
  91. data/spec/factories/product.rb +7 -0
  92. data/spec/factories/question.rb +25 -0
  93. data/spec/factories/review.rb +22 -0
  94. data/spec/factories/user.rb +7 -0
  95. data/spec/features/questions/question_create_spec.rb +43 -0
  96. data/spec/features/questions/question_delete_spec.rb +30 -0
  97. data/spec/features/questions/question_edit_spec.rb +106 -0
  98. data/spec/features/questions/question_index_spec.rb +23 -0
  99. data/spec/models/acts_as_reviewable_spec.rb +12 -0
  100. data/spec/models/reviewable/question_spec.rb +27 -0
  101. data/spec/models/reviewable/review_spec.rb +61 -0
  102. data/spec/rails_helper.rb +60 -0
  103. data/spec/spec_helper.rb +78 -0
  104. metadata +263 -0
@@ -0,0 +1,106 @@
1
+ require 'rails_helper'
2
+
3
+
4
+ # Feature: question edit
5
+ # As a Admin
6
+ # I want to edit a question
7
+ # So it appears differently
8
+ feature 'question edit', :js do
9
+
10
+ before(:all) do
11
+ @question = create(:question)
12
+ end
13
+
14
+ after(:all) do
15
+ @question.destroy
16
+ end
17
+
18
+
19
+ before(:each) do
20
+ visit edit_question_path(@question)
21
+ end
22
+
23
+ let(:question) {@question}
24
+
25
+ # Scenario: Admin changes question text
26
+ # Given a question exists
27
+ # When I change the question text
28
+ # Then I see the new text
29
+ scenario 'admin changes question text' do
30
+ visit edit_question_path(question)
31
+
32
+ fill_in 'question_question_text', :with => 'new question'
33
+ click_button 'Update'
34
+ expect(current_path).to eq questions_path
35
+ question.reload
36
+ expect(question.question_text).to eq 'new question'
37
+ end
38
+
39
+
40
+ # Scenario: Admin changes question type
41
+ # Given a question exists
42
+ # When I change the question type to integer
43
+ # Then the details change
44
+ scenario 'admin changes question text' do
45
+ visit edit_question_path(question)
46
+
47
+ select 'integer', from: 'question_question_type'
48
+ fill_in 'question_answer_min', with: '1'
49
+ fill_in 'question_answer_max', with: '5'
50
+ click_button 'Update'
51
+ expect(current_path).to eq questions_path
52
+ question.reload
53
+ expect(question.question_type).to eq 'integer'
54
+ expect(question.answer_min).to eq 1
55
+ expect(question.answer_max).to eq 5
56
+ end
57
+
58
+
59
+ # Scenario: Admin makes a select question
60
+ # Given a question exists
61
+ # When I change question type to select
62
+ # And I provide pipe separated options
63
+ # Then the details change
64
+ scenario 'admin changes question text' do
65
+ visit edit_question_path(question)
66
+
67
+ select 'select', from: 'question_question_type'
68
+ fill_in 'question_answer_options_string', with: 'great|ok|bad'
69
+ click_button 'Update'
70
+ expect(current_path).to eq questions_path
71
+ question.reload
72
+ expect(question.answer_options_string).to eq 'great|ok|bad'
73
+ end
74
+
75
+
76
+ # Scenario: Admin enables question
77
+ # Given a question exists
78
+ # When I enable the question
79
+ # Then it's included in enabled questions
80
+ scenario 'admin enables question' do
81
+ question.update(enabled: false)
82
+ visit edit_question_path(question)
83
+
84
+ check 'question_enabled'
85
+ click_button 'Update'
86
+ expect(current_path).to eq questions_path
87
+ expect(Reviewable::Question.enabled).to include(question)
88
+ end
89
+
90
+
91
+ # # Scenario: Admin enables question
92
+ # # Given a question exists
93
+ # # When I enable the question
94
+ # # Then it's included in enabled questions
95
+ # scenario 'admin disables question' do
96
+ # question.update(enabled: true)
97
+ #
98
+ # visit edit_question_path(question)
99
+ #
100
+ # uncheck 'question_enabled'
101
+ # click_button 'Update'
102
+ # expect(current_path).to eq questions_path
103
+ # expect(Reviewable::Question.enabled).not_to include(question)
104
+ # end
105
+
106
+ end
@@ -0,0 +1,23 @@
1
+ require 'rails_helper'
2
+
3
+
4
+ # Feature: questions index page
5
+ # As a admin
6
+ # I want to see a list of questions
7
+ # So I can see all questions
8
+ feature 'question index page' do
9
+
10
+
11
+ # Scenario: question listed on index page
12
+ # Given I am signed in
13
+ # When I visit the question index page
14
+ # Then I see all question texts
15
+ scenario 'admin sees all questions' do
16
+ questions = create_list(:question, 5)
17
+ visit questions_path
18
+ questions.each do |q|
19
+ expect(page).to have_content q.question_text
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,12 @@
1
+ require 'rails_helper'
2
+
3
+ module Reviewable
4
+ RSpec.describe Product, :type => :model do
5
+
6
+ it { should have_many(:reviews) }
7
+ it { should have_many(:reviewers).through(:reviews) }
8
+ it { should accept_nested_attributes_for(:reviews) }
9
+
10
+
11
+ end
12
+ end
@@ -0,0 +1,27 @@
1
+ require 'rails_helper'
2
+
3
+ module Reviewable
4
+ RSpec.describe Question, :type => :model do
5
+
6
+ it { should validate_presence_of(:question_text) }
7
+ it { should validate_presence_of(:question_type) }
8
+ it { should validate_presence_of(:slug) }
9
+ it { should validate_uniqueness_of(:slug) }
10
+ it { should validate_inclusion_of(:question_type).in_array(Question::TYPES) }
11
+
12
+ it "returns only enabled questions" do
13
+ enabled_questions = create_list(:question, 5, :enabled)
14
+ disabled_questions = create_list(:question, 5, :disabled)
15
+
16
+ expect(Question.enabled).to match_array enabled_questions
17
+ end
18
+
19
+ pending "auto generates slug if not provided"
20
+
21
+ it 'returns answer_options_string as a stripped array' do
22
+ question = create(:question, question_type: 'select', answer_options_string: 'great | ok | bad')
23
+ expect(question.answer_options).to match_array ['great', 'ok', 'bad']
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,61 @@
1
+ require 'rails_helper'
2
+
3
+ module Reviewable
4
+ RSpec.describe Review, :type => :model do
5
+
6
+ before(:all) do
7
+ questions = create_list(:question, 5, :enabled)
8
+ questions += create_list(:question, 5, :disabled)
9
+ end
10
+
11
+ after(:all) do
12
+ Question.destroy_all
13
+ end
14
+
15
+ it "creates a review with all default enabled questions" do
16
+ review = Review.create
17
+ expect(review.results.keys).to match_array Question.enabled.pluck(:id).map(&:to_s)
18
+ expect(review.results.values.uniq).to eq [""]
19
+ end
20
+
21
+ it "generates a uuid on create" do
22
+ review = Review.create
23
+ review.reload
24
+ expect(review.uuid).not_to be_blank
25
+ end
26
+
27
+
28
+ it "returns submitted reviews only" do
29
+ submitted_reviews = create_list(:review, 5, :submitted)
30
+ unsubmitted_reviews = create_list(:review, 5, :unsubmitted)
31
+
32
+ expect(Review.submitted).to match_array submitted_reviews
33
+ end
34
+
35
+ it "returns unsubmitted reviews only" do
36
+ submitted_reviews = create_list(:review, 5, :submitted)
37
+ unsubmitted_reviews = create_list(:review, 5, :unsubmitted)
38
+
39
+ expect(Review.unsubmitted).to match_array unsubmitted_reviews
40
+ end
41
+
42
+ it "doesn't let reviewer review same reviewable object twice" do
43
+ review = create(:review)
44
+ expect {
45
+ create(:review, reviewable_object: review.reviewable_object, reviewer: review.reviewer)
46
+ }.to raise_error ActiveRecord::RecordInvalid
47
+ end
48
+
49
+ it "returns results from enabled questions only" do
50
+ results = Question.all.inject({}) {|h,q| h[q.id] = 'answer blah'; h}
51
+ review = create(:review, results: results)
52
+ expect(review.sanitized_results.keys).to match_array Question.enabled.pluck(:id).map(&:to_s)
53
+ end
54
+
55
+ pending 'validates integer answer within range'
56
+
57
+ pending 'returns rating average (int questions only) for a collection of records'
58
+
59
+
60
+ end
61
+ end
@@ -0,0 +1,60 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require 'spec_helper'
4
+ require File.expand_path("../dummy/config/environment", __FILE__)
5
+ require 'rspec/rails'
6
+ require 'factory_girl_rails'
7
+ require 'shoulda/matchers'
8
+ require 'factories/question'
9
+ require 'factories/review'
10
+ require 'factories/product'
11
+ require 'factories/user'
12
+ require 'capybara/rspec'
13
+ require 'capybara/poltergeist'
14
+
15
+
16
+ # Requires supporting ruby files with custom matchers and macros, etc, in
17
+ # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
18
+ # run as spec files by default. This means that files in spec/support that end
19
+ # in _spec.rb will both be required and run as specs, causing the specs to be
20
+ # run twice. It is recommended that you do not name files matching this glob to
21
+ # end with _spec.rb. You can configure this pattern with the --pattern
22
+ # option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
23
+ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
24
+
25
+ # Checks for pending migrations before tests are run.
26
+ # If you are not using ActiveRecord, you can remove this line.
27
+ ActiveRecord::Migration.maintain_test_schema!
28
+
29
+
30
+ Capybara.javascript_driver = :poltergeist
31
+
32
+ RSpec.configure do |config|
33
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
34
+ # config.fixture_path = "#{::Rails.root}/spec/fixtures"
35
+
36
+ config.include FactoryGirl::Syntax::Methods
37
+
38
+ config.include Reviewable::Engine.routes.url_helpers
39
+
40
+
41
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
42
+ # examples within a transaction, remove the following line or assign false
43
+ # instead of true.
44
+ config.use_transactional_fixtures = true
45
+
46
+ # RSpec Rails can automatically mix in different behaviours to your tests
47
+ # based on their file location, for example enabling you to call `get` and
48
+ # `post` in specs under `spec/controllers`.
49
+ #
50
+ # You can disable this behaviour by removing the line below, and instead
51
+ # explicitly tag your specs with their type, e.g.:
52
+ #
53
+ # RSpec.describe UsersController, :type => :controller do
54
+ # # ...
55
+ # end
56
+ #
57
+ # The different available types are documented in the features, such as in
58
+ # https://relishapp.com/rspec/rspec-rails/docs
59
+ config.infer_spec_type_from_file_location!
60
+ end
@@ -0,0 +1,78 @@
1
+ # This file was generated by the `rails generate rspec:install` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # The generated `.rspec` file contains `--require spec_helper` which will cause this
4
+ # file to always be loaded, without a need to explicitly require it in any files.
5
+ #
6
+ # Given that it is always loaded, you are encouraged to keep this file as
7
+ # light-weight as possible. Requiring heavyweight dependencies from this file
8
+ # will add to the boot time of your test suite on EVERY test run, even for an
9
+ # individual file that may not need all of that loaded. Instead, make a
10
+ # separate helper file that requires this one and then use it only in the specs
11
+ # that actually need it.
12
+ #
13
+ # The `.rspec` file also contains a few flags that are not defaults but that
14
+ # users commonly want.
15
+ #
16
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
17
+ RSpec.configure do |config|
18
+ # The settings below are suggested to provide a good initial experience
19
+ # with RSpec, but feel free to customize to your heart's content.
20
+ =begin
21
+ # These two settings work together to allow you to limit a spec run
22
+ # to individual examples or groups you care about by tagging them with
23
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
24
+ # get run.
25
+ config.filter_run :focus
26
+ config.run_all_when_everything_filtered = true
27
+
28
+ # Many RSpec users commonly either run the entire suite or an individual
29
+ # file, and it's useful to allow more verbose output when running an
30
+ # individual spec file.
31
+ if config.files_to_run.one?
32
+ # Use the documentation formatter for detailed output,
33
+ # unless a formatter has already been configured
34
+ # (e.g. via a command-line flag).
35
+ config.default_formatter = 'doc'
36
+ end
37
+
38
+ # Print the 10 slowest examples and example groups at the
39
+ # end of the spec run, to help surface which specs are running
40
+ # particularly slow.
41
+ config.profile_examples = 10
42
+
43
+ # Run specs in random order to surface order dependencies. If you find an
44
+ # order dependency and want to debug it, you can fix the order by providing
45
+ # the seed, which is printed after each run.
46
+ # --seed 1234
47
+ config.order = :random
48
+
49
+ # Seed global randomization in this process using the `--seed` CLI option.
50
+ # Setting this allows you to use `--seed` to deterministically reproduce
51
+ # test failures related to randomization by passing the same `--seed` value
52
+ # as the one that triggered the failure.
53
+ Kernel.srand config.seed
54
+
55
+ # rspec-expectations config goes here. You can use an alternate
56
+ # assertion/expectation library such as wrong or the stdlib/minitest
57
+ # assertions if you prefer.
58
+ config.expect_with :rspec do |expectations|
59
+ # Enable only the newer, non-monkey-patching expect syntax.
60
+ # For more details, see:
61
+ # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
62
+ expectations.syntax = :expect
63
+ end
64
+
65
+ # rspec-mocks config goes here. You can use an alternate test double
66
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
67
+ config.mock_with :rspec do |mocks|
68
+ # Enable only the newer, non-monkey-patching expect syntax.
69
+ # For more details, see:
70
+ # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
71
+ mocks.syntax = :expect
72
+
73
+ # Prevents you from mocking or stubbing a method that does not exist on
74
+ # a real object. This is generally recommended.
75
+ mocks.verify_partial_doubles = true
76
+ end
77
+ =end
78
+ end
metadata ADDED
@@ -0,0 +1,263 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: reviewable
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Yonah forst
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-10-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 4.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 4.0.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: simple_form
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pg
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: lets you create reviews for polymorphic objects
56
+ email:
57
+ - yonaforst@hotmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - MIT-LICENSE
63
+ - README.rdoc
64
+ - Rakefile
65
+ - app/assets/javascripts/reviewable/application.js
66
+ - app/assets/stylesheets/reviewable/application.css
67
+ - app/controllers/reviewable/questions_controller.rb
68
+ - app/controllers/reviewable/reviewable_controller.rb
69
+ - app/controllers/reviewable/reviews_controller.rb
70
+ - app/helpers/reviewable/application_helper.rb
71
+ - app/models/reviewable/question.rb
72
+ - app/models/reviewable/review.rb
73
+ - app/views/layouts/reviewable/application.html.erb
74
+ - app/views/reviewable/questions/_form.html.erb
75
+ - app/views/reviewable/questions/_question.html.erb
76
+ - app/views/reviewable/questions/_question.json.jbuilder
77
+ - app/views/reviewable/questions/edit.html.erb
78
+ - app/views/reviewable/questions/index.html.erb
79
+ - app/views/reviewable/questions/index.json.jbuilder
80
+ - app/views/reviewable/questions/new.html.erb
81
+ - config/routes.rb
82
+ - db/migrate/20141013142401_enable_uuid_ossp_extension.rb
83
+ - db/migrate/20141013142552_create_reviewable_reviews.rb
84
+ - db/migrate/20141013145632_create_reviewable_questions.rb
85
+ - lib/reviewable.rb
86
+ - lib/reviewable/acts_as_reviewable.rb
87
+ - lib/reviewable/engine.rb
88
+ - lib/reviewable/version.rb
89
+ - lib/tasks/reviewable_tasks.rake
90
+ - spec/dummy/README.rdoc
91
+ - spec/dummy/Rakefile
92
+ - spec/dummy/app/assets/javascripts/application.js
93
+ - spec/dummy/app/assets/stylesheets/application.css
94
+ - spec/dummy/app/controllers/application_controller.rb
95
+ - spec/dummy/app/helpers/application_helper.rb
96
+ - spec/dummy/app/models/product.rb
97
+ - spec/dummy/app/models/user.rb
98
+ - spec/dummy/app/views/layouts/application.html.erb
99
+ - spec/dummy/bin/bundle
100
+ - spec/dummy/bin/rails
101
+ - spec/dummy/bin/rake
102
+ - spec/dummy/config.ru
103
+ - spec/dummy/config/application.rb
104
+ - spec/dummy/config/boot.rb
105
+ - spec/dummy/config/database.yml
106
+ - spec/dummy/config/environment.rb
107
+ - spec/dummy/config/environments/development.rb
108
+ - spec/dummy/config/environments/production.rb
109
+ - spec/dummy/config/environments/test.rb
110
+ - spec/dummy/config/initializers/assets.rb
111
+ - spec/dummy/config/initializers/backtrace_silencers.rb
112
+ - spec/dummy/config/initializers/cookies_serializer.rb
113
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
114
+ - spec/dummy/config/initializers/inflections.rb
115
+ - spec/dummy/config/initializers/mime_types.rb
116
+ - spec/dummy/config/initializers/session_store.rb
117
+ - spec/dummy/config/initializers/wrap_parameters.rb
118
+ - spec/dummy/config/locales/en.yml
119
+ - spec/dummy/config/routes.rb
120
+ - spec/dummy/config/secrets.yml
121
+ - spec/dummy/db/development.sqlite3
122
+ - spec/dummy/db/migrate/20141013173317_create_products.rb
123
+ - spec/dummy/db/migrate/20141013174327_create_users.rb
124
+ - spec/dummy/db/schema.rb
125
+ - spec/dummy/log/development.log
126
+ - spec/dummy/log/test.log
127
+ - spec/dummy/public/404.html
128
+ - spec/dummy/public/422.html
129
+ - spec/dummy/public/500.html
130
+ - spec/dummy/public/favicon.ico
131
+ - spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
132
+ - spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
133
+ - spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
134
+ - spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
135
+ - spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
136
+ - spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
137
+ - spec/dummy/tmp/capybara/capybara-201410141638119443873212.html
138
+ - spec/dummy/tmp/capybara/capybara-201410141807209663577120.html
139
+ - spec/dummy/tmp/capybara/capybara-201410141808528516645046.html
140
+ - spec/dummy/tmp/capybara/capybara-201410141809478831156886.html
141
+ - spec/dummy/tmp/capybara/capybara-201410141811022811314427.html
142
+ - spec/dummy/tmp/capybara/capybara-201410141813201391325985.html
143
+ - spec/dummy/tmp/capybara/capybara-201410141855296114330585.html
144
+ - spec/dummy/tmp/capybara/capybara-201410141857326053813040.html
145
+ - spec/dummy/tmp/capybara/capybara-201410141857482438637842.html
146
+ - spec/dummy/tmp/capybara/capybara-201410141858304336368395.html
147
+ - spec/dummy/tmp/capybara/capybara-20141014185925908498887.html
148
+ - spec/dummy/tmp/capybara/capybara-201410141904184954015862.html
149
+ - spec/dummy/tmp/capybara/capybara-201410141905062396116920.html
150
+ - spec/dummy/tmp/capybara/capybara-201410141905261123020644.html
151
+ - spec/factories/product.rb
152
+ - spec/factories/question.rb
153
+ - spec/factories/review.rb
154
+ - spec/factories/user.rb
155
+ - spec/features/questions/question_create_spec.rb
156
+ - spec/features/questions/question_delete_spec.rb
157
+ - spec/features/questions/question_edit_spec.rb
158
+ - spec/features/questions/question_index_spec.rb
159
+ - spec/models/acts_as_reviewable_spec.rb
160
+ - spec/models/reviewable/question_spec.rb
161
+ - spec/models/reviewable/review_spec.rb
162
+ - spec/rails_helper.rb
163
+ - spec/spec_helper.rb
164
+ homepage:
165
+ licenses:
166
+ - MIT
167
+ metadata: {}
168
+ post_install_message:
169
+ rdoc_options: []
170
+ require_paths:
171
+ - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ requirements: []
183
+ rubyforge_project:
184
+ rubygems_version: 2.2.2
185
+ signing_key:
186
+ specification_version: 4
187
+ summary: review objects
188
+ test_files:
189
+ - spec/dummy/app/assets/javascripts/application.js
190
+ - spec/dummy/app/assets/stylesheets/application.css
191
+ - spec/dummy/app/controllers/application_controller.rb
192
+ - spec/dummy/app/helpers/application_helper.rb
193
+ - spec/dummy/app/models/product.rb
194
+ - spec/dummy/app/models/user.rb
195
+ - spec/dummy/app/views/layouts/application.html.erb
196
+ - spec/dummy/bin/bundle
197
+ - spec/dummy/bin/rails
198
+ - spec/dummy/bin/rake
199
+ - spec/dummy/config/application.rb
200
+ - spec/dummy/config/boot.rb
201
+ - spec/dummy/config/database.yml
202
+ - spec/dummy/config/environment.rb
203
+ - spec/dummy/config/environments/development.rb
204
+ - spec/dummy/config/environments/production.rb
205
+ - spec/dummy/config/environments/test.rb
206
+ - spec/dummy/config/initializers/assets.rb
207
+ - spec/dummy/config/initializers/backtrace_silencers.rb
208
+ - spec/dummy/config/initializers/cookies_serializer.rb
209
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
210
+ - spec/dummy/config/initializers/inflections.rb
211
+ - spec/dummy/config/initializers/mime_types.rb
212
+ - spec/dummy/config/initializers/session_store.rb
213
+ - spec/dummy/config/initializers/wrap_parameters.rb
214
+ - spec/dummy/config/locales/en.yml
215
+ - spec/dummy/config/routes.rb
216
+ - spec/dummy/config/secrets.yml
217
+ - spec/dummy/config.ru
218
+ - spec/dummy/db/development.sqlite3
219
+ - spec/dummy/db/migrate/20141013173317_create_products.rb
220
+ - spec/dummy/db/migrate/20141013174327_create_users.rb
221
+ - spec/dummy/db/schema.rb
222
+ - spec/dummy/log/development.log
223
+ - spec/dummy/log/test.log
224
+ - spec/dummy/public/404.html
225
+ - spec/dummy/public/422.html
226
+ - spec/dummy/public/500.html
227
+ - spec/dummy/public/favicon.ico
228
+ - spec/dummy/Rakefile
229
+ - spec/dummy/README.rdoc
230
+ - spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
231
+ - spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
232
+ - spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
233
+ - spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
234
+ - spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
235
+ - spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
236
+ - spec/dummy/tmp/capybara/capybara-201410141638119443873212.html
237
+ - spec/dummy/tmp/capybara/capybara-201410141807209663577120.html
238
+ - spec/dummy/tmp/capybara/capybara-201410141808528516645046.html
239
+ - spec/dummy/tmp/capybara/capybara-201410141809478831156886.html
240
+ - spec/dummy/tmp/capybara/capybara-201410141811022811314427.html
241
+ - spec/dummy/tmp/capybara/capybara-201410141813201391325985.html
242
+ - spec/dummy/tmp/capybara/capybara-201410141855296114330585.html
243
+ - spec/dummy/tmp/capybara/capybara-201410141857326053813040.html
244
+ - spec/dummy/tmp/capybara/capybara-201410141857482438637842.html
245
+ - spec/dummy/tmp/capybara/capybara-201410141858304336368395.html
246
+ - spec/dummy/tmp/capybara/capybara-20141014185925908498887.html
247
+ - spec/dummy/tmp/capybara/capybara-201410141904184954015862.html
248
+ - spec/dummy/tmp/capybara/capybara-201410141905062396116920.html
249
+ - spec/dummy/tmp/capybara/capybara-201410141905261123020644.html
250
+ - spec/factories/product.rb
251
+ - spec/factories/question.rb
252
+ - spec/factories/review.rb
253
+ - spec/factories/user.rb
254
+ - spec/features/questions/question_create_spec.rb
255
+ - spec/features/questions/question_delete_spec.rb
256
+ - spec/features/questions/question_edit_spec.rb
257
+ - spec/features/questions/question_index_spec.rb
258
+ - spec/models/acts_as_reviewable_spec.rb
259
+ - spec/models/reviewable/question_spec.rb
260
+ - spec/models/reviewable/review_spec.rb
261
+ - spec/rails_helper.rb
262
+ - spec/spec_helper.rb
263
+ has_rdoc: