pinkman 0.9.9.9.8 → 0.9.9.9.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49cfcfa42bf47e4d1d37463921194548b5baa855aab534f4b8b894df7e9629af
4
- data.tar.gz: 759225692ad976cf718d1b6a681ebb83fac3ddece90bd7407780e9bb14e276ef
3
+ metadata.gz: 52f046bfc67c43eb0162e23062de3c6a286f1c740ce0e7cb7e3eb0d67a43646a
4
+ data.tar.gz: b952d2a6962e886eee3186d3a71cebaa5e6a728c5afb0ada3abf4d61b81774b7
5
5
  SHA512:
6
- metadata.gz: 3bf4c7db04d4cd6b9eff756bb1b6dd5c6b8c09aa83eeccd87be5e0d4c9a7d7bc0963d18f9229a417c2a94621cd658bfa8beb42dfe7fd40237b575f3ab56bce26
7
- data.tar.gz: 846b934cfde288844793534d8dd261ea3a43e02cab1b256f8ad858f73988eda5328da99310d12a3332fe5a30db6469fca4a5e3b90999c4baf0b38cba9b956466
6
+ metadata.gz: 04e12687c844dea1204df405065ddfb286b1a98527fe1c42e07bdc3294b8934088d588e1e4d421507a309ceacef7065243dc00a15ea6234a3f3eafce6de87f6b
7
+ data.tar.gz: ce64f0726d92c4d267ac876729a7e44c824d778bb1cc0b1e7a1ba6c8777d32d2ac475e17b581fbf6a03d4918150a7e0a850cb507015e472988d35596d2d5a452
@@ -291,6 +291,7 @@ class window.PinkmanController extends window.PinkmanObject
291
291
  throw 'Callback not found.'
292
292
  params = if (typeof opt == 'object' and opt['params']?) then opt['params'] else new Object
293
293
  params.channel = channel
294
+ params.room = opt.room if $p.isObject(opt) and opt.room?
294
295
  Pinkman.cable.subscriptions.create params, received: callback
295
296
 
296
297
  scrolling: (callback) ->
@@ -0,0 +1,28 @@
1
+ require 'rails/generators/base'
2
+
3
+ module Pinkman
4
+ class ChannelGenerator < ::Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+
7
+ argument :class_name, type: :string, default: "nameHere"
8
+
9
+ def generate_files
10
+ template "channel.rb.erb", "app/channels/#{file_name}"
11
+ end
12
+
13
+ private
14
+
15
+ def model_name
16
+ class_name.camelize
17
+ end
18
+
19
+ def channel_name
20
+ model_name + 'Channel'
21
+ end
22
+
23
+ def file_name
24
+ class_name.underscore + "_channel.rb"
25
+ end
26
+
27
+ end
28
+ end
@@ -45,6 +45,10 @@ module Pinkman
45
45
  generate 'pinkman:initializer'
46
46
  end
47
47
 
48
+ def create_pinkman_channel
49
+ generate 'pinkman:pinkman_channel'
50
+ end
51
+
48
52
  def install_hello_world_controller
49
53
  copy_file "hello.controller.coffee.erb", Rails.root.join('app','assets','javascripts','pinkman','app','controllers','hello.coffee')
50
54
  end
@@ -0,0 +1,12 @@
1
+ require 'rails/generators/base'
2
+
3
+ module Pinkman
4
+ class PinkmanChannelGenerator < ::Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+
7
+ def copy_pinkman_channel_file
8
+ template "pinkman_channel.rb", "app/channels/pinkman_channel.rb"
9
+ end
10
+
11
+ end
12
+ end
@@ -10,6 +10,7 @@ module Pinkman
10
10
  generate "pinkman:api #{class_name}"
11
11
  generate "pinkman:model #{class_name}"
12
12
  generate "pinkman:serializer #{class_name}"
13
+ generate "pinkman:channel #{class_name}"
13
14
  end
14
15
  end
15
16
  end
