distribution_wrappers 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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