chat 0.0.1 → 0.2.0

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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +47 -22
  4. data/Rakefile +27 -1
  5. data/app/assets/config/chat_manifest.js +2 -0
  6. data/app/assets/javascripts/chat.js +16 -0
  7. data/app/assets/javascripts/chat/cable.js +13 -0
  8. data/app/assets/javascripts/chat/channels/message.coffee +75 -0
  9. data/app/assets/javascripts/chat/channels/notification.coffee +44 -0
  10. data/app/assets/javascripts/chat/channels/status.coffee +13 -0
  11. data/app/assets/javascripts/chat/emojionearea.min.js +1 -0
  12. data/app/assets/javascripts/chat/messages.coffee +44 -0
  13. data/app/assets/stylesheets/chat.css +15 -0
  14. data/app/assets/stylesheets/chat/chat.sass +25 -0
  15. data/app/assets/stylesheets/chat/checkbox.sass +80 -0
  16. data/app/assets/stylesheets/chat/emojionearea.min.css +1 -0
  17. data/app/assets/stylesheets/chat/header.sass +50 -0
  18. data/app/assets/stylesheets/chat/launch.sass +26 -0
  19. data/app/assets/stylesheets/chat/list.sass +45 -0
  20. data/app/assets/stylesheets/chat/message_form.sass +50 -0
  21. data/app/assets/stylesheets/chat/new.sass +53 -0
  22. data/app/assets/stylesheets/chat/transcript.sass +76 -0
  23. data/app/channels/chat/messages_channel.rb +11 -0
  24. data/app/channels/chat/notification_channel.rb +10 -0
  25. data/app/channels/chat/status_channel.rb +12 -0
  26. data/app/controllers/chat/application_controller.rb +5 -0
  27. data/app/controllers/chat/conversations_controller.rb +30 -0
  28. data/app/controllers/chat/messages_controller.rb +28 -0
  29. data/app/helpers/chat/application_helper.rb +62 -0
  30. data/app/jobs/chat/application_job.rb +5 -0
  31. data/app/jobs/chat/message_relay_job.rb +40 -0
  32. data/app/jobs/chat/notification_relay_job.rb +11 -0
  33. data/app/jobs/chat/status_relay_job.rb +9 -0
  34. data/app/mailers/chat/application_mailer.rb +6 -0
  35. data/app/models/chat/application_record.rb +3 -0
  36. data/app/models/chat/conversation.rb +9 -0
  37. data/app/models/chat/dot_command.rb +26 -0
  38. data/app/models/chat/dot_command/gif.rb +17 -0
  39. data/app/models/chat/dot_command/leave.rb +16 -0
  40. data/app/models/chat/dot_command/shrug.rb +27 -0
  41. data/app/models/chat/dot_command/validator.rb +23 -0
  42. data/app/models/chat/message.rb +29 -0
  43. data/app/models/chat/session.rb +10 -0
  44. data/app/views/chat/_chat.html.haml +14 -0
  45. data/app/views/chat/conversations/_index.html.haml +11 -0
  46. data/app/views/chat/conversations/_new.html.haml +10 -0
  47. data/app/views/chat/conversations/_show.html.haml +9 -0
  48. data/app/views/chat/conversations/create.js.erb +21 -0
  49. data/app/views/chat/conversations/show.js.erb +12 -0
  50. data/app/views/chat/messages/_message.haml +13 -0
  51. data/app/views/layouts/chat/application.html.erb +14 -0
  52. data/config/routes.rb +5 -0
  53. data/lib/chat.rb +29 -3
  54. data/lib/chat/engine.rb +5 -0
  55. data/lib/chat/user.rb +51 -0
  56. data/lib/chat/version.rb +1 -1
  57. data/lib/generators/chat/install/install_generator.rb +68 -0
  58. data/lib/generators/chat/install/templates/add_chat_to_users.rb +9 -0
  59. data/lib/generators/chat/install/templates/chat.rb +11 -0
  60. data/lib/generators/chat/install/templates/create_chat.rb +29 -0
  61. data/lib/tasks/chat_tasks.rake +4 -0
  62. metadata +296 -16
  63. data/.gitignore +0 -9
  64. data/Gemfile +0 -4
  65. data/LICENSE.txt +0 -21
  66. data/bin/console +0 -14
  67. data/bin/setup +0 -8
  68. data/chat.gemspec +0 -22
@@ -1,3 +1,3 @@
1
1
  module Chat