@@ -0,0 +1,10 @@
1
+ class <%= channel_name %> < PinkmanChannel
2
+
3
+ def subscribed
4
+ stream_from(room) if <%= model_name %>.allow_streaming?(room,scope)
5
+ end
6
+
7
+ def unsubscribed
8
+ end
9
+
10
+ end
@@ -0,0 +1,16 @@
1
+ class PinkmanChannel < ApplicationCable::Channel
2
+
3
+ # TO DO
4
+ def scope
5
+ :public
6
+ end
7
+
8
+ def room
9
+ if params[:room].present?
10
+ params[:room].to_sym
11
+ else
12
+ raise ArgumentError, 'Pinkman: Room not specified.'
13
+ end
14
+ end
15
+
16
+ end
@@ -39,6 +39,23 @@ module Pinkman
39
39
  # Extending ActiveRecord
40
40
  ActiveRecord::Base.singleton_class.class_eval do
41
41
 
42
+ # Real time
43
+ def broadcast_to room, scope
44
+ @broadcasting_to ||= {}
45
+ @broadcasting_to[room] = scope
46
+ ['create','update','destroy'].each do |action|
47
+ send("after_#{action}".to_sym, "broadcast_#{action}_#{room}".to_sym)
48
+ define_method "broadcast_#{action}_#{room}" do
49
+ ActionCable.server.broadcast room, {action: action, data: json_hash(scope)}
50
+ end
51
+ end
52
+ end
53
+
54
+ def allow_streaming? room, scope
55
+ @broadcasting_to.is_a?(Hash) and @broadcasting_to[room] == scope
56
+ end
57
+
58
+
42
59
  # Serializer
43
60
  def serializer= value
44
61
  @serializer = value
@@ -1,3 +1,3 @@
1
1
  module Pinkman
2
- VERSION = "0.9.9.9.8"
2
+ VERSION = "0.9.9.9.9"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pinkman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.9.9.8
4
+ version: 0.9.9.9.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agilso Oliveira
@@ -235,12 +235,14 @@ files:
235
235
  - lib/generators/pinkman/USAGE
236
236
  - lib/generators/pinkman/api_generator.rb
237
237
  - lib/generators/pinkman/app_base_generator.rb
238
+ - lib/generators/pinkman/channel_generator.rb
238
239
  - lib/generators/pinkman/controller_generator.rb
239
240
  - lib/generators/pinkman/crud_generator.rb
240
241
  - lib/generators/pinkman/initializer_generator.rb
241
242
  - lib/generators/pinkman/install_generator.rb
242
243
  - lib/generators/pinkman/model_generator.rb
243
244
  - lib/generators/pinkman/page_generator.rb
245
+ - lib/generators/pinkman/pinkman_channel_generator.rb
244
246
  - lib/generators/pinkman/resource_generator.rb
245
247
  - lib/generators/pinkman/route_generator.rb
246
248
  - lib/generators/pinkman/route_resource_generator.rb
@@ -254,6 +256,7 @@ files:
254
256
  - lib/generators/pinkman/templates/app_object.coffee.erb
255
257
  - lib/generators/pinkman/templates/app_router.coffee.erb
256
258
  - lib/generators/pinkman/templates/app_routes.coffee.erb
259
+ - lib/generators/pinkman/templates/channel.rb.erb
257
260
  - lib/generators/pinkman/templates/collection.coffee.erb
258
261
  - lib/generators/pinkman/templates/controller.coffee.erb
259
262
  - lib/generators/pinkman/templates/example.mixin.coffee.erb
@@ -264,6 +267,7 @@ files:
264
267
  - lib/generators/pinkman/templates/pink_template.html.erb.erb
265
268
  - lib/generators/pinkman/templates/pink_template.html.haml.erb
266
269
  - lib/generators/pinkman/templates/pink_template.html.slim.erb
270
+ - lib/generators/pinkman/templates/pinkman_channel.rb
267
271
  - lib/generators/pinkman/templates/serializer.rb.erb
268
272
  - lib/pinkman.rb
269
273
  - lib/pinkman/base_helper.rb