user_notif 0.1.0 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f575e339d10f65d6535d2a75d21a80b978fedf95
4
- data.tar.gz: 140b94295b82f40c012eca848bd538ed1cf04c1c
3
+ metadata.gz: 0ece7ee958af9fc43e1833e07a6327a239203d33
4
+ data.tar.gz: 4a4c1c3d36a0f7ef6dafec1fc80b30baced6f319
5
5
  SHA512:
6
- metadata.gz: 0871795f64c6694a0a2454170edbaf67e94e7fd1db8ec2a0564def21ce076ddcf89d6dd7a7a16b692c75a5bd7d9b1acf0c02e52b58c6d8138a196bf0ebba21a2
7
- data.tar.gz: dfa907615d4e3f4263876e0ad7e180f6fde064f8f7187353e92bd4fe3b68231b7a1aa2168a8f92914b96395a954b3188abb71b711639df90a09d3c824d583f25
6
+ metadata.gz: 9f3090ab82b14199a5e9269afaa267aaa5ab85ac9c0af4a1444f021e1cbf4727396dc742825dc577e5308513677c16916a1625adec50070ad10f43878c6da829
7
+ data.tar.gz: d44ba19bb7363c2f99e709554be25c59645332d8a40955eaef1cfd6b25ec29545a1141a61b3709ff0252648462ec1db263db778accbd27546224a92c768d3f19
data/.gitignore CHANGED
@@ -7,3 +7,6 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /.idea
11
+ /*.gem
12
+ /spec/internal/db/*.sqlite
data/Gemfile CHANGED
@@ -3,6 +3,8 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in user_notif.gemspec
4
4
  gemspec
5
5
 
6
+ gem 'sqlite3'
7
+
6
8
  group :test do
7
9
  gem 'coveralls', require: false
8
- end
10
+ end
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # UserNotif
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/user_notif.svg)](https://badge.fury.io/rb/user_notif)
3
4
  [![Build Status](https://travis-ci.org/terry90/user_notif.svg?branch=master)](https://travis-ci.org/terry90/user_notif)
5
+ [![Coverage Status](https://coveralls.io/repos/github/terry90/user_notif/badge.svg?branch=master)](https://coveralls.io/github/terry90/user_notif?branch=master)
4
6
  [![Code Climate](https://codeclimate.com/github/terry90/user_notif/badges/gpa.svg)](https://codeclimate.com/github/terry90/user_notif)
5
7
  [![Dependency Status](https://gemnasium.com/badges/github.com/terry90/user_notif.svg)](https://gemnasium.com/github.com/terry90/user_notif)
6
8
  [![security](https://hakiri.io/github/terry90/user_notif/master.svg)](https://hakiri.io/github/terry90/user_notif/master)
@@ -17,13 +19,137 @@ And then execute:
17
19
 
18
20
  $ bundle
19
21
 
20
- Or install it yourself as:
21
22
 
22
- $ gem install user_notif
23
+ ---
24
+
25
+
26
+ After you install UserNotif and add it to your Gemfile, you need to run the generator:
27
+
28
+ `rails generate user_notif:install`
29
+
30
+ The UserNotifs belong to a user. To ensure it works, make sure you have a `User` model
31
+
32
+
33
+ ---
34
+
35
+
36
+ If you want to use it out of the box, require JS and SCSS files
37
+
38
+ In your `app/assets/stylesheets/application.css`
39
+
40
+ ```css
41
+ /*
42
+ *= require user_notif
43
+ */
44
+ ```
45
+
46
+ In your `app/assets/javascripts/application.js`
47
+
48
+ ```js
49
+ //
50
+ //= require user_notif
51
+ //
52
+ ```
23
53
 
24
54
  ## Usage
25
55
 
26
- TODO: Write usage instructions here
56
+ Now you can create your first notification !
57
+
58
+ ### Models
59
+
60
+ Run this generator:
61
+
62
+ `rails generate user_notif name target_model`
63
+
64
+ It will create a `NameNotif` model and his associated views. You should customize the generated views.
65
+
66
+ A notification has a user and a target. The target can be any model, like a `User` or something else.
67
+ You can then override the views to display informations about the target.
68
+
69
+ Example:
70
+
71
+ `rails generate user_notif new_follower user`
72
+
73
+ It creates a NewFollowerNotif
74
+
75
+ Now you can add the logic to create notifications when a user is followed by another one (the target).
76
+
77
+ ### Views
78
+
79
+ To display your notifications, you can use some helpers:
80
+
81
+ `list_user_notifs(notifs, small = true)`
82
+
83
+ `user_notif(notif, small = true)`
84
+
85
+ ```erb
86
+ <%= list_user_notifs(UserNotif.all) %>
87
+ <%= user_notif(UserNotif.last, false) %>
88
+ ```
89
+
90
+ The `small` parameter will take care of rendering the partial located in `app/views/notifs/[small,full]`
91
+
92
+
93
+ #### Cutomizing your views
94
+
95
+ You can customize your views by modifying `app/views/notifs/[small,full]/*` files.
96
+
97
+ Implement your own element to mark notifications as read with `mark-as-read` class.
98
+
99
+ An ajax call to the `data-url` is triggered when you click on this element. This makes the notification read !
100
+
101
+ Example:
102
+
103
+ ```erb
104
+ <div class=user-notif">
105
+ ...
106
+ <div class="mark-as-read" data-url="<%= read_user_notif_path(id: @notif.id) %>">X</div>
107
+ </div>
108
+ ```
109
+
110
+ The default behavior remove the unread class on the element itself but you can override it or add your own behavior.
111
+
112
+ ### Mailer
113
+
114
+ Every notification send a mail by default.
115
+ You can override this in your generated model: `app/models/notifs/your_notif.rb`
116
+
117
+ The mailer views are located at `app/views/notifs/mailer/your_notif.[html,text].erb`
118
+
119
+ You can customize the mailer by providing options in your generated initializer (install step):
120
+
121
+ ```ruby
122
+ # config/initializers/user_notif.rb
123
+
124
+ UserNotif.setup do |config|
125
+ config.app_name = 'My App'
126
+ config.mailer_sender = 'no-reply@myapp.com'
127
+ config.mailer_bcc = 'admin@myapp.com'
128
+ config.mailer_cc = 'admin@myapp.com'
129
+ config.mailer_reply_to = 'admin@myapp.com'
130
+ config.mailer_date = Date.current
131
+ config.return_path = 'contact@myapp.com'
132
+ end
133
+ ```
134
+
135
+ By modifying the initializer, all your notification mailers will default to this.
136
+ You can still provide custom values per notification by overriding the method `email_options` in your generated model.
137
+
138
+ This method should look like this:
139
+
140
+ ```ruby
141
+ # app/models/notifs/your_notif.rb
142
+ ...
143
+ def email_options
144
+ super({
145
+ subject: I18n.t('awesome.18n.key'),
146
+ cc: @coworker.email,
147
+ bcc: @president.email
148
+ })
149
+ end
150
+ ```
151
+
152
+ The `super` ensures default values are loaded.
27
153
 
28
154
  ## Development
29
155
 
@@ -35,7 +161,6 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
35
161
 
36
162
  Bug reports and pull requests are welcome on GitHub at https://github.com/terry90/user_notif. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
37
163
 
38
-
39
164
  ## License
40
165
 
41
166
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/Rakefile CHANGED
@@ -3,4 +3,5 @@ require "rspec/core/rake_task"
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
7
+ task test: :spec
@@ -0,0 +1,23 @@
1
+ require 'rails/generators/active_record'
2
+
3
+ module UserNotif
4
+ class InstallGenerator < ActiveRecord::Generators::Base
5
+ desc 'This generator creates a migration file at db/migrate and an initializer'
6
+
7
+ source_root File.expand_path('../install_templates', __FILE__)
8
+
9
+ argument :name, type: :string, default: 'create_user_notif'
10
+
11
+ def copy_files
12
+ migration_template 'create_notifs.rb', 'db/migrate/create_notifs.rb'
13
+ copy_file 'initializer.rb', 'config/initializers/user_notif.rb'
14
+ copy_file 'notifs_controller.rb', 'app/controllers/user_notif/notifs_controller.rb'
15
+ copy_file 'locales/fr.yml', 'config/locales/user_notif.fr.yml'
16
+ copy_file 'locales/en.yml', 'config/locales/user_notif.en.yml'
17
+ end
18
+
19
+ def add_user_notif_routes
20
+ route "put '/user_notif/:id', to: 'user_notif/notifs#read', as: :read_user_notif"
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,12 @@
1
+ class CreateNotifs < ActiveRecord::Migration
2
+ def change
3
+ create_table :notifs do |t|
4
+ # Target is the object of the notification (like a Project, Donation or User)
5
+ t.references :target, polymorphic: true, index: true, null: false
6
+ t.belongs_to :user, index: true
7
+ t.boolean :unread, index: true, default: true
8
+ t.string :type
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,8 @@
1
+ UserNotif.setup do |config|
2
+ config.app_name = 'My App'
3
+ config.mailer_sender = 'no-reply@myapp.com'
4
+ # config.mailer_bcc = 'admin@myapp.com'
5
+ # config.mailer_return_path = 'contact@myapp.com'
6
+ # config.mailer_reply_to = 'contact@myapp.com'
7
+ # config.mailer_cc = 'contact2@myapp.com'
8
+ end
@@ -0,0 +1,3 @@
1
+ notif:
2
+ generic:
3
+ subject: 'New notification on %{app_name}!'
@@ -0,0 +1,3 @@
1
+ notif:
2
+ generic:
3
+ subject: 'Nouvelle notification de %{app_name} !'
@@ -0,0 +1,25 @@
1
+ module UserNotif
2
+ class NotifsController < ApplicationController
3
+ before_action :set_notif
4
+ before_action :authorized?, only: [:read]
5
+
6
+ def read
7
+ set_notif
8
+ raise ActiveRecord::RecordNotFound.new('Not Found') unless @notif
9
+ raise ActiveRecord::RecordNotFound.new('Not Found') unless @notif
10
+ @notif.update!(unread: false)
11
+ render nothing: true
12
+ end
13
+
14
+ private
15
+
16
+ def set_notif
17
+ @notif = UserNotif::Notif.find(params[:id].to_i)
18
+ end
19
+
20
+ def authorized?
21
+ # This method assumes you are using Devise. You can change it to use your custom logic.
22
+ raise ActiveRecord::RecordNotFound.new('Not Found') unless @notif.owner == current_user
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,6 @@
1
+ <div class="user-notif mark-as-read <%= 'unread' if @notif.unread %>" data-url="<%= read_user_notif_path(id: @notif.id) %>">
2
+ <div class="notif-body">
3
+ <div class="notif-title">New <%= @notif.type %> !</div>
4
+ <div class="notif-content">This notif is the <%= @notif.id.ordinalize %></div>
5
+ </div>
6
+ </div>
@@ -0,0 +1,20 @@
1
+ class <%= file_name.classify %>Notif < UserNotif::Notif
2
+ def email?
3
+ # Override or delete (default: true)
4
+ end
5
+
6
+ def template_name
7
+ '<%= file_name %>_notif'
8
+ end
9
+
10
+ def email_options
11
+ # TODO: Add this I18n key in your yml and add options or delete the method if you want to keep default values
12
+ super({
13
+ subject: I18n.t('notif.<%= file_name %>.subject')
14
+ })
15
+ end
16
+
17
+ def target_class
18
+ <%= target.classify %>
19
+ end
20
+ end
@@ -0,0 +1,9 @@
1
+ Hello,
2
+
3
+ You got a new notification.
4
+
5
+ To see all your notifications, you can go on this page :
6
+
7
+ See my notifications ## LINK YOUR PAGE HERE
8
+
9
+ Regards,
@@ -0,0 +1,6 @@
1
+ <div class="small-user-notif mark-as-read <%= 'unread' if @notif.unread %>" data-url="<%= read_user_notif_path(id: @notif.id) %>">
2
+ <div class="notif-body">
3
+ <div class="notif-title">New <%= @notif.type %> !</div>
4
+ <div class="notif-content">This notif is the <%= @notif.id.ordinalize %></div>
5
+ </div>
6
+ </div>
@@ -0,0 +1,17 @@
1
+ require 'rails/generators/base'
2
+
3
+ class UserNotifGenerator < Rails::Generators::NamedBase
4
+ desc 'This generator creates a new notification model with his associated files'
5
+
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ argument :target, type: :string
9
+
10
+ def copy_files
11
+ template 'notif.rb.erb', "app/models/notifs/#{file_name}_notif.rb"
12
+ template 'notif_email.text.erb', "app/views/notifs/mailer/#{file_name}_notif.html.erb"
13
+ template 'notif_email.text.erb', "app/views/notifs/mailer/#{file_name}_notif.text.erb"
14
+ copy_file 'small_notif_view.html.erb', "app/views/notifs/small/_#{file_name}_notif.html.erb"
15
+ copy_file 'full_notif_view.html.erb', "app/views/notifs/full/_#{file_name}_notif.html.erb"
16
+ end
17
+ end
@@ -0,0 +1,4 @@
1
+ module ModelExceptions
2
+ class BadTypeNotification < StandardError; end
3
+ class NotifOwnerNil < StandardError; end
4
+ end
@@ -0,0 +1,49 @@
1
+ require 'active_record'
2
+
3
+ module UserNotif
4
+ class Notif < ActiveRecord::Base
5
+ belongs_to :target, polymorphic: true
6
+ belongs_to :user
7
+
8
+ scope :unread, -> { where(unread: true) }
9
+
10
+ before_save :validate_target_and_user
11
+ after_create :notify_email
12
+
13
+ def email?
14
+ true
15
+ end
16
+
17
+ def template_name
18
+ 'generic_notif'
19
+ end
20
+
21
+ def email_options(opts = {})
22
+ {
23
+ subject: I18n.t('notif.generic.subject'),
24
+ bcc: UserNotif.mailer_bcc,
25
+ return_path: UserNotif.mailer_return_path,
26
+ from: UserNotif.mailer_sender,
27
+ reply_to: UserNotif.mailer_reply_to,
28
+ cc: UserNotif.mailer_cc,
29
+ date: Time.current,
30
+ }.merge(opts)
31
+ end
32
+
33
+ def target_class
34
+ nil # Has to be overriden
35
+ end
36
+
37
+ private
38
+
39
+ def validate_target_and_user
40
+ raise ModelExceptions::BadTypeNotification unless self.target.class == target_class
41
+ raise ModelExceptions::NotifOwnerNil if self.user == nil
42
+ end
43
+
44
+ def notify_email
45
+ return unless email?
46
+ NotifMailer.notif_email(self.id).deliver_later
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,23 @@
1
+ require 'action_mailer'
2
+
3
+ module UserNotif
4
+ class NotifMailer < ActionMailer::Base
5
+ def notif_email(notif_id)
6
+ notif = Notif.find(notif_id)
7
+ @target = notif.target
8
+ @user = notif.user
9
+ send_email({
10
+ to: @user.email,
11
+ template_path: 'notifs/mailer',
12
+ template_name: notif.template_name
13
+ }.merge(notif.email_options)
14
+ )
15
+ end
16
+
17
+ private
18
+
19
+ def send_email(opts)
20
+ mail(opts)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ require 'rails/railtie'
2
+
3
+ module UserNotif
4
+ class Railtie < Rails::Railtie
5
+ config.before_configuration do |app|
6
+ ActiveSupport::Dependencies.autoload_paths += %W(#{app.root}/app/models/notifs)
7
+ end
8
+
9
+ initializer 'user_notif.view_helpers' do
10
+ ActionView::Base.send :include, UserNotif::ViewHelpers
11
+ end
12
+
13
+ initializer :assets do
14
+ Rails.application.config.assets.precompile += %w{ user_notif.js.coffee user_notif.scss }
15
+ Rails.application.config.assets.paths << UserNotif.root + '/vendor/assets/javascripts'
16
+ Rails.application.config.assets.paths << UserNotif.root + '/vendor/assets/stylesheets'
17
+ end
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module UserNotif
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
@@ -0,0 +1,26 @@
1
+ module UserNotif
2
+ module ViewHelpers
3
+ include ::ActionView::Context
4
+ include ::ActionView::Helpers
5
+
6
+ def list_user_notifs(notifs = nil, small = true)
7
+ return unless notifs
8
+ output = ''
9
+
10
+ notifs.each { |n| output << user_notif(n, small) }
11
+
12
+ wrap output
13
+ end
14
+
15
+ def user_notif(notif, small = true)
16
+ @notif = notif
17
+ render("notifs/#{small ? 'small' : 'full'}/#{notif.template_name}")
18
+ end
19
+
20
+ private
21
+
22
+ def wrap(elem)
23
+ "<div class=\"user-notif-wrapper\">#{elem}</div>".html_safe
24
+ end
25
+ end
26
+ end
data/lib/user_notif.rb CHANGED
@@ -1,5 +1,24 @@
1
1
  require 'user_notif/version'
2
+ require 'user_notif/notif'
3
+ require 'user_notif/model_exceptions'
4
+ require 'user_notif/notif_mailer'
5
+ require 'user_notif/view_helpers'
6
+ require 'user_notif/railtie' if defined?(Rails)
2
7
 
3
8
  module UserNotif
9
+ def self.setup
10
+ yield self
11
+ end
4
12
 
5
- end
13
+ def self.root
14
+ File.dirname __dir__
15
+ end
16
+
17
+ mattr_accessor :mailer_sender
18
+ @@mailer_sender = 'contact@myapp.com'
19
+
20
+ mattr_accessor :app_name
21
+ @@app_name = 'My App'
22
+
23
+ mattr_accessor :mailer_bcc, :mailer_return_path, :mailer_from, :mailer_reply_to, :mailer_cc, :mailer_date
24
+ end
data/user_notif.gemspec CHANGED
@@ -22,4 +22,14 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'bundler', '~> 1.11'
23
23
  spec.add_development_dependency 'rake', '~> 10.0'
24
24
  spec.add_development_dependency 'rspec', '~> 3.0'
25
+ spec.add_development_dependency 'rspec-rails', '~> 3.0'
26
+ spec.add_development_dependency 'combustion', '~> 0.5.4'
27
+ spec.add_development_dependency 'sprockets-rails', ['>= 3.0']
28
+
29
+ spec.add_runtime_dependency 'activerecord', '>= 4.0'
30
+ spec.add_runtime_dependency 'actionmailer', '>= 4.0'
31
+ spec.add_runtime_dependency 'railties', '>= 4.0'
32
+ spec.add_runtime_dependency 'sass-rails', '~> 5.0'
33
+ spec.add_runtime_dependency 'coffee-rails', '~> 4.1.0'
34
+ spec.add_runtime_dependency 'jquery-rails', '>= 4.0.4'
25
35
  end
@@ -0,0 +1,6 @@
1
+ $ ->
2
+ $('.mark-as-read').click(() ->
3
+ elem = this
4
+ $.ajax(url: $(this).data('url'), method: 'put').done () ->
5
+ $(elem).removeClass('unread')
6
+ )
@@ -0,0 +1,38 @@
1
+ .user-notif-wrapper {
2
+ .small-user-notif {
3
+ cursor: pointer;
4
+ padding: 10px;
5
+ color: #333333;
6
+ border-bottom: 1px solid lightgrey;
7
+
8
+ &:last-child {
9
+ border-bottom: none
10
+ }
11
+
12
+ &:hover {
13
+ background-color: lightgrey;
14
+ }
15
+
16
+ &:before {
17
+ display: inline-block;
18
+ vertical-align: middle;
19
+ height: 10px;
20
+ width: 10px;
21
+ border-radius: 50%;
22
+ background-color: grey;
23
+ content: ''
24
+ }
25
+
26
+ &.unread {
27
+ &:before {
28
+ background-color: #33ce74;
29
+ }
30
+ }
31
+
32
+ .notif-body {
33
+ display: inline-block;
34
+ vertical-align: middle;
35
+ margin-left: 10px;
36
+ }
37
+ }
38
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: user_notif
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Terry Raimondo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-21 00:00:00.000000000 Z
11
+ date: 2016-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,132 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: combustion
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.5.4
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.5.4
83
+ - !ruby/object:Gem::Dependency
84
+ name: sprockets-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '3.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '3.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: activerecord
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '4.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '4.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: actionmailer
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '4.0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '4.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: railties
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '4.0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '4.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: sass-rails
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '5.0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '5.0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: coffee-rails
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 4.1.0
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 4.1.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: jquery-rails
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: 4.0.4
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: 4.0.4
55
181
  description: This gem adds notifications to your app, you can display the notifications
56
182
  where you want, add a dropdown on your header for example. Add views, mailer views
57
183
  and go !
@@ -71,9 +197,27 @@ files:
71
197
  - Rakefile
72
198
  - bin/console
73
199
  - bin/setup
200
+ - lib/generators/user_notif/install_generator.rb
201
+ - lib/generators/user_notif/install_templates/create_notifs.rb
202
+ - lib/generators/user_notif/install_templates/initializer.rb
203
+ - lib/generators/user_notif/install_templates/locales/en.yml
204
+ - lib/generators/user_notif/install_templates/locales/fr.yml
205
+ - lib/generators/user_notif/install_templates/notifs_controller.rb
206
+ - lib/generators/user_notif/templates/full_notif_view.html.erb
207
+ - lib/generators/user_notif/templates/notif.rb.erb
208
+ - lib/generators/user_notif/templates/notif_email.text.erb
209
+ - lib/generators/user_notif/templates/small_notif_view.html.erb
210
+ - lib/generators/user_notif/user_notif_generator.rb
74
211
  - lib/user_notif.rb
212
+ - lib/user_notif/model_exceptions.rb
213
+ - lib/user_notif/notif.rb
214
+ - lib/user_notif/notif_mailer.rb
215
+ - lib/user_notif/railtie.rb
75
216
  - lib/user_notif/version.rb
217
+ - lib/user_notif/view_helpers.rb
76
218
  - user_notif.gemspec
219
+ - vendor/assets/javascripts/user_notif.js.coffee
220
+ - vendor/assets/stylesheets/user_notif.scss
77
221
  homepage: https://github.com/terry90/user_notif
78
222
  licenses:
79
223
  - MIT