2
- VERSION = "0.0.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -0,0 +1,68 @@
1
+ require "rails/generators/base"
2
+ require "rails/generators/active_record"
3
+ require "rails/generators/migration"
4
+
5
+ module Chat
6
+ module Generators
7
+ class InstallGenerator < Rails::Generators::Base
8
+ include Rails::Generators::Migration
9
+ source_root File.expand_path("../templates", __FILE__)
10
+
11
+ desc "Adds view helpers, user methods, and migrations for chat"
12
+
13
+ def check_user_table
14
+ raise UsersTableNotImplemented unless users_table_exists?
15
+ end
16
+
17
+ def create_chat_initializer
18
+ copy_file "chat.rb", "config/initializers/chat.rb"
19
+ end
20
+
21
+ def add_helper
22
+ file = "app/controllers/application_controller.rb"
23
+ after = "class ApplicationController < ActionController::Base\n"
24
+ inject_into_file file, after: after do
25
+ " helper Chat::Engine.helpers\n"
26
+ end
27
+ end
28
+
29
+ def inject_chat_into_user_model
30
+ file = "app/models/user.rb"
31
+ after = "class User < ApplicationRecord\n"
32
+ inject_into_file file, after: after do
33
+ " include Chat::User\n"
34
+ end
35
+ end
36
+
37
+ def add_chat_status_migration
38
+ migration_template "add_chat_to_users.rb",
39
+ "db/migrate/add_chat_to_users.rb"
40
+ migration_template "create_chat.rb", "db/migrate/create_chat.rb"
41
+ end
42
+
43
+ def add_chat_route
44
+ route "mount Chat::Engine => \"/chat\", as: \"chat\""
45
+ end
46
+
47
+ class UsersTableNotImplemented < StandardError
48
+ def initialize(msg = "User model not yet implemented")
49
+ super
50
+ end
51
+ end
52
+
53
+ def self.next_migration_number(dirname)
54
+ ActiveRecord::Generators::Base.next_migration_number(dirname)
55
+ end
56
+
57
+ private
58
+
59
+ def users_table_exists?
60
+ if ActiveRecord::Base.connection.respond_to?(:data_source_exists?)
61
+ ActiveRecord::Base.connection.data_source_exists?(:users)
62
+ else
63
+ ActiveRecord::Base.connection.table_exists?(:users)
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,9 @@
1
+ class AddChatToUsers < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ add_column :users, :chat_status, :string, default: "offline"
4
+ end
5
+
6
+ def self.down
7
+ remove_column :users, :chat_status, :string, default: "offline"
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ Chat.setup do |config|
2
+ # Clearance => :signed_in?
3
+ # Devise => :user_signed_in?
4
+ config.signed_in = :signed_in?
5
+
6
+ # Clearance => :require_login
7
+ # Devise => :authenticate_user!
8
+ config.logged_in_check = :require_login
9
+
10
+ config.user_avatar = :image
11
+ end
@@ -0,0 +1,29 @@
1
+ class CreateChat < ActiveRecord::Migration[5.0]
2
+ def self.up
3
+ create_table :chat_conversations do |t|
4
+ t.timestamps
5
+ end
6
+
7
+ create_table :chat_sessions do |t|
8
+ t.belongs_to :conversation
9
+ t.belongs_to :user
10
+
11
+ t.timestamps
12
+ end
13
+
14
+ create_table :chat_messages do |t|
15
+ t.belongs_to :user
16
+ t.text :text
17
+ t.belongs_to :conversation
18
+ t.attachment :image
19
+
20
+ t.timestamps
21
+ end
22
+ end
23
+
24
+ def self.down
25
+ drop_table :chat_conversations
26
+ drop_table :chat_sessions
27
+ drop_table :chat_messages
28
+ end
29
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :chat do
3
+ # # Task goes here
4
+ # end
metadata CHANGED
@@ -1,43 +1,273 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - npezza93
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-07 00:00:00.000000000 Z
11
+ date: 2016-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: material_icons
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: paperclip
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '1.12'
20
- type: :development
33
+ version: 5.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 5.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: composite_primary_keys
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: jquery-fileupload-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 5.0.0
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 5.0.0.1
79
+ type: :runtime
21
80
  prerelease: false
22
81
  version_requirements: !ruby/object:Gem::Requirement
23
82
  requirements:
24
83
  - - "~>"
25
84
  - !ruby/object:Gem::Version
26
- version: '1.12'
85
+ version: 5.0.0
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 5.0.0.1
89
+ - !ruby/object:Gem::Dependency
90
+ name: coffee-rails
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '4.2'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '4.2'
103
+ - !ruby/object:Gem::Dependency
104
+ name: jquery-rails
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: giphy
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: sidekiq
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ - !ruby/object:Gem::Dependency
146
+ name: haml
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: pry-rails
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ - !ruby/object:Gem::Dependency
174
+ name: clearance
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ - !ruby/object:Gem::Dependency
188
+ name: high_voltage
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: faker
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ - !ruby/object:Gem::Dependency
216
+ name: puma
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - ">="
227
+ - !ruby/object:Gem::Version
228
+ version: '0'
229
+ - !ruby/object:Gem::Dependency
230
+ name: sqlite3
231
+ requirement: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ version: '0'
236
+ type: :development
237
+ prerelease: false
238
+ version_requirements: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ - !ruby/object:Gem::Dependency
244
+ name: rubocop
245
+ requirement: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - ">="
248
+ - !ruby/object:Gem::Version
249
+ version: '0'
250
+ type: :development
251
+ prerelease: false
252
+ version_requirements: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ version: '0'
27
257
  - !ruby/object:Gem::Dependency
