platforms-yammer 0.1.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 +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +157 -0
- data/Rakefile +18 -0
- data/lib/generators/platforms/yammer/install/USAGE +11 -0
- data/lib/generators/platforms/yammer/install/install_generator.rb +29 -0
- data/lib/generators/platforms/yammer/install/templates/platforms_yammer.rb +4 -0
- data/lib/platforms/yammer.rb +15 -0
- data/lib/platforms/yammer/api.rb +39 -0
- data/lib/platforms/yammer/api/base.rb +20 -0
- data/lib/platforms/yammer/api/group_memberships.rb +35 -0
- data/lib/platforms/yammer/api/groups.rb +22 -0
- data/lib/platforms/yammer/api/invitations.rb +23 -0
- data/lib/platforms/yammer/api/messages.rb +165 -0
- data/lib/platforms/yammer/api/networks.rb +22 -0
- data/lib/platforms/yammer/api/oauth.rb +28 -0
- data/lib/platforms/yammer/api/open_graph_objects.rb +29 -0
- data/lib/platforms/yammer/api/pending_attachments.rb +34 -0
- data/lib/platforms/yammer/api/relationships.rb +39 -0
- data/lib/platforms/yammer/api/search.rb +22 -0
- data/lib/platforms/yammer/api/streams.rb +21 -0
- data/lib/platforms/yammer/api/subscriptions.rb +53 -0
- data/lib/platforms/yammer/api/suggestions.rb +31 -0
- data/lib/platforms/yammer/api/supervisor_mode.rb +22 -0
- data/lib/platforms/yammer/api/threads.rb +23 -0
- data/lib/platforms/yammer/api/topics.rb +23 -0
- data/lib/platforms/yammer/api/uploaded_files.rb +22 -0
- data/lib/platforms/yammer/api/users.rb +109 -0
- data/lib/platforms/yammer/authentication.rb +233 -0
- data/lib/platforms/yammer/client.rb +228 -0
- data/lib/platforms/yammer/configuration.rb +76 -0
- data/lib/platforms/yammer/engine.rb +27 -0
- data/lib/platforms/yammer/omni_auth_setup.rb +31 -0
- data/lib/platforms/yammer/railtie.rb +19 -0
- data/lib/platforms/yammer/version.rb +7 -0
- data/lib/tasks/platforms/yammer_tasks.rake +4 -0
- metadata +280 -0
@@ -0,0 +1,76 @@
|
|
1
|
+
module Platforms
|
2
|
+
module Yammer
|
3
|
+
|
4
|
+
# Configuration pattern for Rails, allows defaults and initializers to
|
5
|
+
# override those defaults.
|
6
|
+
# @see https://stackoverflow.com/a/24151439 Stack Overflow
|
7
|
+
class << self
|
8
|
+
|
9
|
+
# Get the configuration
|
10
|
+
# @return [Configuration] the current configuration
|
11
|
+
def configuration
|
12
|
+
@configuration ||= Configuration.new
|
13
|
+
end
|
14
|
+
|
15
|
+
# Used by initializers to set the configuration
|
16
|
+
# @yieldparam configuration [Configuration] the object to configure
|
17
|
+
def configure
|
18
|
+
yield configuration
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# The class which stores the gem's configuration
|
23
|
+
# Should only store Yammer configuration options, other configuration
|
24
|
+
# options should be made in core.
|
25
|
+
#
|
26
|
+
# @author Benjamin Elias
|
27
|
+
# @since 0.1.0
|
28
|
+
class Configuration
|
29
|
+
include ActiveSupport::Configurable
|
30
|
+
|
31
|
+
##
|
32
|
+
# The default client_id, if no saved {Platforms::Certificate} exists.
|
33
|
+
# A saved Certificate will be used in preference to this default.
|
34
|
+
# @return [String] the default client_id
|
35
|
+
config_accessor(:client_id, instance_reader: false)
|
36
|
+
|
37
|
+
def client_id
|
38
|
+
if config[:client_id].blank?
|
39
|
+
raise "Please configure Client ID as a non-empty value"
|
40
|
+
elsif config[:client_id] == 'your_client_id'
|
41
|
+
raise "Please configure Client ID as a real value, not 'your_client_id'"
|
42
|
+
end
|
43
|
+
config[:client_id]
|
44
|
+
end
|
45
|
+
|
46
|
+
##
|
47
|
+
# The default client_secret, if no saved {Platforms::Certificate} exists.
|
48
|
+
# A saved Certificate will be used in preference to this default.
|
49
|
+
# @return [String] the default client_secret
|
50
|
+
config_accessor(:client_secret, instance_reader: false)
|
51
|
+
|
52
|
+
def client_secret
|
53
|
+
if config[:client_secret].blank?
|
54
|
+
raise "Please configure Client Secret as a non-empty value"
|
55
|
+
elsif config[:client_secret] == 'your_client_secret'
|
56
|
+
raise "Please configure Client Secret as a real value, not 'your_client_secret'"
|
57
|
+
end
|
58
|
+
config[:client_secret]
|
59
|
+
end
|
60
|
+
|
61
|
+
##
|
62
|
+
# The base Yammer URL for API requests. Defaults to
|
63
|
+
# https://www.yammer.com/api/v1
|
64
|
+
# @return [String] the base Yammer URL
|
65
|
+
config_accessor(:api_base, instance_reader: false) do
|
66
|
+
'https://www.yammer.com/api/v1'
|
67
|
+
end
|
68
|
+
|
69
|
+
def api_base
|
70
|
+
URI.parse config[:api_base]
|
71
|
+
config[:api_base]
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Platforms
|
2
|
+
module Yammer
|
3
|
+
|
4
|
+
# Isolated Rails Engine
|
5
|
+
# @see https://guides.rubyonrails.org/engines.html
|
6
|
+
#
|
7
|
+
# @author Benjamin Elias
|
8
|
+
# @since 0.1.0
|
9
|
+
class Engine < ::Rails::Engine
|
10
|
+
|
11
|
+
# Isolate namespace, as generally required for gems
|
12
|
+
isolate_namespace Platforms::Yammer
|
13
|
+
|
14
|
+
# Use RSpec and FactoryBot
|
15
|
+
config.generators do |g|
|
16
|
+
g.test_framework :rspec
|
17
|
+
g.fixture_replacement :factory_bot
|
18
|
+
g.factory_bot dir: 'spec/factories'
|
19
|
+
end
|
20
|
+
|
21
|
+
# Set factory paths for FactoryBot
|
22
|
+
initializer "platforms.factories", :after => "factory_bot.set_factory_paths" do
|
23
|
+
FactoryBot.definition_file_paths << File.expand_path('../../../spec/factories', __FILE__) if defined?(FactoryBot)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'platforms/core'
|
2
|
+
require 'platforms/yammer/configuration'
|
3
|
+
|
4
|
+
module Platforms
|
5
|
+
module Yammer
|
6
|
+
|
7
|
+
# Yammer-specific requirements for OmniAuth setup.
|
8
|
+
# Sets the default certificate to the {Configuration} values.
|
9
|
+
# Setting Client ID and Client Secret are done in Platforms::Core:OmniAuthSetup
|
10
|
+
#
|
11
|
+
# @author Benjamin Elias
|
12
|
+
# @since 0.1.0
|
13
|
+
# @see https://www.createdbypete.com/dynamic-omniauth-provider-setup/ Dynamic providers.
|
14
|
+
# @see https://github.com/omniauth/omniauth/wiki/Setup-Phase OmniAuth Setup Phase
|
15
|
+
class OmniAuthSetup < ::Platforms::Core::OmniAuthSetup
|
16
|
+
|
17
|
+
# Create a Certificate with the default configuration setup
|
18
|
+
# according to the {Configuration} for client_id and client_secret,
|
19
|
+
# usually specified in the gem's initializer.
|
20
|
+
# This can be used if there is no Certificate saved in the database.
|
21
|
+
# @return [Platforms::Certificate] the Certificate to use by default
|
22
|
+
def default_certificate
|
23
|
+
Certificate.new do |c|
|
24
|
+
c.client_id = Platforms::Yammer.configuration.client_id
|
25
|
+
c.client_secret = Platforms::Yammer.configuration.client_secret
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'omniauth'
|
2
|
+
require 'omniauth-yammer'
|
3
|
+
require 'platforms/yammer/omni_auth_setup'
|
4
|
+
|
5
|
+
module Platforms
|
6
|
+
module Yammer
|
7
|
+
|
8
|
+
# Railtie to configure OmniAuth with {OmniAuthSetup}
|
9
|
+
# @author Benjamin Elias
|
10
|
+
# @since 0.1.0
|
11
|
+
class Railtie < ::Rails::Railtie
|
12
|
+
initializer "configure OmniAuth for Yammer" do |app|
|
13
|
+
app.config.middleware.use ::OmniAuth::Builder do
|
14
|
+
provider :yammer, setup: OmniAuthSetup
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
ADDED
@@ -0,0 +1,280 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: platforms-yammer
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Benjamin Elias
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-04-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '6.0'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 6.0.2.1
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '6.0'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 6.0.2.1
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: platforms-core
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0.1'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0.1'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: omniauth
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: omniauth-yammer
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 0.2.0
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 0.2.0
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: faraday
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 1.0.0
|
82
|
+
type: :runtime
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 1.0.0
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: faraday_middleware
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :runtime
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: sqlite3
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
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: rspec-rails
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '4.0'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '4.0'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: factory_bot_rails
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
type: :development
|
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: generator_spec
|
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: simplecov
|
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: webmock
|
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: yard
|
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: yard-activerecord
|
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
|
+
description: Authentication with OmniAuth, API integration
|
216
|
+
email:
|
217
|
+
- 12136262+collabital@users.noreply.github.com
|
218
|
+
executables: []
|
219
|
+
extensions: []
|
220
|
+
extra_rdoc_files: []
|
221
|
+
files:
|
222
|
+
- MIT-LICENSE
|
223
|
+
- README.md
|
224
|
+
- Rakefile
|
225
|
+
- lib/generators/platforms/yammer/install/USAGE
|
226
|
+
- lib/generators/platforms/yammer/install/install_generator.rb
|
227
|
+
- lib/generators/platforms/yammer/install/templates/platforms_yammer.rb
|
228
|
+
- lib/platforms/yammer.rb
|
229
|
+
- lib/platforms/yammer/api.rb
|
230
|
+
- lib/platforms/yammer/api/base.rb
|
231
|
+
- lib/platforms/yammer/api/group_memberships.rb
|
232
|
+
- lib/platforms/yammer/api/groups.rb
|
233
|
+
- lib/platforms/yammer/api/invitations.rb
|
234
|
+
- lib/platforms/yammer/api/messages.rb
|
235
|
+
- lib/platforms/yammer/api/networks.rb
|
236
|
+
- lib/platforms/yammer/api/oauth.rb
|
237
|
+
- lib/platforms/yammer/api/open_graph_objects.rb
|
238
|
+
- lib/platforms/yammer/api/pending_attachments.rb
|
239
|
+
- lib/platforms/yammer/api/relationships.rb
|
240
|
+
- lib/platforms/yammer/api/search.rb
|
241
|
+
- lib/platforms/yammer/api/streams.rb
|
242
|
+
- lib/platforms/yammer/api/subscriptions.rb
|
243
|
+
- lib/platforms/yammer/api/suggestions.rb
|
244
|
+
- lib/platforms/yammer/api/supervisor_mode.rb
|
245
|
+
- lib/platforms/yammer/api/threads.rb
|
246
|
+
- lib/platforms/yammer/api/topics.rb
|
247
|
+
- lib/platforms/yammer/api/uploaded_files.rb
|
248
|
+
- lib/platforms/yammer/api/users.rb
|
249
|
+
- lib/platforms/yammer/authentication.rb
|
250
|
+
- lib/platforms/yammer/client.rb
|
251
|
+
- lib/platforms/yammer/configuration.rb
|
252
|
+
- lib/platforms/yammer/engine.rb
|
253
|
+
- lib/platforms/yammer/omni_auth_setup.rb
|
254
|
+
- lib/platforms/yammer/railtie.rb
|
255
|
+
- lib/platforms/yammer/version.rb
|
256
|
+
- lib/tasks/platforms/yammer_tasks.rake
|
257
|
+
homepage: https://www.collabital.com
|
258
|
+
licenses:
|
259
|
+
- MIT
|
260
|
+
metadata: {}
|
261
|
+
post_install_message:
|
262
|
+
rdoc_options: []
|
263
|
+
require_paths:
|
264
|
+
- lib
|
265
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
266
|
+
requirements:
|
267
|
+
- - ">="
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
version: '0'
|
270
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
271
|
+
requirements:
|
272
|
+
- - ">="
|
273
|
+
- !ruby/object:Gem::Version
|
274
|
+
version: '0'
|
275
|
+
requirements: []
|
276
|
+
rubygems_version: 3.0.6
|
277
|
+
signing_key:
|
278
|
+
specification_version: 4
|
279
|
+
summary: Authentication and API integration with Yammer
|
280
|
+
test_files: []
|