distribution_wrappers 0.2.2

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.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +102 -0
  3. data/Gemfile.lock +295 -0
  4. data/README.md +22 -0
  5. data/Rakefile +53 -0
  6. data/VERSION +1 -0
  7. data/distribution_wrappers.gemspec +173 -0
  8. data/lib/config/key_chain.yml +70 -0
  9. data/lib/config/key_chain_dev.yml +71 -0
  10. data/lib/distribution_wrappers.rb +64 -0
  11. data/lib/distribution_wrappers/_base.rb +68 -0
  12. data/lib/distribution_wrappers/backstitch/backstitch.rb +267 -0
  13. data/lib/distribution_wrappers/email/_email.rb +48 -0
  14. data/lib/distribution_wrappers/email/template.html.haml +29 -0
  15. data/lib/distribution_wrappers/google/google.rb +129 -0
  16. data/lib/distribution_wrappers/hipchat/hipchat.rb +80 -0
  17. data/lib/distribution_wrappers/office365/office365.rb +51 -0
  18. data/lib/distribution_wrappers/sendgrid/sendgrid.rb +35 -0
  19. data/lib/distribution_wrappers/slack/slack.rb +87 -0
  20. data/lib/helpers/keys.rb +10 -0
  21. data/lib/helpers/text_helper.rb +9 -0
  22. data/lib/models/device_session_distro.rb +5 -0
  23. data/lib/models/distribution_channel_distro.rb +4 -0
  24. data/lib/models/feed_distro.rb +11 -0
  25. data/lib/models/organization_admin_distro.rb +5 -0
  26. data/lib/models/organization_distro.rb +10 -0
  27. data/lib/models/studio_post_version_contact_distro.rb +5 -0
  28. data/lib/models/studio_post_version_distro.rb +5 -0
  29. data/lib/models/team_distro.rb +13 -0
  30. data/lib/models/team_feed_distro.rb +5 -0
  31. data/lib/models/team_member_distro.rb +6 -0
  32. data/lib/models/topic_distro.rb +11 -0
  33. data/lib/models/topic_feed_distro.rb +5 -0
  34. data/lib/models/topic_subscription_distro.rb +9 -0
  35. data/lib/models/user_distro.rb +34 -0
  36. data/test/helper.rb +34 -0
  37. data/test/test_distribution_wrappers.rb +7 -0
  38. metadata +556 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 885c5f5ea8a79b2e8115a5419d17687991d81fcd
