notifly 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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