notifly 0.0.3 → 0.0.4

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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +22 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +13 -0
  5. data/Gemfile +24 -0
  6. data/Gemfile.lock +199 -0
  7. data/README.md +32 -6
  8. data/Rakefile +40 -14
  9. data/VERSION +1 -0
  10. data/app/assets/images/notifly/.keep +0 -0
  11. data/bin/rails +12 -0
  12. data/lib/generators/notifly/install/install_generator.rb +4 -0
  13. data/lib/notifly/engine.rb +0 -10
  14. data/spec/controllers/notifly/notifications_controller_spec.rb +44 -0
  15. data/spec/dummy/README.rdoc +28 -0
  16. data/spec/dummy/Rakefile +6 -0
  17. data/spec/dummy/app/assets/images/.keep +0 -0
  18. data/spec/dummy/app/assets/javascripts/application.js +14 -0
  19. data/spec/dummy/app/assets/stylesheets/application.css +20 -0
  20. data/spec/dummy/app/controllers/application_controller.rb +13 -0
  21. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  22. data/spec/dummy/app/controllers/site_controller.rb +4 -0
  23. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  24. data/spec/dummy/app/mailers/.keep +0 -0
  25. data/spec/dummy/app/models/.keep +0 -0
  26. data/spec/dummy/app/models/concerns/.keep +0 -0
  27. data/spec/dummy/app/models/dummy_object.rb +19 -0
  28. data/spec/dummy/app/models/post.rb +21 -0
  29. data/spec/dummy/app/views/layouts/application.html.erb +15 -0
  30. data/spec/dummy/app/views/site/index.html.erb +2 -0
  31. data/spec/dummy/bin/bundle +3 -0
  32. data/spec/dummy/bin/rails +4 -0
  33. data/spec/dummy/bin/rake +4 -0
  34. data/spec/dummy/config.ru +4 -0
  35. data/spec/dummy/config/application.rb +29 -0
  36. data/spec/dummy/config/boot.rb +5 -0
  37. data/spec/dummy/config/database.exemple.yml +12 -0
  38. data/spec/dummy/config/database.travis.yml +4 -0
  39. data/spec/dummy/config/environment.rb +5 -0
  40. data/spec/dummy/config/environments/development.rb +37 -0
  41. data/spec/dummy/config/environments/production.rb +78 -0
  42. data/spec/dummy/config/environments/test.rb +39 -0
  43. data/spec/dummy/config/initializers/assets.rb +8 -0
  44. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  45. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  46. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  47. data/spec/dummy/config/initializers/inflections.rb +16 -0
  48. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  49. data/spec/dummy/config/initializers/session_store.rb +3 -0
  50. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  51. data/spec/dummy/config/locales/en.yml +23 -0
  52. data/spec/dummy/config/routes.rb +5 -0
  53. data/spec/dummy/config/secrets.yml +22 -0
  54. data/spec/dummy/db/migrate/20141031165049_create_dummy_objects.rb +9 -0
  55. data/spec/dummy/db/migrate/20141103191353_create_posts.rb +10 -0
  56. data/spec/dummy/db/migrate/20141104121318_add_dummy_to_post.rb +5 -0
  57. data/spec/dummy/db/schema.rb +54 -0
  58. data/spec/dummy/lib/assets/.keep +0 -0
  59. data/spec/dummy/log/.keep +0 -0
  60. data/spec/dummy/public/404.html +67 -0
  61. data/spec/dummy/public/422.html +67 -0
  62. data/spec/dummy/public/500.html +66 -0
  63. data/spec/dummy/public/favicon.ico +0 -0
  64. data/spec/dummy/spec/features/notifly/counter_spec.rb +38 -0
  65. data/spec/dummy/spec/features/notifly/loading_notifications_spec.rb +38 -0
  66. data/spec/dummy/spec/features/notifly/read_notifications_spec.rb +70 -0
  67. data/spec/dummy/spec/models/dummy_object_spec.rb +58 -0
  68. data/spec/dummy/spec/models/post_spec.rb +89 -0
  69. data/spec/models/notifly/notification_spec.rb +18 -0
  70. data/spec/rails_helper.rb +21 -0
  71. data/spec/spec_helper.rb +62 -0
  72. data/spec/support/shared_connection.rb +14 -0
  73. data/spec/support/suppress_log.rb +3 -0
  74. data/spec/support/wait_ajax.rb +53 -0
  75. data/vendor/assets/javascripts/twitter/bootstrap.js +181 -0
  76. data/vendor/assets/stylesheets/twitter/bootstrap.css +475 -0
  77. metadata +181 -11
  78. data/lib/notifly/version.rb +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 77982bba3899b260f37bc98c4a95a56658bef69c
