ringcentral-avatars 0.3.4 → 0.4.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/CHANGELOG.md +3 -0
- data/README.md +43 -0
- data/lib/ringcentral-avatars.rb +2 -2
- data/lib/ringcentral-avatars/creator.rb +22 -2
- metadata +22 -3
- data/ringcentral-avatars.gemspec +0 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e71805854c33ad41768b9be7fea7a4b7d0b7ef68
|
4
|
+
data.tar.gz: cd302971a7e19a95769569540c0f04bd57232ed7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d64f64d610d2bcf710645a3018946fb00a0bf036b976b8f12e81813e51c8ccfb31eac6c410a544613de95960ca0fd7f2dd471f5b3bad3491a0fc3fa4c1c15a2b
|
7
|
+
data.tar.gz: 7c653fd002b68e77b289803ae96889b8d88fcd0d42de0c0b66b1f45cff49390f15b467b74c50f0e43e3b147bb0a3af7a7cf6ae17c5de1d08e342eddff8da184f
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -27,6 +27,8 @@ This library uses [Avatarly](https://github.com/lucek/avatarly) to generate the
|
|
27
27
|
|
28
28
|
Experimental [Identicon](https://en.wikipedia.org/wiki/Identicon) support is also included via [ruby_identicon](https://github.com/chrisbranson/ruby_identicon). Please see the source for usage until it gets a bit more use.
|
29
29
|
|
30
|
+
PNG metadata is supported which can be uploaded to and downloaded from RingCentral.
|
31
|
+
|
30
32
|
## Pre-requisites
|
31
33
|
|
32
34
|
* ImageMagick
|
@@ -64,6 +66,43 @@ avatars.create_avatar ext, overwrite: true # overwrite existing for an extension
|
|
64
66
|
|
65
67
|
See [Avatarly](https://github.com/lucek/avatarly) for avatar customization options. The default avatar size is `600`.
|
66
68
|
|
69
|
+
### Adding PNG Metadata
|
70
|
+
|
71
|
+
RingCentral Avatars supports adding PNG Metadata per the [W3C PNG Specification](https://www.w3.org/TR/PNG/#11textinfo). This can be useful for tracking avatars created by this library for selective updates vs. avatars uploaded via other means.
|
72
|
+
|
73
|
+
The default description is `RingCentral Default Avatar`, however it can be modified as shown below.
|
74
|
+
|
75
|
+
```ruby
|
76
|
+
avatars = RingCentral::Avatars.new client, png_metadata: { 'Description': 'RingCentral Avatar' }
|
77
|
+
|
78
|
+
avatars.png_metadata['Description'] = 'Updated Description'
|
79
|
+
```
|
80
|
+
|
81
|
+
## Sample Scripts
|
82
|
+
|
83
|
+
The following sample scripts are provided in the GitHub repo under the `./scripts` directory.
|
84
|
+
|
85
|
+
* `update_avatar.rb` - Updates all or own avatar image with optional rewrite CLI arguments.
|
86
|
+
* `get_avatar.rb` - Retrieve and save own avatar image to `_my_avatar.png` file.
|
87
|
+
* `avatar_info.rb` - Parses and dumps PNG metadata for validation of `_my_avatar.png` file.
|
88
|
+
|
89
|
+
To run these files, install dependencies and configure the demo with the following:
|
90
|
+
|
91
|
+
```bash
|
92
|
+
$ cd scripts
|
93
|
+
$ bundle
|
94
|
+
$ cp rc_config_sample.env.txt .env
|
95
|
+
$ vi .env
|
96
|
+
```
|
97
|
+
|
98
|
+
Run the scripts with the following:
|
99
|
+
|
100
|
+
```bash
|
101
|
+
$ ruby update_avatar.rb --overwrite
|
102
|
+
$ ruby get_avatar.rb
|
103
|
+
$ ruby avatar_info.rb
|
104
|
+
```
|
105
|
+
|
67
106
|
### Change Log
|
68
107
|
|
69
108
|
See [CHANGELOG.md](CHANGELOG.md)
|
@@ -82,6 +121,10 @@ RingCentral API Explorer
|
|
82
121
|
|
83
122
|
* https://developer.ringcentral.com/api-explorer/latest/index.html
|
84
123
|
|
124
|
+
PNG Info
|
125
|
+
|
126
|
+
* https://www.w3.org/TR/PNG/#11textinfo
|
127
|
+
|
85
128
|
## Contributing
|
86
129
|
|
87
130
|
1. Fork it ( http://github.com/ringcentral-ruby/ringcentral-avatars-ruby/fork )
|
data/lib/ringcentral-avatars.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
require 'avatarly'
|
2
|
+
require 'chunky_png'
|
3
|
+
require 'ruby_identicon'
|
4
|
+
|
2
5
|
require 'faraday'
|
3
6
|
require 'mime/types'
|
4
7
|
require 'ringcentral_sdk'
|
5
|
-
require 'ruby_identicon'
|
6
8
|
require 'tempfile'
|
7
9
|
|
8
10
|
module RingCentral
|
@@ -10,11 +12,15 @@ module RingCentral
|
|
10
12
|
class Creator
|
11
13
|
DEFAULT_SIZE = 600
|
12
14
|
DEFAULT_FORMAT = 'png'
|
15
|
+
PNG_DEFAULT_METADATA = {
|
16
|
+
'Description' => 'RingCentral Default Avatar'
|
17
|
+
}
|
13
18
|
|
14
19
|
attr_accessor :avatar_opts
|
15
20
|
attr_accessor :avatars
|
16
21
|
attr_accessor :client
|
17
22
|
attr_accessor :extensions
|
23
|
+
attr_accessor :png_metadata
|
18
24
|
|
19
25
|
##
|
20
26
|
# Requires RingCentralSdk instance
|
@@ -24,6 +30,11 @@ module RingCentral
|
|
24
30
|
if !opts.key?(:initials_opts) && opts.key?(:avatar_opts)
|
25
31
|
opts[:initials_opts] = opts[:avatar_opts]
|
26
32
|
end
|
33
|
+
if opts.key(:png_metadata)
|
34
|
+
opts[:png_metadata] = PNG_DEFAULT_METADATA.merge(opts[:png_metadata])
|
35
|
+
else
|
36
|
+
opts[:png_metadata] = PNG_DEFAULT_METADATA
|
37
|
+
end
|
27
38
|
@avatars = RingCentral::Avatars::MultiAvatar.new opts
|
28
39
|
load_extensions
|
29
40
|
end
|
@@ -129,6 +140,7 @@ module RingCentral
|
|
129
140
|
@avatarly_opts = inflate_avatarly_opts opts[:initials_opts]
|
130
141
|
@identicon_opts = inflate_identicon_opts opts[:identicon_opts]
|
131
142
|
@style = opts.key?(:style) ? opts[:style] : DEFAULT_STYLE
|
143
|
+
@png_metadata = opts.key?(:png_metadata) ? opts[:png_metadata] : {}
|
132
144
|
end
|
133
145
|
|
134
146
|
def inflate_avatarly_opts(avatarly_opts = {})
|
@@ -146,6 +158,14 @@ module RingCentral
|
|
146
158
|
blob = @style == 'initials' \
|
147
159
|
? Avatarly.generate_avatar(text, @avatarly_opts) \
|
148
160
|
: RubyIdenticon.create(text, @identicon_opts)
|
161
|
+
inflate_avatar_blob_png blob
|
162
|
+
end
|
163
|
+
|
164
|
+
def inflate_avatar_blob_png(blob)
|
165
|
+
return blob unless avatar_format == 'png' && @png_metadata
|
166
|
+
img = ChunkyPNG::Image.from_blob blob
|
167
|
+
img.metadata = @png_metadata
|
168
|
+
img.to_blob
|
149
169
|
end
|
150
170
|
|
151
171
|
def avatar_temp_file(text, style = nil)
|
@@ -179,4 +199,4 @@ module RingCentral
|
|
179
199
|
end
|
180
200
|
end
|
181
201
|
end
|
182
|
-
end
|
202
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ringcentral-avatars
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Wang
|
@@ -30,6 +30,26 @@ dependencies:
|
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 1.5.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: chunky_png
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '1.3'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 1.3.8
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.3'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 1.3.8
|
33
53
|
- !ruby/object:Gem::Dependency
|
34
54
|
name: faraday
|
35
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,7 +213,6 @@ files:
|
|
193
213
|
- Rakefile
|
194
214
|
- lib/ringcentral-avatars.rb
|
195
215
|
- lib/ringcentral-avatars/creator.rb
|
196
|
-
- ringcentral-avatars.gemspec
|
197
216
|
homepage: https://github.com/grokify/
|
198
217
|
licenses:
|
199
218
|
- MIT
|
@@ -214,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
233
|
version: '0'
|
215
234
|
requirements: []
|
216
235
|
rubyforge_project:
|
217
|
-
rubygems_version: 2.
|
236
|
+
rubygems_version: 2.6.7
|
218
237
|
signing_key:
|
219
238
|
specification_version: 4
|
220
239
|
summary: RingCentral library for auto-generating Gmail style avatars
|
data/ringcentral-avatars.gemspec
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
lib = 'ringcentral-avatars'
|
2
|
-
lib_file = File.expand_path("../lib/#{lib}.rb", __FILE__)
|
3
|
-
File.read(lib_file) =~ /\bVERSION\s*=\s*["'](.+?)["']/
|
4
|
-
version = $1
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = lib
|
8
|
-
s.version = version
|
9
|
-
s.date = '2016-11-03'
|
10
|
-
s.summary = 'RingCentral library for auto-generating Gmail style avatars'
|
11
|
-
s.description = 'Create RingCentral avatars using Gmail-style avatars'
|
12
|
-
s.authors = ['John Wang']
|
13
|
-
s.email = 'johncwang@gmail.com'
|
14
|
-
s.homepage = 'https://github.com/grokify/'
|
15
|
-
s.licenses = ['MIT']
|
16
|
-
s.files = Dir['lib/**/**/*']
|
17
|
-
s.files += Dir['[A-Z]*'] + Dir['test/**/*']
|
18
|
-
|
19
|
-
s.required_ruby_version = '>= 2.2.2'
|
20
|
-
|
21
|
-
s.add_dependency 'avatarly', '~> 1.5', '>= 1.5.0'
|
22
|
-
s.add_dependency 'faraday', '~> 0.9', '>= 0.9'
|
23
|
-
s.add_dependency 'mime-types', '~> 3.0', '>= 3.1'
|
24
|
-
s.add_dependency 'ringcentral_sdk', '~> 1', '>= 1.3.4'
|
25
|
-
s.add_dependency 'ruby_identicon', '~> 0', '>= 0.0.5'
|
26
|
-
|
27
|
-
s.add_development_dependency 'coveralls', '~> 0'
|
28
|
-
s.add_development_dependency 'mocha', '~> 1'
|
29
|
-
s.add_development_dependency 'rake', '~> 11'
|
30
|
-
s.add_development_dependency 'simplecov', '~> 0'
|
31
|
-
s.add_development_dependency 'test-unit', '~> 3'
|
32
|
-
end
|