From 7b7a25718054a0b62fea6cc1cca0666b642273f3 Mon Sep 17 00:00:00 2001 From: Colton Date: Mon, 4 Nov 2013 13:45:27 -0800 Subject: [PATCH 1/4] Converted to mounted engine --- README.md | 2 ++ app/views/remarks/_form.html.erb | 4 ++-- config/routes.rb | 4 ++-- lib/feedbacker.rb | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4353679..d2390f9 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,9 @@ Installation settings.email_prefix = '[FEEDBACKER]' # default value end +9. Mount the engine in config/routes.rb + mount Feedbacker::Engine, at: '/' Contributions ------------- diff --git a/app/views/remarks/_form.html.erb b/app/views/remarks/_form.html.erb index 5cff103..f5acea2 100644 --- a/app/views/remarks/_form.html.erb +++ b/app/views/remarks/_form.html.erb @@ -1,6 +1,6 @@ -<%= form_for @remark, :remote => true do |f| %> +<%= form_for [feedbacker, @remark], :remote => true do |f| %>

<%= f.text_area :content %>
<%= f.submit 'Submit Feedback' %> <%= link_to 'Cancel', '#', :class => 'toggle_feedback' %>
-<% end %> \ No newline at end of file +<% end %> diff --git a/config/routes.rb b/config/routes.rb index 51447f5..5febab8 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,3 +1,3 @@ -Rails.application.routes.draw do +Feedbacker::Engine.routes.draw do resources :remarks, :only => [:create] -end \ No newline at end of file +end diff --git a/lib/feedbacker.rb b/lib/feedbacker.rb index 5ab8056..d4fc280 100644 --- a/lib/feedbacker.rb +++ b/lib/feedbacker.rb @@ -2,6 +2,7 @@ module Feedbacker class Engine < ::Rails::Engine + isolate_namespace Feedbacker config.active_record.observers = :remark_observer rake_tasks do Dir[File.join(File.dirname(__FILE__),'tasks/*.rake')].each { |f| load f } From c42057ddbea6b61badcb55219ac3f8f41cb7f1e3 Mon Sep 17 00:00:00 2001 From: Colton Date: Tue, 12 Nov 2013 12:32:32 -0800 Subject: [PATCH 2/4] Added assets to be precompiled --- lib/feedbacker.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/feedbacker.rb b/lib/feedbacker.rb index d4fc280..eee01b8 100644 --- a/lib/feedbacker.rb +++ b/lib/feedbacker.rb @@ -3,6 +3,7 @@ module Feedbacker class Engine < ::Rails::Engine isolate_namespace Feedbacker + config.assets.precompile += %w(feedbacker.js feedbacker.css) config.active_record.observers = :remark_observer rake_tasks do Dir[File.join(File.dirname(__FILE__),'tasks/*.rake')].each { |f| load f } From fd2c8404123c11750bac41b91da4e912bdc18113 Mon Sep 17 00:00:00 2001 From: Colton Date: Tue, 12 Nov 2013 16:04:55 -0800 Subject: [PATCH 3/4] Corrected assets precompile --- lib/feedbacker.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/feedbacker.rb b/lib/feedbacker.rb index eee01b8..ec7838a 100644 --- a/lib/feedbacker.rb +++ b/lib/feedbacker.rb @@ -3,10 +3,14 @@ module Feedbacker class Engine < ::Rails::Engine isolate_namespace Feedbacker - config.assets.precompile += %w(feedbacker.js feedbacker.css) + config.active_record.observers = :remark_observer rake_tasks do Dir[File.join(File.dirname(__FILE__),'tasks/*.rake')].each { |f| load f } end + + initializer "feedbacker.assets.precompile" do |app| + app.config.assets.precompile += %w(feedbacker.js feedbacker.css) + end end end From b3a1c9816de217100b777519e99b512581d1a78f Mon Sep 17 00:00:00 2001 From: Colton Date: Fri, 27 Dec 2013 10:52:58 -0800 Subject: [PATCH 4/4] Encapsulated classes in feedbacker module. Allows cache_class to be true --- app/controllers/remarks_controller.rb | 8 +++++--- app/mailers/feedback_mailer.rb | 20 ++++++++++--------- app/models/remark.rb | 6 ++++-- .../{ => feedbacker}/remarks/_form.html.erb | 0 .../remarks/_greeting.html.erb | 0 .../{ => feedbacker}/remarks/create.js.erb | 0 lib/feedbacker.rb | 14 +------------ lib/feedbacker/engine.rb | 17 ++++++++++++++++ 8 files changed, 38 insertions(+), 27 deletions(-) rename app/views/{ => feedbacker}/remarks/_form.html.erb (100%) rename app/views/{ => feedbacker}/remarks/_greeting.html.erb (100%) rename app/views/{ => feedbacker}/remarks/create.js.erb (100%) create mode 100644 lib/feedbacker/engine.rb diff --git a/app/controllers/remarks_controller.rb b/app/controllers/remarks_controller.rb index f235bf9..0944a01 100644 --- a/app/controllers/remarks_controller.rb +++ b/app/controllers/remarks_controller.rb @@ -1,3 +1,5 @@ -class RemarksController < ::ApplicationController - include Feedbacker::RemarksControllerMethods -end \ No newline at end of file +module Feedbacker + class RemarksController < ::ApplicationController + include Feedbacker::RemarksControllerMethods + end +end diff --git a/app/mailers/feedback_mailer.rb b/app/mailers/feedback_mailer.rb index 9981b35..951abd3 100644 --- a/app/mailers/feedback_mailer.rb +++ b/app/mailers/feedback_mailer.rb @@ -1,11 +1,13 @@ -class FeedbackMailer < ActionMailer::Base - def feedback(remark) - @remark = remark - mail( - to: Feedbacker::SETTINGS.email_to, - from: Feedbacker::SETTINGS.email_to, - reply_to: remark.user.email, - subject: "#{Feedbacker::SETTINGS.email_prefix} Feedback Notification" - ) +module Feedbacker + class FeedbackMailer < ActionMailer::Base + def feedback(remark) + @remark = remark + mail( + to: Feedbacker::SETTINGS.email_to, + from: Feedbacker::SETTINGS.email_to, + reply_to: remark.user.email, + subject: "#{Feedbacker::SETTINGS.email_prefix} Feedback Notification" + ) + end end end diff --git a/app/models/remark.rb b/app/models/remark.rb index 2421807..600558c 100644 --- a/app/models/remark.rb +++ b/app/models/remark.rb @@ -1,3 +1,5 @@ -class Remark < ActiveRecord::Base - include Feedbacker::RemarkMethods +module Feedbacker + class Remark < ActiveRecord::Base + include Feedbacker::RemarkMethods + end end diff --git a/app/views/remarks/_form.html.erb b/app/views/feedbacker/remarks/_form.html.erb similarity index 100% rename from app/views/remarks/_form.html.erb rename to app/views/feedbacker/remarks/_form.html.erb diff --git a/app/views/remarks/_greeting.html.erb b/app/views/feedbacker/remarks/_greeting.html.erb similarity index 100% rename from app/views/remarks/_greeting.html.erb rename to app/views/feedbacker/remarks/_greeting.html.erb diff --git a/app/views/remarks/create.js.erb b/app/views/feedbacker/remarks/create.js.erb similarity index 100% rename from app/views/remarks/create.js.erb rename to app/views/feedbacker/remarks/create.js.erb diff --git a/lib/feedbacker.rb b/lib/feedbacker.rb index ec7838a..ec01555 100644 --- a/lib/feedbacker.rb +++ b/lib/feedbacker.rb @@ -1,16 +1,4 @@ -Dir[File.join(File.dirname(__FILE__), '/feedbacker/*.rb')].each {|file| require file } +require 'feedbacker/engine' module Feedbacker - class Engine < ::Rails::Engine - isolate_namespace Feedbacker - - config.active_record.observers = :remark_observer - rake_tasks do - Dir[File.join(File.dirname(__FILE__),'tasks/*.rake')].each { |f| load f } - end - - initializer "feedbacker.assets.precompile" do |app| - app.config.assets.precompile += %w(feedbacker.js feedbacker.css) - end - end end diff --git a/lib/feedbacker/engine.rb b/lib/feedbacker/engine.rb new file mode 100644 index 0000000..430d2a3 --- /dev/null +++ b/lib/feedbacker/engine.rb @@ -0,0 +1,17 @@ +Dir[File.join(File.dirname(__FILE__), '*.rb')].each { |f| require f } + +module Feedbacker + class Engine < Rails::Engine + isolate_namespace Feedbacker + + config.active_record.observers = :remark_observer + + rake_tasks do + Dir[File.join(File.dirname(__FILE__),'tasks/*.rake')].each { |f| load f } + end + + initializer "feedbacker.assets.precompile" do |app| + app.config.assets.precompile += %w(feedbacker.js feedbacker.css) + end + end +end