planga 0.0.4 → 0.5.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.
- checksums.yaml +4 -4
- data/README.md +23 -8
- data/lib/planga.rb +35 -5
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e12d35f94be4c97a00dd851adef3f5ec093b6d1f
|
|
4
|
+
data.tar.gz: 5e1e66cf22db3239d17dc53a29c895cc7fc995ac
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2ba888e4fe368156d775e7f5c7d50d8a86e259e2737c1aef48373104cc0c37964e83585be3175629e49a78b0ae606ce524b109d72f283c09ec974da17179bd3b
|
|
7
|
+
data.tar.gz: daf392c96dc10e331802fe42a5f98dbde0a8ea5e208951b34b9eff2137adcef348fc274a7397b238e86c90bb5ce1bf5fb4fa12182a6835cc914a4fe8b837a096
|
data/README.md
CHANGED
|
@@ -5,6 +5,15 @@ Planga Ruby Wrapper:
|
|
|
5
5
|
[](http://www.planga.io/docs)
|
|
6
6
|
[](https://rubygems.org/gems/planga)
|
|
7
7
|
|
|
8
|
+
**Installation**
|
|
9
|
+
|
|
10
|
+
Global installation:
|
|
11
|
+
`gem install planga`
|
|
12
|
+
or, for installation in a single project, add
|
|
13
|
+
```
|
|
14
|
+
gem 'planga', '~> 0.5.0'
|
|
15
|
+
```
|
|
16
|
+
to your Gemfile.
|
|
8
17
|
|
|
9
18
|
**Example usage**
|
|
10
19
|
|
|
@@ -12,28 +21,34 @@ Planga Ruby Wrapper:
|
|
|
12
21
|
require 'planga'
|
|
13
22
|
|
|
14
23
|
planga = Planga.new(
|
|
15
|
-
|
|
24
|
+
# These stay the same for all chats:
|
|
25
|
+
:public_api_id => "b5fc4092f05c70445fb758caac5027ca",
|
|
16
26
|
:private_api_key => "ePxoM3OTkW1z6j84JDurqw",
|
|
27
|
+
# These change based on the current user:
|
|
17
28
|
:conversation_id => "general",
|
|
18
29
|
:current_user_id => "1234",
|
|
19
30
|
:current_user_name => "Bob",
|
|
20
|
-
:container_id => "my_container_div"
|
|
21
31
|
)
|
|
22
32
|
|
|
23
33
|
snippet = planga.chat_snippet()
|
|
24
34
|
```
|
|
25
35
|
|
|
36
|
+
For more information on what the different fields mean, see the [main Planga.io documentation](https://planga.io/docs) (until more detailed Ruby-specific documentation has been written).
|
|
37
|
+
|
|
38
|
+
For a guide that goes into a little bit more details, see [Building Live Chat Between Users in a Rails application using Planga.io](https://medium.com/@renevanpelt/building-live-chat-between-users-in-a-rails-application-91bc3a33b545)
|
|
39
|
+
|
|
40
|
+
|
|
26
41
|
**Requirements:**
|
|
27
42
|
|
|
28
43
|
* Ruby >= 2.4.1
|
|
29
|
-
* gem
|
|
44
|
+
* The Planga gem
|
|
30
45
|
|
|
31
|
-
**Build and Deploy new gem:**
|
|
32
46
|
|
|
33
|
-
* run `gem build planga.gemspec`
|
|
34
|
-
* run `gem push planga-n.n.n.gem`
|
|
35
47
|
|
|
36
|
-
**
|
|
48
|
+
**Steps to build and Deploy a new version of the gem:**
|
|
49
|
+
|
|
50
|
+
_(This is only interesting if you want to make a fork of this Gem)_
|
|
37
51
|
|
|
38
|
-
* run `gem install planga`
|
|
39
52
|
|
|
53
|
+
* run `gem build planga.gemspec`
|
|
54
|
+
* run `gem push planga-n.n.n.gem`
|
data/lib/planga.rb
CHANGED
|
@@ -2,11 +2,35 @@ require 'securerandom'
|
|
|
2
2
|
require 'jose'
|
|
3
3
|
require 'json'
|
|
4
4
|
|
|
5
|
+
# This class allows you to create a snippet of HTML/JS that,
|
|
6
|
+
# if included in a webpage, lets the visitor of that webpage
|
|
7
|
+
# connect with the Planga Chat Server and start chatting.
|
|
5
8
|
class Planga
|
|
6
9
|
attr_accessor :public_api_id, :private_api_key, :conversation_id,
|
|
7
|
-
:current_user_id, :current_user_name, :container_id, :remote_host
|
|
10
|
+
:current_user_id, :current_user_name, :container_id, :remote_host, :debug
|
|
8
11
|
|
|
9
12
|
|
|
13
|
+
# The following configuration options are available:
|
|
14
|
+
#
|
|
15
|
+
# Required are:
|
|
16
|
+
#
|
|
17
|
+
# * public_api_id: The public API ID that can be found in the Planga Dashboard.
|
|
18
|
+
# * private_api_key: The private API key that can be found in the Planga Dashboard.
|
|
19
|
+
# * conversation_id: The identifier that uniquely identifies the single conversation
|
|
20
|
+
# that the user can connect with in this chat. Examples would be "general", "product/1234" or "private/123/543".
|
|
21
|
+
# * current_user_id: The internal ID your application uses, which uniquely identifies
|
|
22
|
+
# the user currently using your application.
|
|
23
|
+
# * current_user_name: The name of this user. This name is shown in the chat interface
|
|
24
|
+
# next to the typed messages
|
|
25
|
+
#
|
|
26
|
+
# Optional are:
|
|
27
|
+
#
|
|
28
|
+
# * remote_host: This can point to another host, if you are hosting your own instance of Planga.
|
|
29
|
+
# It defaults to the URL of Planga's main chat server. (`//chat.planga.io`)
|
|
30
|
+
# * container_id: If you want a custom HTML ID attribute specified to the created HTML element,
|
|
31
|
+
# you can enter it here.
|
|
32
|
+
# * debug: (defaults to `false`).
|
|
33
|
+
#
|
|
10
34
|
def initialize(**conf)
|
|
11
35
|
@public_api_id = conf[:public_api_id]
|
|
12
36
|
@private_api_key = conf[:private_api_key]
|
|
@@ -15,6 +39,7 @@ class Planga
|
|
|
15
39
|
@current_user_name = conf[:current_user_name]
|
|
16
40
|
@container_id = conf[:container_id]
|
|
17
41
|
@remote_host = conf[:remote_host] || "//chat.planga.io"
|
|
42
|
+
@debug = conf[:debug] || false
|
|
18
43
|
|
|
19
44
|
if not container_id
|
|
20
45
|
@container_id = "planga-chat-" + SecureRandom.hex
|
|
@@ -22,6 +47,7 @@ class Planga
|
|
|
22
47
|
end
|
|
23
48
|
|
|
24
49
|
|
|
50
|
+
# Creates a full-fledged HTML snippet that includes Planga in your page.
|
|
25
51
|
def chat_snippet
|
|
26
52
|
return %{
|
|
27
53
|
<script type=\"text/javascript\" src=\"#{self.remote_host}/js/js_snippet.js\"></script>
|
|
@@ -29,16 +55,20 @@ class Planga
|
|
|
29
55
|
<script type=\"text/javascript\">
|
|
30
56
|
new Planga(document.getElementById(\"#{self.container_id}\"), \{
|
|
31
57
|
public_api_id: \"#{self.public_api_id}\",
|
|
32
|
-
encrypted_options: \"#{
|
|
58
|
+
encrypted_options: \"#{encrypted_options()}\",
|
|
33
59
|
socket_location: \"#{self.remote_host}/socket\",
|
|
60
|
+
debug: #{self.debug},
|
|
34
61
|
\});
|
|
35
62
|
</script>
|
|
36
63
|
}
|
|
37
64
|
end
|
|
38
65
|
|
|
39
66
|
|
|
40
|
-
|
|
41
|
-
|
|
67
|
+
# Returns the encrypted configuration.
|
|
68
|
+
#
|
|
69
|
+
# This function is useful if (and only if) you do not want to use the normal chat snippet,
|
|
70
|
+
# but want to completely customize how Planga loads (so you want to create it manually).
|
|
71
|
+
def encrypted_options
|
|
42
72
|
key = JOSE::JWK.from({"k" => self.private_api_key, "kty" => "oct"})
|
|
43
73
|
|
|
44
74
|
payload = {
|
|
@@ -53,4 +83,4 @@ class Planga
|
|
|
53
83
|
{ "alg" => "A128GCMKW", "enc" => "A128GCM" }
|
|
54
84
|
).compact
|
|
55
85
|
end
|
|
56
|
-
end
|
|
86
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: planga
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Wiebe Marten Wijnja
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2018-09
|
|
12
|
+
date: 2018-10-09 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: jose
|
|
@@ -25,15 +25,15 @@ dependencies:
|
|
|
25
25
|
- - "~>"
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
27
|
version: '1.1'
|
|
28
|
-
description: Wrapper for interacting with the Planga
|
|
29
|
-
email:
|
|
28
|
+
description: Ruby Wrapper for interacting with the Planga Chat Service.
|
|
29
|
+
email: contact@planga.io
|
|
30
30
|
executables: []
|
|
31
31
|
extensions: []
|
|
32
32
|
extra_rdoc_files: []
|
|
33
33
|
files:
|
|
34
34
|
- README.md
|
|
35
35
|
- lib/planga.rb
|
|
36
|
-
homepage: https://github.com/ResiliaDev/
|
|
36
|
+
homepage: https://github.com/ResiliaDev/planga-ruby
|
|
37
37
|
licenses:
|
|
38
38
|
- MIT
|
|
39
39
|
metadata: {}
|
|
@@ -53,8 +53,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
53
53
|
version: '0'
|
|
54
54
|
requirements: []
|
|
55
55
|
rubyforge_project:
|
|
56
|
-
rubygems_version: 2.6.
|
|
56
|
+
rubygems_version: 2.6.13
|
|
57
57
|
signing_key:
|
|
58
58
|
specification_version: 4
|
|
59
|
-
summary: Planga
|
|
59
|
+
summary: Ruby Wrapper for the Planga Chat Service
|
|
60
60
|
test_files: []
|