notify_user =========== Install: ``` gem 'notify_user' rails g notify_user:install ``` Getting started: ``` rails g notify_user:notification NewMyProperty ``` Edit views/notify_user/new_my_property/action_mailer/notification.html.erb, e.g. ```

We added <%= @notification.params[:listing_address] %> to your My Properties.

``` Then send: ``` NotifyUser.send_notification('new_my_property').to(user).with("listing_address" => "123 Main St").notify ``` Dynamic email titles use %{tags} that correspond to your params hash (Will throw an exception if key is missing) ``` channel :action_mailer, subject: "%{name} sent you a message", aggregate: { subject: "%{name} sent you %{count} messages" } ``` To enable APNS add this line to your app/notification/notification_type.rb ``` channel :apns, aggregate_per: false ``` To run the tests: ``` BUNDLE_GEMFILE=gemfiles/rails40.gemfile bundle install BUNDLE_GEMFILE=gemfiles/rails40.gemfile bundle exec rspec spec ``` To run the tests like Travis: ``` gem install wwtd wwtd ``` ##Web interface Display a list of notifications for a logged in user ``` visit /notify_user/notifications ``` Clicking on a notification gets marked as read and taken to the redirect_logic action (notifications_controller.rb) ``` def redirect_logic(notification) class = notification.params[:type].capitalize.constantize object = class.find(@notification.params[:id]) redirect_to property_url(object) end ``` Add line to environment.rb file to configure host url for mail notifications ``` config.action_mailer.default_url_options = { :host => "http://example.com" } ``` ##Subscriptions Unsubscribing from a notification type, first add it to the notify_user.rb initilizer ``` # Override the default notification type config.unsubscribable_notifications = ['NewPostNotification','NewSale'] ``` Users can manage their subscription statuses through the web interface ``` visit notify_user/notifications/unsubscribe ``` Unsubscribe link helper - add this to your views/notify_user/layouts/action_mailer.html.erb ``` <% if is_unsubscribeable? @notification %>

<%= unsubscribe_link(@notification, "Unsubscribe") %>

<% end %> ``` ##Upgrading to JSON params data type Run json_update generator which generates the migrations to change the params datatype to json as well as convert the current data to json ``` rails generate notify_user:json_update rake db:migrate ``` ##Changes Notification description and aggregates has changed syntax slighly from ``` @@description = "please override this type description" @@aggregate_per = 10.minutes ``` to ``` self.description = "please override this type description" self.aggregate_per = 10.minutes ```