4
- data.tar.gz: 8645e6bae431b62fa69743e026687984da53528a
3
+ metadata.gz: f996931a421a9e3f41a90c06d19e1c62146cc95f
4
+ data.tar.gz: 4348ce9aa6cb421b98ea1c4772ac7bc25dbd5fdf
5
5
  SHA512:
6
- metadata.gz: 6b416b97f187382029ea72e5121a4d980872a50b6c3b1a1fb505904efdcb135e74e0231f2f9b99a49da15f4ff314cd779bdd3a766cf508b26a0f02ce5ecf8e56
7
- data.tar.gz: eac2d4e0026728c73b91e74a05c7bb9bdd49f89d8c10466acf27b65194425d98283b92d50f7756d51a55450e3998d1a2e06e6e1b7d6c78b0a66b262efe0fe084
6
+ metadata.gz: 53ce370a1d97528f71306cc4d7dc4d441b6bbaba751f55f72b43279ed02f6a5413d1aec256ef951e3281a8ef6f0d3fba871d1f6fd8264219ef2e147f21753638
7
+ data.tar.gz: 19fcf140d70b9f00e633fc0b74188918ca1107dbd8d957c4f204a84f99a634483a334a6991d4671d67ef916861a2e577fc93d3f361c8a32977532a05ee681cce
data/.editorconfig ADDED
@@ -0,0 +1,22 @@
1
+ [*]
2
+ indent_style = space
3
+ indent_size = 2
4
+ charset = utf-8
5
+ trim_trailing_whitespace = true
6
+ insert_final_newline = true
7
+
8
+ [*.rb]
9
+ indent_style = space
10
+ indent_size = 2
11
+
12
+ [Rakefile]
13
+ indent_style = space
14
+ indent_size = 2
15
+
16
+ [Gemfile*]
17
+ indent_style = space
18
+ indent_size = 2
19
+
20
+ [config.ru]
21
+ indent_style = space
22
+ indent_size = 2
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/.travis.yml ADDED
@@ -0,0 +1,13 @@
1
+ language: ruby
2
+
3
+ before_script:
4
+ - cp spec/dummy/config/database.travis.yml spec/dummy/config/database.yml
5
+ - psql -c 'create database travis_ci_test;' -U postgres
6
+ - bundle install
7
+ - bundle exec rake db:migrate
8
+
9
+ rvm:
10
+ - 2.0.0
11
+ - 2.1
12
+
13
+ script: bundle exec rspec spec
data/Gemfile ADDED
@@ -0,0 +1,24 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 4'
4
+ gem 'jquery-rails', ['>= 3.0', '< 5']
5
+ gem 'kaminari', '~> 0.16.1'
6
+ gem 'font-awesome-rails', '~> 4.2.0'
7
+
8
+ group :development, :test do
9
+ gem 'pg'
10
+ gem 'rspec-rails', '~> 3.1.0'
11
+ gem 'capybara', '~> 2.4.4'
12
+ gem 'poltergeist', '~> 1.5.1'
13
+ gem 'shoulda-matchers', '~> 2.7.0'
14
+ gem 'pry-rails'
15
+ gem 'pry-rescue'
16
+ gem 'awesome_print'
17
+ gem 'launchy'
18
+ end
19
+
20
+ group :development do
21
+ gem 'better_errors'
22
+ gem 'binding_of_caller'
23
+ gem 'jeweler'
24
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,199 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ actionmailer (4.1.8)
5
+ actionpack (= 4.1.8)
6
+ actionview (= 4.1.8)
7
+ mail (~> 2.5, >= 2.5.4)
8
+ actionpack (4.1.8)
9
+ actionview (= 4.1.8)
10
+ activesupport (= 4.1.8)
11
+ rack (~> 1.5.2)
12
+ rack-test (~> 0.6.2)
13
+ actionview (4.1.8)
14
+ activesupport (= 4.1.8)
15
+ builder (~> 3.1)
16
+ erubis (~> 2.7.0)
17
+ activemodel (4.1.8)
18
+ activesupport (= 4.1.8)
19
+ builder (~> 3.1)
20
+ activerecord (4.1.8)
21
+ activemodel (= 4.1.8)
22
+ activesupport (= 4.1.8)
23
+ arel (~> 5.0.0)
24
+ activesupport (4.1.8)
25
+ i18n (~> 0.6, >= 0.6.9)
26
+ json (~> 1.7, >= 1.7.7)
27
+ minitest (~> 5.1)
28
+ thread_safe (~> 0.1)
29
+ tzinfo (~> 1.1)
30
+ addressable (2.3.6)
31
+ arel (5.0.1.20140414130214)
32
+ awesome_print (1.2.0)
33
+ better_errors (2.0.0)
34
+ coderay (>= 1.0.0)
35
+ erubis (>= 2.6.6)
36
+ rack (>= 0.9.0)
37
+ binding_of_caller (0.7.2)
38
+ debug_inspector (>= 0.0.1)
39
+ builder (3.2.2)
40
+ capybara (2.4.4)
41
+ mime-types (>= 1.16)
42
+ nokogiri (>= 1.3.3)
43
+ rack (>= 1.0.0)
44
+ rack-test (>= 0.5.4)
45
+ xpath (~> 2.0)
46
+ cliver (0.3.2)
47
+ coderay (1.1.0)
48
+ debug_inspector (0.0.2)
49
+ descendants_tracker (0.0.4)
50
+ thread_safe (~> 0.3, >= 0.3.1)
51
+ diff-lcs (1.2.5)
52
+ erubis (2.7.0)
53
+ faraday (0.9.0)
54
+ multipart-post (>= 1.2, < 3)
55
+ font-awesome-rails (4.2.0.0)
56
+ railties (>= 3.2, < 5.0)
57
+ git (1.2.8)
58
+ github_api (0.12.1)
59
+ addressable (~> 2.3)
60
+ descendants_tracker (~> 0.0.4)
61
+ faraday (~> 0.8, < 0.10)
62
+ hashie (>= 3.2)
63
+ multi_json (>= 1.7.5, < 2.0)
64
+ nokogiri (~> 1.6.3)
65
+ oauth2
66
+ hashie (3.3.1)
67
+ highline (1.6.21)
68
+ hike (1.2.3)
69
+ i18n (0.6.11)
70
+ interception (0.5)
71
+ jeweler (2.0.1)
72
+ builder
73
+ bundler (>= 1.0)
74
+ git (>= 1.2.5)
75
+ github_api
76
+ highline (>= 1.6.15)
77
+ nokogiri (>= 1.5.10)
78
+ rake
79
+ rdoc
80
+ jquery-rails (3.1.2)
81
+ railties (>= 3.0, < 5.0)
82
+ thor (>= 0.14, < 2.0)
83
+ json (1.8.1)
84
+ jwt (1.0.0)
85
+ kaminari (0.16.1)
86
+ actionpack (>= 3.0.0)
87
+ activesupport (>= 3.0.0)
88
+ launchy (2.4.3)
89
+ addressable (~> 2.3)
90
+ mail (2.6.3)
91
+ mime-types (>= 1.16, < 3)
92
+ method_source (0.8.2)
93
+ mime-types (2.4.3)
94
+ mini_portile (0.6.1)
95
+ minitest (5.4.3)
96
+ multi_json (1.10.1)
97
+ multi_xml (0.5.5)
98
+ multipart-post (2.0.0)
99
+ nokogiri (1.6.4.1)
100
+ mini_portile (~> 0.6.0)
101
+ oauth2 (1.0.0)
102
+ faraday (>= 0.8, < 0.10)
103
+ jwt (~> 1.0)
104
+ multi_json (~> 1.3)
105
+ multi_xml (~> 0.5)
106
+ rack (~> 1.2)
107
+ pg (0.17.1)
108
+ poltergeist (1.5.1)
109
+ capybara (~> 2.1)
110
+ cliver (~> 0.3.1)
111
+ multi_json (~> 1.0)
112
+ websocket-driver (>= 0.2.0)
113
+ pry (0.10.1)
114
+ coderay (~> 1.1.0)
115
+ method_source (~> 0.8.1)
116
+ slop (~> 3.4)
117
+ pry-rails (0.3.2)
118
+ pry (>= 0.9.10)
119
+ pry-rescue (1.4.1)
120
+ interception (>= 0.5)
121
+ pry
122
+ rack (1.5.2)
123
+ rack-test (0.6.2)
124
+ rack (>= 1.0)
125
+ rails (4.1.8)
126
+ actionmailer (= 4.1.8)
127
+ actionpack (= 4.1.8)
128
+ actionview (= 4.1.8)
129
+ activemodel (= 4.1.8)
130
+ activerecord (= 4.1.8)
131
+ activesupport (= 4.1.8)
132
+ bundler (>= 1.3.0, < 2.0)
133
+ railties (= 4.1.8)
134
+ sprockets-rails (~> 2.0)
135
+ railties (4.1.8)
136
+ actionpack (= 4.1.8)
137
+ activesupport (= 4.1.8)
138
+ rake (>= 0.8.7)
139
+ thor (>= 0.18.1, < 2.0)
140
+ rake (10.3.2)
141
+ rdoc (4.1.2)
142
+ json (~> 1.4)
143
+ rspec-core (3.1.7)
144
+ rspec-support (~> 3.1.0)
145
+ rspec-expectations (3.1.2)
146
+ diff-lcs (>= 1.2.0, < 2.0)
147
+ rspec-support (~> 3.1.0)
148
+ rspec-mocks (3.1.3)
149
+ rspec-support (~> 3.1.0)
150
+ rspec-rails (3.1.0)
151
+ actionpack (>= 3.0)
152
+ activesupport (>= 3.0)
153
+ railties (>= 3.0)
154
+ rspec-core (~> 3.1.0)
155
+ rspec-expectations (~> 3.1.0)
156
+ rspec-mocks (~> 3.1.0)
157
+ rspec-support (~> 3.1.0)
158
+ rspec-support (3.1.2)
159
+ shoulda-matchers (2.7.0)
160
+ activesupport (>= 3.0.0)
161
+ slop (3.6.0)
162
+ sprockets (2.12.3)
163
+ hike (~> 1.2)
164
+ multi_json (~> 1.0)
165
+ rack (~> 1.0)
166
+ tilt (~> 1.1, != 1.3.0)
167
+ sprockets-rails (2.2.1)
168
+ actionpack (>= 3.0)
169
+ activesupport (>= 3.0)
170
+ sprockets (>= 2.8, < 4.0)
171
+ thor (0.19.1)
172
+ thread_safe (0.3.4)
173
+ tilt (1.4.1)
174
+ tzinfo (1.2.2)
175
+ thread_safe (~> 0.1)
176
+ websocket-driver (0.4.0)
177
+ xpath (2.0.0)
178
+ nokogiri (~> 1.3)
179
+
180
+ PLATFORMS
181
+ ruby
182
+
183
+ DEPENDENCIES
184
+ awesome_print
185
+ better_errors
186
+ binding_of_caller
187
+ capybara (~> 2.4.4)
188
+ font-awesome-rails (~> 4.2.0)
189
+ jeweler
190
+ jquery-rails (>= 3.0, < 5)
191
+ kaminari (~> 0.16.1)
192
+ launchy
193
+ pg
194
+ poltergeist (~> 1.5.1)
195
+ pry-rails
196
+ pry-rescue
197
+ rails (~> 4)
198
+ rspec-rails (~> 3.1.0)
199
+ shoulda-matchers (~> 2.7.0)
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
- # Notifly
1
+ # Notifly [![Build Status](https://travis-ci.org/algorich/notifly.svg?branch=master)](https://travis-ci.org/algorich/notifly) [![Dependency Status](https://gemnasium.com/algorich/notifly.svg)](https://gemnasium.com/algorich/notifly)
2
+
3
+ This project is still under development and it intend to offer a full notification
4
+ system, back and front-end. Questions and suggestions are welcome and you can
5
+ use the [issues list](https://github.com/algorich/notifly/issues) on Github to
6
+ provide that feedback.
2
7
 
3
- This project intend to offer a full notification system, back and front-end.
4
8
  In actual version, notifications are composed by:
5
9
 
6
10
  - Receiver (**required**): the object that will receive the notification
@@ -34,6 +38,7 @@ see/change the default configs
34
38
  Notifly **need** to storage the notifications and to do it you need to run the migrations
35
39
 
36
40
  ```shell
41
+ $ rake notifly:install:migrations
37
42
  $ rake db:migrate
38
43
  ```
39
44
 
@@ -41,7 +46,7 @@ Notifly **need** to storage the notifications and to do it you need to run the m
41
46
 
42
47
  ## Back-end
43
48
 
44
- We have two ways to create notifications:
49
+ We have two ways to create notifications:
45
50
 
46
51
  #### 1. Using `#notifly` method in your classes (as callback)
47
52
 
@@ -81,13 +86,13 @@ Value explanation about each parameter:
81
86
  | `data` | A method which returns a hash with usefull values to be persisted, like ticket price or whatever you want to persist. |
82
87
 
83
88
  Note that you can use the `default_values` parameter, it is specific to DRY your
84
- notiflies and set the values to all notiflies. If you need to overwrite some
89
+ notiflies and set the values to all notiflies. If you need to overwrite some
85
90
  default value, just declare it again like the `:accept_gift` notifly above.
86
91
 
87
92
 
88
93
  #### Using `#notifly!` method on your receiver object
89
94
 
90
- If you need to create notifications without callbacks, even in the
95
+ If you need to create notifications without callbacks, even in the
91
96
  controller scope.
92
97
 
93
98
  ```ruby
@@ -120,7 +125,7 @@ The receiver will be always the object which you call `#notifly!`
120
125
 
121
126
  You can access the notifications using the following methods:
122
127
 
123
- - `object.notiflies` (**TODO**)
128
+ - `receiver_object.notiflies`
124
129
  - Querying `Notifly::Notifications`
125
130
  - Using our front-end helpers
126
131
 
@@ -193,5 +198,26 @@ Above are the elements that will loading the Notifly in your layout
193
198
  - **Toggle read**: this link will be rendered by `_actions.html.erb' in
194
199
  `_notification.html.erb`
195
200
 
201
+ # Contributing
202
+
203
+ Consider to use [zenhub](https://www.zenhub.io/), with it will know what issues
204
+ and features are in "progress" or "to do". Also, I encourage you to use
205
+ [git-flow](http://github.com/nvie/gitflow) and [EditorConfig](http://editorconfig.org).
206
+
207
+ Fork the repository. Then, run:
196
208
 
209
+ ```shell
210
+ git clone git@github.com:<username>/notifly.git
211
+ cd notifly
212
+ git branch master origin/master
213
+ git flow init -d
214
+ git flow feature start <your-feature>
215
+ ```
216
+
217
+ Then, do work and commit your changes.
218
+
219
+ ```shell
220
+ git flow feature publish <your feature>
221
+ ```
197
222
 
223
+ When done, open a pull request to your feature branch.
data/Rakefile CHANGED
@@ -1,23 +1,49 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
1
5
  begin
2
- require 'bundler/setup'
3
- rescue LoadError
4
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
5
11
  end
12
+ require 'rake'
6
13
 
7
- require 'rdoc/task'
8
-
9
- RDoc::Task.new(:rdoc) do |rdoc|
10
- rdoc.rdoc_dir = 'rdoc'
11
- rdoc.title = 'Notifly'
12
- rdoc.options << '--line-numbers'
13
- rdoc.rdoc_files.include('README.rdoc')
14
- rdoc.rdoc_files.include('lib/**/*.rb')
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ gem.name = 'notifly'
17
+ gem.authors = ['Pedro Passalini', 'Rafael Carvalho']
18
+ gem.email = ['henrique.passalini@gmail.com', 'rafael@algorich.com.br']
19
+ gem.homepage = 'https://github.com/algorich/notifly'
20
+ gem.summary = 'A full notification system'
21
+ gem.description = 'This project intend to offer a full notification system, back and front-end.'
22
+ gem.license = 'MIT'
15
23
  end
24
+ Jeweler::RubygemsDotOrgTasks.new
16
25
 
17
- APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
18
- load 'rails/tasks/engine.rake'
26
+ require 'rake/testtask'
27
+ Rake::TestTask.new(:test) do |test|
28
+ test.libs << 'lib' << 'test'
29
+ test.pattern = 'test/**/test_*.rb'
30
+ test.verbose = true
31
+ end
19
32
 
33
+ desc "Code coverage detail"
34
+ task :simplecov do
35
+ ENV['COVERAGE'] = "true"
36
+ Rake::Task['test'].execute
37
+ end
20
38
 
39
+ task :default => :test
21
40
 
22
- Bundler::GemHelper.install_tasks
41
+ require 'rdoc/task'
42
+ Rake::RDocTask.new do |rdoc|
43
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
23
44
 
45
+ rdoc.rdoc_dir = 'rdoc'
46
+ rdoc.title = "hello-foo #{version}"
47
+ rdoc.rdoc_files.include('README*')
48
+ rdoc.rdoc_files.include('lib/**/*.rb')
49
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.4
File without changes
data/bin/rails ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
3
+
4
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
5
+ ENGINE_PATH = File.expand_path('../../lib/notifly/engine', __FILE__)
6
+
7
+ # Set up gems listed in the Gemfile.
8
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
9
+ require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
10
+
11
+ require 'rails/all'
12
+ require 'rails/engine/commands'
@@ -17,6 +17,10 @@ module Notifly
17
17
  def copy_config
18
18
  template "config/initializers/notifly.rb"
19
19
  end
20
+
21
+ def remember_to_install_migrations
22
+ display 'Remember to install migrations: "rake notifly:install:migrations"', :red
23
+ end
20
24
  end
21
25
  end
22
26
  end