28
- name: rake
258
+ name: turbolinks
29
259
  requirement: !ruby/object:Gem::Requirement
30
260
  requirements:
31
261
  - - "~>"
32
262
  - !ruby/object:Gem::Version
33
- version: '10.0'
263
+ version: '5'
34
264
  type: :development
35
265
  prerelease: false
36
266
  version_requirements: !ruby/object:Gem::Requirement
37
267
  requirements:
38
268
  - - "~>"
39
269
  - !ruby/object:Gem::Version
40
- version: '10.0'
270
+ version: '5'
41
271
  description:
42
272
  email:
43
273
  - npezza93@gmail.com
@@ -45,16 +275,66 @@ executables: []
45
275
  extensions: []
46
276
  extra_rdoc_files: []
47
277
  files:
48
- - ".gitignore"
49
- - Gemfile
50
- - LICENSE.txt
278
+ - MIT-LICENSE
51
279
  - README.md
52
280
  - Rakefile
53
- - bin/console
54
- - bin/setup
55
- - chat.gemspec
281
+ - app/assets/config/chat_manifest.js
282
+ - app/assets/javascripts/chat.js
283
+ - app/assets/javascripts/chat/cable.js
284
+ - app/assets/javascripts/chat/channels/message.coffee
285
+ - app/assets/javascripts/chat/channels/notification.coffee
286
+ - app/assets/javascripts/chat/channels/status.coffee
287
+ - app/assets/javascripts/chat/emojionearea.min.js
288
+ - app/assets/javascripts/chat/messages.coffee
289
+ - app/assets/stylesheets/chat.css
290
+ - app/assets/stylesheets/chat/chat.sass
291
+ - app/assets/stylesheets/chat/checkbox.sass
292
+ - app/assets/stylesheets/chat/emojionearea.min.css
293
+ - app/assets/stylesheets/chat/header.sass
294
+ - app/assets/stylesheets/chat/launch.sass
295
+ - app/assets/stylesheets/chat/list.sass
296
+ - app/assets/stylesheets/chat/message_form.sass
297
+ - app/assets/stylesheets/chat/new.sass
298
+ - app/assets/stylesheets/chat/transcript.sass
299
+ - app/channels/chat/messages_channel.rb
300
+ - app/channels/chat/notification_channel.rb
301
+ - app/channels/chat/status_channel.rb
302
+ - app/controllers/chat/application_controller.rb
303
+ - app/controllers/chat/conversations_controller.rb
304
+ - app/controllers/chat/messages_controller.rb
305
+ - app/helpers/chat/application_helper.rb
306
+ - app/jobs/chat/application_job.rb
307
+ - app/jobs/chat/message_relay_job.rb
308
+ - app/jobs/chat/notification_relay_job.rb
309
+ - app/jobs/chat/status_relay_job.rb
310
+ - app/mailers/chat/application_mailer.rb
311
+ - app/models/chat/application_record.rb
312
+ - app/models/chat/conversation.rb
313
+ - app/models/chat/dot_command.rb
314
+ - app/models/chat/dot_command/gif.rb
315
+ - app/models/chat/dot_command/leave.rb
316
+ - app/models/chat/dot_command/shrug.rb
317
+ - app/models/chat/dot_command/validator.rb
318
+ - app/models/chat/message.rb
319
+ - app/models/chat/session.rb
320
+ - app/views/chat/_chat.html.haml
321
+ - app/views/chat/conversations/_index.html.haml
322
+ - app/views/chat/conversations/_new.html.haml
323
+ - app/views/chat/conversations/_show.html.haml
324
+ - app/views/chat/conversations/create.js.erb
325
+ - app/views/chat/conversations/show.js.erb
326
+ - app/views/chat/messages/_message.haml
327
+ - app/views/layouts/chat/application.html.erb
328
+ - config/routes.rb
56
329
  - lib/chat.rb
330
+ - lib/chat/engine.rb
331
+ - lib/chat/user.rb
57
332
  - lib/chat/version.rb
333
+ - lib/generators/chat/install/install_generator.rb
334
+ - lib/generators/chat/install/templates/add_chat_to_users.rb
335
+ - lib/generators/chat/install/templates/chat.rb
336
+ - lib/generators/chat/install/templates/create_chat.rb
337
+ - lib/tasks/chat_tasks.rake
58
338
  homepage: https://github.com/npezza93/chat
59
339
  licenses:
60
340
  - MIT