4
+ data.tar.gz: 5e386c4ef1a6401d0c9c817385fa0cc824987536
5
+ SHA512:
6
+ metadata.gz: cf9632eb1a92db2ccb30ab7c5515a2ccf9a6ecb29fa655ebf23ed56cca5fea9251e6cfc1664173e78d3566b554352730fa9ed5d7674e7c201f4619aafba83002
7
+ data.tar.gz: 191743477b3e79a5494995c19b343d29ff88a184405e5db5da039fd94e9a10313aa7de44b71cb77c6343198d6cc2ebbaa7e1e982ceb4d8c27c28601ec7c920a0
data/Gemfile ADDED
@@ -0,0 +1,102 @@
1
+ source "http://rubygems.org"
2
+ gem 'rack', '<= 1.6.4'
3
+ # backstitch
4
+ gem "semantic_types", :git => "https://backstitchapp:Hrj5hsFPyVdXwu6@github.com/backstitch/semantic_types.git"
5
+
6
+ gem 'activerecord'
7
+ gem 'activesupport', '<= 4.2.6'
8
+
9
+ gem 'haml'
10
+
11
+ ################################# Helpers ###################################
12
+
13
+ # OAuth Core Ruby implementation
14
+ # http://rubydoc.info/gems/oauth/0.4.7/frames
15
+ gem 'oauth'
16
+
17
+ # A Ruby wrapper for the OAuth 2.0 protocol
18
+ # http://github.com/intridea/oauth2
19
+ gem 'oauth2'
20
+
21
+ # OAuth frameworkd
22
+ # https://github.com/intridea/omniauth
23
+ gem "omniauth", '~> 1.4.2'
24
+
25
+ # OAuth2 strategy for OmniAuth
26
+ # https://github.com/intridea/omniauth-oauth2
27
+ gem "omniauth-oauth2"
28
+
29
+ # Gmail gem
30
+ gem 'gmail'
31
+ gem 'mail'
32
+ gem 'gmail_xoauth'
33
+
34
+ gem 'google-api-client'
35
+
36
+ gem 'slack-ruby-client'
37
+
38
+ # https://github.com/hipchat/hipchat-rb
39
+ gem 'hipchat'
40
+
41
+ # https://github.com/jasonjoh/ruby_outlook
42
+ gem 'ruby_outlook'
43
+
44
+ gem 'nokogiri', '1.6.7.1'
45
+
46
+ gem "video_info", '<= 2.6.0'
47
+
48
+ # https://github.com/sendgrid/sendgrid-ruby
49
+ gem 'sendgrid-ruby', '3.0.3'
50
+
51
+ # Gem that makes Ruby templating engines generic
52
+ # and allows rending without using any Rails requirements
53
+ gem 'tilt'
54
+
55
+ # Extract webpage metadata
56
+ # https://github.com/peterc/pismo
57
+ gem 'pismo'
58
+
59
+ ################################# Databases #################################
60
+
61
+ gem 'pg', "~> 0.16.0"
62
+
63
+ gem 'elasticsearch', '~> 0.4.0'
64
+
65
+ gem "builder", '~> 3.1.4'
66
+
67
+ # Temporary Fix for gem dependency that is broken
68
+ # https://github.com/ahoward/macaddr/issues/18
69
+ gem "macaddr", "1.6.1"
70
+
71
+ gem "ruby-hmac"
72
+
73
+ # JSON implementation as a Ruby C extensions
74
+ # http://flori.github.com/json/
75
+ gem "json"
76
+
77
+ # A simple and straightforward settings solution that uses an ERB enabled YAML file.
78
+ # https://github.com/binarylogic/settingslogic
79
+ gem "settingslogic"
80
+
81
+ # Whitelist-based Ruby HTML sanitizer.
82
+ # https://github.com/rgrove/sanitize
83
+ gem "sanitize"
84
+
85
+ # Parses urls into canonical form.
86
+ # https://github.com/pauldix/domainatrix
87
+ gem 'domainatrix'
88
+
89
+ # REST operations
90
+ # https://github.com/taf2/curb
91
+ gem 'curb'
92
+
93
+ # Used for sending push notifications to our app
94
+ # https://github.com/pedroandrade/pushwoosh
95
+ gem 'pushwoosh'
96
+
97
+
98
+ # Development assets
99
+ group :development do
100
+ gem 'rspec'
101
+ gem "jeweler", '2.1.2'
102
+ end
@@ -0,0 +1,295 @@
1
+ GIT
2
+ remote: https://backstitchapp:Hrj5hsFPyVdXwu6@github.com/backstitch/semantic_types.git
3
+ revision: 36cb8130a03bbb98a047045aff0475f28ea9de73
4
+ specs:
5
+ semantic_types (3.6.1)
6
+ tire
7
+ uuid
8
+
9
+ GEM
10
+ remote: http://rubygems.org/
11
+ specs:
12
+ activemodel (4.2.6)
13
+ activesupport (= 4.2.6)
14
+ builder (~> 3.1)
15
+ activerecord (4.2.6)
16
+ activemodel (= 4.2.6)
17
+ activesupport (= 4.2.6)
18
+ arel (~> 6.0)
19
+ activesupport (4.2.6)
20
+ i18n (~> 0.7)
21
+ json (~> 1.7, >= 1.7.7)
22
+ minitest (~> 5.1)
23
+ thread_safe (~> 0.3, >= 0.3.4)
24
+ tzinfo (~> 1.1)
25
+ addressable (2.5.0)
26
+ public_suffix (~> 2.0, >= 2.0.2)
27
+ ansi (1.5.0)
28
+ arel (6.0.4)
29
+ ast (2.3.0)
30
+ awesome_print (1.7.0)
31
+ builder (3.1.4)
32
+ chronic (0.10.2)
33
+ crass (1.0.2)
34
+ curb (0.9.3)
35
+ declarative (0.0.9)
36
+ declarative-option (0.1.0)
37
+ descendants_tracker (0.0.4)
38
+ thread_safe (~> 0.3, >= 0.3.1)
39
+ diff-lcs (1.3)
40
+ domain_name (0.5.20170223)
41
+ unf (>= 0.0.5, < 1.0.0)
42
+ domainatrix (0.0.11)
43
+ addressable
44
+ elasticsearch (0.4.11)
45
+ elasticsearch-api (= 0.4.11)
46
+ elasticsearch-transport (= 0.4.11)
47
+ elasticsearch-api (0.4.11)
48
+ multi_json
49
+ elasticsearch-transport (0.4.11)
50
+ faraday
51
+ multi_json
52
+ faraday (0.9.2)
53
+ multipart-post (>= 1.2, < 3)
54
+ faraday_middleware (0.11.0.1)
55
+ faraday (>= 0.7.4, < 1.0)
56
+ fast-stemmer (1.0.2)
57
+ git (1.3.0)
58
+ github_api (0.11.3)
59
+ addressable (~> 2.3)
60
+ descendants_tracker (~> 0.0.1)
61
+ faraday (~> 0.8, < 0.10)
62
+ hashie (>= 1.2)
63
+ multi_json (>= 1.7.5, < 2.0)
64
+ nokogiri (~> 1.6.0)
65
+ oauth2
66
+ gli (2.15.0)
67
+ gmail (0.6.0)
68
+ gmail_xoauth (>= 0.3.0)
69
+ mail (>= 2.2.1)
70
+ gmail_xoauth (0.4.2)
71
+ oauth (>= 0.3.6)
72
+ google-api-client (0.10.0)
73
+ addressable (~> 2.3)
74
+ googleauth (~> 0.5)
75
+ httpclient (~> 2.7)
76
+ hurley (~> 0.1)
77
+ memoist (~> 0.11)
78
+ mime-types (>= 1.6)
79
+ representable (~> 3.0)
80
+ retriable (>= 2.0, < 4.0)
81
+ googleauth (0.5.1)
82
+ faraday (~> 0.9)
83
+ jwt (~> 1.4)
84
+ logging (~> 2.0)
85
+ memoist (~> 0.12)
86
+ multi_json (~> 1.11)
87
+ os (~> 0.9)
88
+ signet (~> 0.7)
89
+ haml (4.0.7)
90
+ tilt
91
+ hashie (3.5.5)
92
+ hashr (0.0.22)
93
+ highline (1.7.8)
94
+ hipchat (1.5.4)
95
+ httparty
96
+ mimemagic
97
+ htmlentities (4.3.4)
98
+ http-cookie (1.0.3)
99
+ domain_name (~> 0.5)
100
+ httparty (0.13.7)
101
+ json (~> 1.8)
102
+ multi_xml (>= 0.5.2)
103
+ httpclient (2.8.3)
104
+ hurley (0.2)
105
+ i18n (0.8.1)
106
+ iso8601 (0.9.1)
107
+ jeweler (2.1.2)
108
+ builder
109
+ bundler (>= 1.0)
110
+ git (>= 1.2.5)
111
+ github_api (~> 0.11.0)
112
+ highline (>= 1.6.15)
113
+ nokogiri (>= 1.5.10)
114
+ rake
115
+ rdoc
116
+ semver
117
+ json (1.8.6)
118
+ jwt (1.5.6)
119
+ little-plugger (1.1.4)
120
+ logging (2.1.0)
121
+ little-plugger (~> 1.1)
122
+ multi_json (~> 1.10)
123
+ macaddr (1.6.1)
124
+ systemu (~> 2.5.0)
125
+ mail (2.6.4)
126
+ mime-types (>= 1.16, < 4)
127
+ memoist (0.15.0)
128
+ mime-types (2.99.3)
129
+ mimemagic (0.3.2)
130
+ mini_portile2 (2.0.0)
131
+ minitest (5.10.1)
132
+ multi_json (1.12.1)
133
+ multi_xml (0.6.0)
134
+ multipart-post (2.0.0)
135
+ net_http_timeout_errors (0.3.0)
136
+ netrc (0.11.0)
137
+ nokogiri (1.6.7.1)
138
+ mini_portile2 (~> 2.0.0.rc2)
139
+ nokogumbo (1.4.10)
140
+ nokogiri
141
+ oauth (0.5.1)
142
+ oauth2 (1.3.0)
143
+ faraday (>= 0.8, < 0.11)
144
+ jwt (~> 1.0)
145
+ multi_json (~> 1.3)
146
+ multi_xml (~> 0.5)
147
+ rack (>= 1.2, < 3)
148
+ oga (2.9)
149
+ ast
150
+ ruby-ll (~> 2.1)
151
+ omniauth (1.4.2)
152
+ hashie (>= 1.2, < 4)
153
+ rack (>= 1.0, < 3)
154
+ omniauth-oauth2 (1.4.0)
155
+ oauth2 (~> 1.0)
156
+ omniauth (~> 1.2)
157
+ open_uri_redirections (0.2.1)
158
+ os (0.9.6)
159
+ pg (0.16.0)
160
+ pismo (0.7.4)
161
+ awesome_print
162
+ chronic
163
+ fast-stemmer
164
+ nokogiri
165
+ sanitize
166
+ public_suffix (2.0.5)
167
+ pushwoosh (1.0.1)
168
+ httparty (~> 0.13.3)
169
+ rack (1.6.4)
170
+ rake (12.0.0)
171
+ rdoc (5.1.0)
172
+ representable (3.0.3)
173
+ declarative (< 0.1.0)
174
+ declarative-option (< 0.2.0)
175
+ uber (< 0.2.0)
176
+ rest-client (1.8.0)
177
+ http-cookie (>= 1.0.2, < 2.0)
178
+ mime-types (>= 1.16, < 3.0)
179
+ netrc (~> 0.7)
180
+ retriable (3.0.1)
181
+ rspec (3.5.0)
182
+ rspec-core (~> 3.5.0)
183
+ rspec-expectations (~> 3.5.0)
184
+ rspec-mocks (~> 3.5.0)
185
+ rspec-core (3.5.4)
186
+ rspec-support (~> 3.5.0)
187
+ rspec-expectations (3.5.0)
188
+ diff-lcs (>= 1.2.0, < 2.0)
189
+ rspec-support (~> 3.5.0)
190
+ rspec-mocks (3.5.0)
191
+ diff-lcs (>= 1.2.0, < 2.0)
192
+ rspec-support (~> 3.5.0)
193
+ rspec-support (3.5.0)
194
+ ruby-hmac (0.4.0)
195
+ ruby-ll (2.1.2)
196
+ ansi
197
+ ast
198
+ ruby_http_client (2.1.4)
199
+ ruby_outlook (0.3.0)
200
+ faraday
201
+ uuidtools
202
+ sanitize (4.4.0)
203
+ crass (~> 1.0.2)
204
+ nokogiri (>= 1.4.4)
205
+ nokogumbo (~> 1.4.1)
206
+ semver (1.0.1)
207
+ sendgrid-ruby (3.0.3)
208
+ ruby_http_client (~> 2.1.2)
209
+ settingslogic (2.0.9)
210
+ signet (0.7.3)
211
+ addressable (~> 2.3)
212
+ faraday (~> 0.9)
213
+ jwt (~> 1.5)
214
+ multi_json (~> 1.10)
215
+ slack-ruby-client (0.7.9)
216
+ activesupport
217
+ faraday (>= 0.9)
218
+ faraday_middleware
219
+ gli
220
+ hashie
221
+ json
222
+ websocket-driver
223
+ systemu (2.5.2)
224
+ thread_safe (0.3.6)
225
+ tilt (2.0.6)
226
+ tire (0.6.2)
227
+ activemodel (>= 3.0)
228
+ activesupport
229
+ ansi
230
+ hashr (~> 0.0.19)
231
+ multi_json (~> 1.3)
232
+ rake
233
+ rest-client (~> 1.6)
234
+ tzinfo (1.2.2)
235
+ thread_safe (~> 0.1)
236
+ uber (0.1.0)
237
+ unf (0.1.4)
238
+ unf_ext
239
+ unf_ext (0.0.7.2)
240
+ uuid (2.3.8)
241
+ macaddr (~> 1.0)
242
+ uuidtools (2.1.5)
243
+ video_info (2.6.0)
244
+ addressable (~> 2.3)
245
+ htmlentities (~> 4.3)
246
+ iso8601 (~> 0.9)
247
+ multi_json (~> 1.11)
248
+ net_http_timeout_errors (~> 0.3.0)
249
+ oga (~> 2.2)
250
+ open_uri_redirections (~> 0.2)
251
+ websocket-driver (0.6.5)
252
+ websocket-extensions (>= 0.1.0)
253
+ websocket-extensions (0.1.2)
254
+
255
+ PLATFORMS
256
+ ruby
257
+
258
+ DEPENDENCIES
259
+ activerecord
260
+ activesupport (<= 4.2.6)
261
+ builder (~> 3.1.4)
262
+ curb
263
+ domainatrix
264
+ elasticsearch (~> 0.4.0)
265
+ gmail
266
+ gmail_xoauth
267
+ google-api-client
268
+ haml
269
+ hipchat
270
+ jeweler (= 2.1.2)
271
+ json
272
+ macaddr (= 1.6.1)
273
+ mail
274
+ nokogiri (= 1.6.7.1)
275
+ oauth
276
+ oauth2
277
+ omniauth (~> 1.4.2)
278
+ omniauth-oauth2
279
+ pg (~> 0.16.0)
280
+ pismo
281
+ pushwoosh
282
+ rack (<= 1.6.4)
283
+ rspec
284
+ ruby-hmac
285
+ ruby_outlook
286
+ sanitize
287
+ semantic_types!
288
+ sendgrid-ruby (= 3.0.3)
289
+ settingslogic
290
+ slack-ruby-client
291
+ tilt
292
+ video_info (<= 2.6.0)
293
+
294
+ BUNDLED WITH
295
+ 1.13.7
@@ -0,0 +1,22 @@
1
+ ## Distribution Wrappers
2
+
3
+ Contains backstitch's logic for distributing messages to third-party services
4
+
5
+ ### Release Procedure
6
+
7
+ 1. Update the gem version (follow the [Semantic Versionsing 2.0.0 Guide](http://semver.org/))
8
+
9
+ `rake version:bump:<major|minor|patch>`
10
+ 1. Update the gemspec
11
+
12
+ `rake gemspec`
13
+ 1. Commit changes to git
14
+
15
+ `git commit -a -m "<comment>"`
16
+ 1. Release changes
17
+
18
+ `rake release`
19
+
20
+ ### Copyright
21
+
22
+ Copyright (c) 2016 backstitch Inc.
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
17
+ gem.name = "distribution_wrappers"
18
+ gem.homepage = "http://github.com/backstitch/distribution_wrappers"
19
+ gem.license = "Proprietary"
20
+ gem.summary = %Q{Library of distribution wrappers}
21
+ gem.description = %Q{Contains the logic for distributing messages through third-party APIs}
22
+ gem.email = "admin@backstit.ch"
23
+ gem.authors = ["backstitch Inc."]
24
+ gem.files.exclude "icon.png"
25
+ gem.files.exclude "README.md"
26
+ gem.files.exclude "spec/*"
27
+ end
28
+ Jeweler::RubygemsDotOrgTasks.new
29
+
30
+ require 'rake/testtask'
31
+ Rake::TestTask.new(:test) do |test|
32
+ test.libs << 'lib' << 'test'
33
+ test.pattern = 'test/**/test_*.rb'
34
+ test.verbose = true
35
+ end
36
+
37
+ desc "Code coverage detail"
38
+ task :simplecov do
39
+ ENV['COVERAGE'] = "true"
40
+ Rake::Task['test'].execute
41
+ end
42
+
43
+ task :default => :test
44
+
45
+ require 'rdoc/task'
46
+ Rake::RDocTask.new do |rdoc|
47
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
48
+
49
+ rdoc.rdoc_dir = 'rdoc'
50
+ rdoc.title = "distribution_wrappers #{version}"
51
+ rdoc.rdoc_files.include('README*')
52
+ rdoc.rdoc_files.include('lib/**/*.rb')
53
+ end