ringcentral-avatars 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e54f32761102a609bd4076cf6ffbe88261ac5ee0
4
+ data.tar.gz: ccdf57695c53e2662927b203ae10705369574c6c
5
+ SHA512:
6
+ metadata.gz: 55588a39b9a842c70aaa38611d6f7dc2e0fc61dbe62af89425815e644db2c9b9fed4189b4b4b0ff3a5c3915344707c9e0805907e31f98e58fe67181d0f774dcd
7
+ data.tar.gz: f59211bf0735da463841934547afc1deb3ca4f0760729e893ba166567654936ebec566fa3d1dc4b3e94a1f5433d6e73a10d0dbbcd69ee85f519f7f9b536e22b4
data/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ CHANGELOG
2
+ ---------
3
+ - **2016-10-22**: 0.0.2
4
+ - Initial release
5
+ - Add ability to create Gmail-like avatars
6
+ - Add ability to create defaults-only and optionally overwrite all
7
+ - Add ability to retrieve image URLs for easy verification
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source ENV['GEM_SOURCE'] || 'https://rubygems.org'
2
+
3
+ gemspec
data/LICENSE.md ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 John Wang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,85 @@
1
+ RingCentral Avatars
2
+ ===================
3
+
4
+ [![Gem Version][gem-version-svg]][gem-version-link]
5
+ [![Build Status][build-status-svg]][build-status-link]
6
+ [![Dependency Status][dependency-status-svg]][dependency-status-link]
7
+ [![Code Climate][codeclimate-status-svg]][codeclimate-status-link]
8
+ [![Scrutinizer Code Quality][scrutinizer-status-svg]][scrutinizer-status-link]
9
+ [![Downloads][downloads-svg]][downloads-link]
10
+ [![Docs][docs-readthedocs-svg]][docs-readthedocs-link]
11
+ [![Docs][docs-rubydoc-svg]][docs-rubydoc-link]
12
+ [![License][license-svg]][license-link]
13
+
14
+ ## Overview
15
+
16
+ This library will build RingCentral avatars using Gmail-like initial avatars. It requires ImageMagick.
17
+
18
+ ## Usage
19
+
20
+ ```ruby
21
+ require 'ringcentral-avatars'
22
+ require 'ringcentral_sdk'
23
+
24
+ client = RingCentralSdk.new [...]
25
+
26
+ avatars = RingCentralAvatars.new client
27
+
28
+ avatars.create_all # create defaults only
29
+ avatars.create_all true # overwrite existing avatars
30
+
31
+ avatars.create_mine # create for authorized user only
32
+ ```
33
+
34
+ ### Change Log
35
+
36
+ See [CHANGELOG.md](CHANGELOG.md)
37
+
38
+ ## Links
39
+
40
+ Project Repo
41
+
42
+ * https://github.com/ringcentral-ruby/ringcentral-avatars-ruby
43
+
44
+ RingCentral Ruby SDK
45
+
46
+ * https://github.com/ringcentral-ruby/ringcentral-sdk-ruby
47
+
48
+ RingCentral API Explorer
49
+
50
+ * http://ringcentral.github.io/api-explorer
51
+
52
+ ## Contributing
53
+
54
+ 1. Fork it ( http://github.com/ringcentral-ruby/ringcentral-avatars-ruby/fork )
55
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
56
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
57
+ 4. Push to the branch (`git push origin my-new-feature`)
58
+ 5. Create new Pull Request
59
+
60
+ ## License
61
+
62
+ RingCentral Avatars is available under an MIT-style license. See [LICENSE.txt](LICENSE.txt) for details.
63
+
64
+ RingCentral Avatars © 2016 by John Wang
65
+
66
+ [gem-version-svg]: https://badge.fury.io/rb/ringcentral-avatars.svg
67
+ [gem-version-link]: http://badge.fury.io/rb/ringcentral-avatars
68
+ [downloads-svg]: http://ruby-gem-downloads-badge.herokuapp.com/ringcentral-avatars
69
+ [downloads-link]: https://rubygems.org/gems/ringcentral-avatars
70
+ [build-status-svg]: https://api.travis-ci.org/ringcentral-ruby/ringcentral-avatars-ruby.svg?branch=master
71
+ [build-status-link]: https://travis-ci.org/ringcentral-ruby/ringcentral-avatars-ruby
72
+ [coverage-status-svg]: https://coveralls.io/repos/ringcentral-ruby/ringcentral-avatars-ruby/badge.svg?branch=master
73
+ [coverage-status-link]: https://coveralls.io/r/ringcentral-ruby/ringcentral-avatars-ruby?branch=master
74
+ [dependency-status-svg]: https://gemnasium.com/ringcentral-ruby/ringcentral-avatars-ruby.svg
75
+ [dependency-status-link]: https://gemnasium.com/ringcentral-ruby/ringcentral-avatars-ruby
76
+ [codeclimate-status-svg]: https://codeclimate.com/github/ringcentral-ruby/ringcentral-avatars-ruby/badges/gpa.svg
77
+ [codeclimate-status-link]: https://codeclimate.com/github/ringcentral-ruby/ringcentral-avatars-ruby
78
+ [scrutinizer-status-svg]: https://scrutinizer-ci.com/g/ringcentral-ruby/ringcentral-avatars-ruby/badges/quality-score.png?b=master
79
+ [scrutinizer-status-link]: https://scrutinizer-ci.com/g/ringcentral-ruby/ringcentral-avatars-ruby/?branch=master
80
+ [docs-readthedocs-svg]: https://img.shields.io/badge/docs-readthedocs-blue.svg
81
+ [docs-readthedocs-link]: http://ringcentral-avatars-ruby.readthedocs.org/
82
+ [docs-rubydoc-svg]: https://img.shields.io/badge/docs-rubydoc-blue.svg
83
+ [docs-rubydoc-link]: http://www.rubydoc.info/gems/ringcentral-avatars/
84
+ [license-svg]: https://img.shields.io/badge/license-MIT-blue.svg
85
+ [license-link]: https://github.com/ringcentral-ruby/ringcentral-avatars-ruby/blob/master/LICENSE.md
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+
4
+ desc 'Default: run unit tests.'
5
+ task default: :test
6
+
7
+ desc 'Test the library.'
8
+ Rake::TestTask.new do |t|
9
+ t.libs << 'lib'
10
+ t.pattern = 'test/**/test_*.rb'
11
+ t.verbose = false
12
+ end
13
+
14
+ desc 'Generate YARD documentation.'
15
+ task :gendoc do
16
+ # puts 'yard doc generation disabled until JRuby build native extensions for redcarpet or yard removes the dependency.'
17
+ system 'yardoc'
18
+ system 'yard stats --list-undoc'
19
+ end
@@ -0,0 +1,78 @@
1
+ require 'avatarly'
2
+ require 'faraday'
3
+ require 'ringcentral_sdk'
4
+ require 'tempfile'
5
+
6
+ module RingCentralAvatars
7
+ class Creator
8
+ DEFAULT_SIZE = 600
9
+
10
+ attr_accessor :client
11
+ attr_accessor :extensions
12
+
13
+ def initialize(client)
14
+ @client = client
15
+ load_extensions
16
+ end
17
+
18
+ def create_all(overwrite = false)
19
+ @extensions.extensions_hash.each do |ext_id, ext|
20
+ create_avatar ext, overwrite
21
+ end
22
+ load_extensions
23
+ end
24
+
25
+ def create_mine(overwrite = false)
26
+ res = @client.http.get 'account/~/extension/~'
27
+ create_avatar res.body, overwrite
28
+ load_extensions
29
+ end
30
+
31
+ def create_avatar(ext, overwrite = false)
32
+ return if has_avatar(ext) && !overwrite
33
+ avatar_temp = get_avatar_tmp_file ext
34
+ url = "account/~/extension/#{ext['id']}/profile-image"
35
+ image = Faraday::UploadIO.new(avatar_temp.path, 'image/png')
36
+ @client.http.put url, image: image
37
+ end
38
+
39
+ def has_avatar(ext)
40
+ return ext['profileImage'].key?('etag') ? true : false
41
+ end
42
+
43
+ def get_avatar_tmp_file(ext)
44
+ avatar_blob = Avatarly.generate_avatar(ext['name'], size: DEFAULT_SIZE)
45
+ avatar_temp = Tempfile.new(['avatar', '.png'])
46
+ avatar_temp.binmode
47
+ avatar_temp.write(avatar_blob)
48
+ avatar_temp.flush
49
+ avatar_temp
50
+ end
51
+
52
+ def load_extensions
53
+ @extensions = RingCentralSdk::REST::Cache::Extensions.new client
54
+ @extensions.retrieve_all
55
+ end
56
+
57
+ def avatar_urls(include_token = false)
58
+ urls = []
59
+ @extensions.extensions_hash.keys.sort.each do |ext_id|
60
+ ext = @extensions.extensions_hash[ext_id]
61
+ urls.push avatar_url(ext, include_token)
62
+ end
63
+ return urls
64
+ end
65
+
66
+ def my_avatar_url(include_token = false)
67
+ res = @client.http.get 'account/~/extension/~'
68
+ avatar_url(res.body, include_token)
69
+ end
70
+
71
+ def avatar_url(ext, include_token = false)
72
+ token = @client.token.to_hash[:access_token]
73
+ url = ext['profileImage']['uri']
74
+ url += "?access_token=#{token}" if include_token
75
+ return url
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,11 @@
1
+ require 'ringcentral-avatars/creator'
2
+
3
+ module RingCentralAvatars
4
+ VERSION = '0.0.1'
5
+
6
+ class << self
7
+ def new(client)
8
+ RingCentralAvatars::Creator.new client
9
+ end
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,180 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ringcentral-avatars
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - John Wang
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-10-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: avatarly
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.5.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.5'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.5.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: faraday
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.9'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0.9'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.9'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0.9'
53
+ - !ruby/object:Gem::Dependency
54
+ name: ringcentral_sdk
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '1'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 1.3.4
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.3.4
73
+ - !ruby/object:Gem::Dependency
74
+ name: coveralls
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ - !ruby/object:Gem::Dependency
88
+ name: mocha
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ - !ruby/object:Gem::Dependency
102
+ name: rake
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ type: :development
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ - !ruby/object:Gem::Dependency
116
+ name: simplecov
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ - !ruby/object:Gem::Dependency
130
+ name: test-unit
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ type: :development
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ description: Create RingCentral default avatars using Gmail-style initial avatars
144
+ email: johncwang@gmail.com
145
+ executables: []
146
+ extensions: []
147
+ extra_rdoc_files: []
148
+ files:
149
+ - CHANGELOG.md
150
+ - Gemfile
151
+ - LICENSE.md
152
+ - README.md
153
+ - Rakefile
154
+ - lib/ringcentral-avatars.rb
155
+ - lib/ringcentral-avatars/creator.rb
156
+ homepage: https://github.com/grokify/
157
+ licenses:
158
+ - MIT
159
+ metadata: {}
160
+ post_install_message:
161
+ rdoc_options: []
162
+ require_paths:
163
+ - lib
164
+ required_ruby_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: 2.2.2
169
+ required_rubygems_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ requirements: []
175
+ rubyforge_project:
176
+ rubygems_version: 2.6.7
177
+ signing_key:
178
+ specification_version: 4
179
+ summary: RingCentral library for auto-generating Gmail style avatars
180
+ test_files: []