catarse_monkeymail 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: deb390340c759808013f6f0e892f59024cd98eb0
4
+ data.tar.gz: 9d9b80737a26891588c5e150301a39d9a8988644
5
+ SHA512:
6
+ metadata.gz: 2165c734d2c88ef6f327c3b8bb11e5287e4d4e3455c323aca2b740d0bc58dbda6a662b5f3399fd7f7653339a9bcc5314910eb9d6f6cf559c13046f7ec7670c3d
7
+ data.tar.gz: 9de109719e1f28c5673768acf1b4fff1765e543df90f425cd29eeeef1a04cc6aa67745b079b7389a61594f93d130fdb9f4c7cf097887fd36ef3d0652676c366f
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ .bundle/
2
+ log/*.log
3
+ pkg/
4
+ test/dummy/db/*.sqlite3
5
+ test/dummy/db/*.sqlite3-journal
6
+ test/dummy/log/*.log
7
+ test/dummy/tmp/
8
+ test/dummy/.sass-cache
9
+ coverage/
data/.gitmodules ADDED
@@ -0,0 +1,3 @@
1
+ [submodule "spec/dummy"]
2
+ path = spec/dummy
3
+ url = git://github.com/catarse/catarse.git
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemfile_url = File.join(File.dirname(__FILE__), 'spec/dummy/Gemfile')
4
+ gemfile_content = File.open(gemfile_url, "rb") { |f| f.read }
5
+ eval_gemfile gemfile_url, gemfile_content.gsub(/(gem 'catarse_monkeymail'.+)/, '')
6
+
7
+ gemspec
8
+
data/Gemfile.lock ADDED
@@ -0,0 +1,548 @@
1
+ GIT
2
+ remote: git://github.com/bernat/best_in_place.git
3
+ revision: 366413be357d65cdf47031e928aea969f72e3659
4
+ branch: rails-4
5
+ specs:
6
+ best_in_place (2.0.3)
7
+ jquery-rails
8
+ rails (~> 4)
9
+
10
+ GIT
11
+ remote: git://github.com/catarse/catarse_mailchimp
12
+ revision: 2ed4f3931dfa292e5c1c62619772f04e41c68629
13
+ ref: 2ed4f39
14
+ specs:
15
+ catarse_mailchimp (0.0.1)
16
+ mailchimp
17
+ supermodel
18
+
19
+ GIT
20
+ remote: git://github.com/catarse/moip-ruby.git
21
+ revision: c0225ad71645cd1df35dafa1e45c9f092b3abb9e
22
+ specs:
23
+ moip (1.0.2)
24
+ activesupport (>= 2.3.2)
25
+ httparty (~> 0.6.1)
26
+ nokogiri (>= 1.5.0)
27
+
28
+ PATH
29
+ remote: .
30
+ specs:
31
+ catarse_monkeymail (0.0.1)
32
+ mailchimp-api (~> 2.0.4)
33
+ rails (~> 4.0.3)
34
+
35
+ GEM
36
+ remote: https://rubygems.org/
37
+ remote: https://rubygems.org/
38
+ specs:
39
+ RedCloth (4.2.9)
40
+ actionmailer (4.0.3)
41
+ actionpack (= 4.0.3)
42
+ mail (~> 2.5.4)
43
+ actionpack (4.0.3)
44
+ activesupport (= 4.0.3)
45
+ builder (~> 3.1.0)
46
+ erubis (~> 2.7.0)
47
+ rack (~> 1.5.2)
48
+ rack-test (~> 0.6.2)
49
+ active_utils (2.0.2)
50
+ activesupport (>= 2.3.11)
51
+ i18n
52
+ activemerchant (1.42.6)
53
+ active_utils (~> 2.0, >= 2.0.1)
54
+ activesupport (>= 2.3.14, < 5.0.0)
55
+ builder (>= 2.1.2, < 4.0.0)
56
+ i18n (~> 0.5)
57
+ json (~> 1.7)
58
+ money (< 7.0.0)
59
+ nokogiri (~> 1.4)
60
+ activemodel (4.0.3)
61
+ activesupport (= 4.0.3)
62
+ builder (~> 3.1.0)
63
+ activerecord (4.0.3)
64
+ activemodel (= 4.0.3)
65
+ activerecord-deprecated_finders (~> 1.0.2)
66
+ activesupport (= 4.0.3)
67
+ arel (~> 4.0.0)
68
+ activerecord-deprecated_finders (1.0.3)
69
+ activesupport (4.0.3)
70
+ i18n (~> 0.6, >= 0.6.4)
71
+ minitest (~> 4.2)
72
+ multi_json (~> 1.3)
73
+ thread_safe (~> 0.1)
74
+ tzinfo (~> 0.3.37)
75
+ addressable (2.3.5)
76
+ arel (4.0.2)
77
+ auto_html (1.4.2)
78
+ RedCloth
79
+ redcarpet
80
+ rinku
81
+ tag_helper
82
+ bcrypt (3.1.7)
83
+ better_errors (1.1.0)
84
+ coderay (>= 1.0.0)
85
+ erubis (>= 2.6.6)
86
+ binding_of_caller (0.7.2)
87
+ debug_inspector (>= 0.0.1)
88
+ browser (0.3.2)
89
+ builder (3.1.4)
90
+ capybara (2.1.0)
91
+ mime-types (>= 1.16)
92
+ nokogiri (>= 1.3.3)
93
+ rack (>= 1.0.0)
94
+ rack-test (>= 0.5.4)
95
+ xpath (~> 2.0)
96
+ carrierwave (0.10.0)
97
+ activemodel (>= 3.2.0)
98
+ activesupport (>= 3.2.0)
99
+ json (>= 1.7)
100
+ mime-types (>= 1.16)
101
+ catarse_moip (2.3.5)
102
+ enumerate_it
103
+ libxml-ruby (~> 2.6.0)
104
+ rails (~> 4.0)
105
+ catarse_paypal_express (2.2.3)
106
+ activemerchant (>= 1.34.0)
107
+ rails (~> 4.0)
108
+ slim-rails
109
+ catarse_settings_db (0.0.1)
110
+ rails (~> 4.0.3)
111
+ celluloid (0.15.2)
112
+ timers (~> 1.1.0)
113
+ chartkick (1.2.1)
114
+ childprocess (0.4.0)
115
+ ffi (~> 1.0, >= 1.0.11)
116
+ chunky_png (1.2.9)
117
+ cliver (0.3.2)
118
+ coderay (1.1.0)
119
+ coffee-rails (4.0.1)
120
+ coffee-script (>= 2.2.0)
121
+ railties (>= 4.0.0, < 5.0)
122
+ coffee-script (2.2.0)
123
+ coffee-script-source
124
+ execjs
125
+ coffee-script-source (1.6.3)
126
+ compass (0.12.2)
127
+ chunky_png (~> 1.2)
128
+ fssm (>= 0.2.7)
129
+ sass (~> 3.1)
130
+ compass-960-plugin (0.10.4)
131
+ compass (>= 0.10.0)
132
+ compass-rails (1.1.3)
133
+ compass (>= 0.12.2)
134
+ connection_pool (1.2.0)
135
+ coveralls (0.7.0)
136
+ multi_json (~> 1.3)
137
+ rest-client
138
+ simplecov (>= 0.7)
139
+ term-ansicolor
140
+ thor
141
+ crack (0.1.8)
142
+ curb (0.8.5)
143
+ database_cleaner (1.2.0)
144
+ debug_inspector (0.0.2)
145
+ devise (3.2.4)
146
+ bcrypt (~> 3.0)
147
+ orm_adapter (~> 0.1)
148
+ railties (>= 3.2.6, < 5)
149
+ thread_safe (~> 0.1)
150
+ warden (~> 1.2.3)
151
+ diff-lcs (1.2.5)
152
+ docile (1.1.1)
153
+ dotenv (0.9.0)
154
+ draper (1.3.0)
155
+ actionpack (>= 3.0)
156
+ activemodel (>= 3.0)
157
+ activesupport (>= 3.0)
158
+ request_store (~> 1.0.3)
159
+ enumerate_it (1.2.1)
160
+ activesupport (>= 3.0.0)
161
+ erubis (2.7.0)
162
+ excon (0.31.0)
163
+ execjs (2.0.2)
164
+ ezcrypto (0.7.2)
165
+ factory_girl (4.3.0)
166
+ activesupport (>= 3.0.0)
167
+ factory_girl_rails (4.3.0)
168
+ factory_girl (~> 4.3.0)
169
+ railties (>= 3.0.0)
170
+ fakeweb (1.3.0)
171
+ faraday (0.8.8)
172
+ multipart-post (~> 1.2.0)
173
+ feedzirra (0.7.0)
174
+ curb (~> 0.8.1)
175
+ loofah (~> 1.2.1)
176
+ sax-machine (~> 0.2.1)
177
+ ffi (1.9.3)
178
+ fog (1.19.0)
179
+ builder
180
+ excon (~> 0.31.0)
181
+ formatador (~> 0.2.0)
182
+ mime-types
183
+ multi_json (~> 1.0)
184
+ net-scp (~> 1.1)
185
+ net-ssh (>= 2.1.3)
186
+ nokogiri (~> 1.5)
187
+ ruby-hmac
188
+ foreman (0.63.0)
189
+ dotenv (>= 0.7)
190
+ thor (>= 0.13.6)
191
+ formatador (0.2.4)
192
+ formtastic (2.2.1)
193
+ actionpack (>= 3.0)
194
+ fssm (0.2.10)
195
+ has_scope (0.6.0.rc)
196
+ actionpack (>= 3.2, < 5)
197
+ activesupport (>= 3.2, < 5)
198
+ hashie (2.0.5)
199
+ heroku-deflater (0.5.3)
200
+ rack (>= 1.4.5)
201
+ high_voltage (2.1.0)
202
+ hike (1.2.3)
203
+ htmlentities (4.3.1)
204
+ http_accept_language (2.0.0)
205
+ httparty (0.6.1)
206
+ crack (= 0.1.8)
207
+ httpauth (0.2.0)
208
+ httpclient (2.3.4.1)
209
+ i18n (0.6.9)
210
+ inherited_resources (1.4.1)
211
+ has_scope (~> 0.6.0.rc)
212
+ responders (~> 1.0.0.rc)
213
+ jasmine-core (2.0.0)
214
+ jasmine-rails (0.6.0)
215
+ jasmine-core (>= 1.3, < 3.0)
216
+ phantomjs
217
+ rails (>= 3.1.0)
218
+ sprockets-rails
219
+ jquery-rails (3.0.4)
220
+ railties (>= 3.0, < 5.0)
221
+ thor (>= 0.14, < 2.0)
222
+ json (1.8.1)
223
+ jwt (0.1.8)
224
+ multi_json (>= 1.5)
225
+ kaminari (0.15.0)
226
+ actionpack (>= 3.0.0)
227
+ activesupport (>= 3.0.0)
228
+ kgio (2.8.1)
229
+ launchy (2.4.2)
230
+ addressable (~> 2.3)
231
+ letter_opener (1.2.0)
232
+ launchy (~> 2.2)
233
+ libxml-ruby (2.6.0)
234
+ loofah (1.2.1)
235
+ nokogiri (>= 1.4.4)
236
+ mail (2.5.4)
237
+ mime-types (~> 1.16)
238
+ treetop (~> 1.4.8)
239
+ mailchimp (0.0.9)
240
+ httparty
241
+ mailchimp-api (2.0.4)
242
+ excon (>= 0.16.0)
243
+ json (>= 1.7.7)
244
+ method_source (0.8.2)
245
+ mime-types (1.25.1)
246
+ mini_portile (0.5.2)
247
+ minitest (4.7.5)
248
+ mixpanel-ruby (1.4.0)
249
+ monetize (0.1.4)
250
+ money (6.0.1)
251
+ i18n (~> 0.6.4)
252
+ monetize (~> 0.1.3)
253
+ multi_json (1.9.2)
254
+ multipart-post (1.2.0)
255
+ net-scp (1.1.2)
256
+ net-ssh (>= 2.6.5)
257
+ net-ssh (2.7.0)
258
+ newrelic_rpm (3.6.5.130)
259
+ nokogiri (1.6.1)
260
+ mini_portile (~> 0.5.0)
261
+ oauth (0.4.7)
262
+ oauth2 (0.8.1)
263
+ faraday (~> 0.8)
264
+ httpauth (~> 0.1)
265
+ jwt (~> 0.1.4)
266
+ multi_json (~> 1.0)
267
+ rack (~> 1.2)
268
+ omniauth (1.1.4)
269
+ hashie (>= 1.2, < 3)
270
+ rack
271
+ omniauth-facebook (1.4.0)
272
+ omniauth-oauth2 (~> 1.0.2)
273
+ omniauth-oauth (1.0.1)
274
+ oauth
275
+ omniauth (~> 1.0)
276
+ omniauth-oauth2 (1.0.3)
277
+ oauth2 (~> 0.8.0)
278
+ omniauth (~> 1.0)
279
+ omniauth-twitter (1.0.1)
280
+ multi_json (~> 1.3)
281
+ omniauth-oauth (~> 1.0)
282
+ orm_adapter (0.5.0)
283
+ pg (0.17.1)
284
+ pg_search (0.7.2)
285
+ activerecord (>= 3.1)
286
+ activesupport (>= 3.1)
287
+ arel
288
+ phantomjs (1.9.7.0)
289
+ poltergeist (1.5.0)
290
+ capybara (~> 2.1)
291
+ cliver (~> 0.3.1)
292
+ multi_json (~> 1.0)
293
+ websocket-driver (>= 0.2.0)
294
+ polyglot (0.3.4)
295
+ postgres-copy (0.8.0)
296
+ activerecord (~> 4.0)
297
+ pg
298
+ rails (~> 4.0)
299
+ responders
300
+ protected_attributes (1.0.5)
301
+ activemodel (>= 4.0.1, < 5.0)
302
+ pry (0.9.12.4)
303
+ coderay (~> 1.0)
304
+ method_source (~> 0.8)
305
+ slop (~> 3.4)
306
+ pundit (0.2.1)
307
+ activesupport (>= 3.0.0)
308
+ rack (1.5.2)
309
+ rack-protection (1.5.1)
310
+ rack
311
+ rack-test (0.6.2)
312
+ rack (>= 1.0)
313
+ rails (4.0.3)
314
+ actionmailer (= 4.0.3)
315
+ actionpack (= 4.0.3)
316
+ activerecord (= 4.0.3)
317
+ activesupport (= 4.0.3)
318
+ bundler (>= 1.3.0, < 2.0)
319
+ railties (= 4.0.3)
320
+ sprockets-rails (~> 2.0.0)
321
+ rails-observers (0.1.2)
322
+ activemodel (~> 4.0)
323
+ rails_12factor (0.0.2)
324
+ rails_serve_static_assets
325
+ rails_stdout_logging
326
+ rails_serve_static_assets (0.0.2)
327
+ rails_stdout_logging (0.0.3)
328
+ railties (4.0.3)
329
+ actionpack (= 4.0.3)
330
+ activesupport (= 4.0.3)
331
+ rake (>= 0.8.7)
332
+ thor (>= 0.18.1, < 2.0)
333
+ raindrops (0.12.0)
334
+ rake (10.2.2)
335
+ ranked-model (0.3)
336
+ activerecord (>= 3.1.12)
337
+ redcarpet (3.0.0)
338
+ redis (3.0.6)
339
+ redis-namespace (1.4.1)
340
+ redis (~> 3.0.4)
341
+ request_store (1.0.5)
342
+ responders (1.0.0)
343
+ railties (>= 3.2, < 5)
344
+ rest-client (1.6.7)
345
+ mime-types (>= 1.16)
346
+ rinku (1.7.3)
347
+ rmagick (2.13.2)
348
+ routing-filter (0.4.0.pre)
349
+ actionpack
350
+ rspec-core (2.14.7)
351
+ rspec-expectations (2.14.4)
352
+ diff-lcs (>= 1.1.3, < 2.0)
353
+ rspec-mocks (2.14.4)
354
+ rspec-rails (2.14.1)
355
+ actionpack (>= 3.0)
356
+ activemodel (>= 3.0)
357
+ activesupport (>= 3.0)
358
+ railties (>= 3.0)
359
+ rspec-core (~> 2.14.0)
360
+ rspec-expectations (~> 2.14.0)
361
+ rspec-mocks (~> 2.14.0)
362
+ ruby-hmac (0.4.0)
363
+ ruby-ole (1.2.11.7)
364
+ rubyzip (1.1.0)
365
+ sass (3.2.13)
366
+ sass-rails (4.0.1)
367
+ railties (>= 4.0.0, < 5.0)
368
+ sass (>= 3.1.10)
369
+ sprockets-rails (~> 2.0.0)
370
+ sax-machine (0.2.1)
371
+ nokogiri (~> 1.6.0)
372
+ schema_associations (1.2.0)
373
+ schema_plus (>= 1.2.0)
374
+ schema_plus (1.3.2)
375
+ rails (>= 3.2)
376
+ valuable
377
+ selenium-webdriver (2.39.0)
378
+ childprocess (>= 0.2.5)
379
+ multi_json (~> 1.0)
380
+ rubyzip (~> 1.0)
381
+ websocket (~> 1.0.4)
382
+ shoulda (3.5.0)
383
+ shoulda-context (~> 1.0, >= 1.0.1)
384
+ shoulda-matchers (>= 1.4.1, < 3.0)
385
+ shoulda-context (1.1.6)
386
+ shoulda-matchers (2.4.0)
387
+ activesupport (>= 3.0.0)
388
+ sidekiq (2.15.2)
389
+ celluloid (>= 0.15.2)
390
+ connection_pool (>= 1.0.0)
391
+ json
392
+ redis (>= 3.0.4)
393
+ redis-namespace (>= 1.3.1)
394
+ simple_form (3.0.1)
395
+ actionpack (>= 4.0.0, < 4.1)
396
+ activemodel (>= 4.0.0, < 4.1)
397
+ simplecov (0.8.2)
398
+ docile (~> 1.1.0)
399
+ multi_json
400
+ simplecov-html (~> 0.8.0)
401
+ simplecov-html (0.8.0)
402
+ sinatra (1.4.4)
403
+ rack (~> 1.4)
404
+ rack-protection (~> 1.4)
405
+ tilt (~> 1.3, >= 1.3.4)
406
+ slim (2.0.2)
407
+ temple (~> 0.6.6)
408
+ tilt (>= 1.3.3, < 2.1)
409
+ slim-rails (2.1.2)
410
+ actionpack (>= 3.0, < 4.1)
411
+ activesupport (>= 3.0, < 4.1)
412
+ railties (>= 3.0, < 4.1)
413
+ slim (~> 2.0)
414
+ slop (3.4.7)
415
+ spectator-validates_email (0.2.0)
416
+ activemodel (>= 3.0.0)
417
+ spreadsheet (0.9.6)
418
+ ruby-ole (>= 1.0)
419
+ sprockets (2.10.1)
420
+ hike (~> 1.2)
421
+ multi_json (~> 1.0)
422
+ rack (~> 1.0)
423
+ tilt (~> 1.1, != 1.3.0)
424
+ sprockets-rails (2.0.1)
425
+ actionpack (>= 3.0)
426
+ activesupport (>= 3.0)
427
+ sprockets (~> 2.8)
428
+ sqlite3 (1.3.9)
429
+ state_machine (1.2.0)
430
+ supermodel (0.1.4)
431
+ activemodel (>= 3.0.0.beta)
432
+ tag_helper (0.0.3)
433
+ temple (0.6.7)
434
+ term-ansicolor (1.2.2)
435
+ tins (~> 0.8)
436
+ thor (0.19.1)
437
+ thread_safe (0.3.3)
438
+ tilt (1.4.1)
439
+ timers (1.1.0)
440
+ tins (0.13.1)
441
+ to_xls (1.5.2)
442
+ spreadsheet
443
+ treetop (1.4.15)
444
+ polyglot
445
+ polyglot (>= 0.3.1)
446
+ tzinfo (0.3.39)
447
+ uglifier (2.4.0)
448
+ execjs (>= 0.3.0)
449
+ json (>= 1.8.0)
450
+ unicorn (4.7.0)
451
+ kgio (~> 2.6)
452
+ rack
453
+ raindrops (~> 0.7)
454
+ valuable (0.9.8)
455
+ video_info (2.0.2)
456
+ addressable
457
+ htmlentities
458
+ multi_json
459
+ warden (1.2.3)
460
+ rack (>= 1.0)
461
+ websocket (1.0.7)
462
+ websocket-driver (0.3.2)
463
+ weekdays (1.0.2)
464
+ xpath (2.0.0)
465
+ nokogiri (~> 1.3)
466
+
467
+ PLATFORMS
468
+ ruby
469
+
470
+ DEPENDENCIES
471
+ RedCloth
472
+ auto_html (= 1.4.2)
473
+ best_in_place!
474
+ better_errors
475
+ binding_of_caller
476
+ browser
477
+ capybara (~> 2.1.0)
478
+ carrierwave (~> 0.10.0)
479
+ catarse_mailchimp!
480
+ catarse_moip (~> 2.3.5)
481
+ catarse_monkeymail!
482
+ catarse_paypal_express (= 2.2.3)
483
+ catarse_settings_db
484
+ chartkick
485
+ coffee-rails (~> 4.0.0)
486
+ compass-960-plugin
487
+ compass-rails
488
+ coveralls
489
+ database_cleaner
490
+ devise
491
+ draper
492
+ ezcrypto
493
+ factory_girl_rails
494
+ fakeweb
495
+ feedzirra
496
+ fog (>= 1.3.1)
497
+ foreman
498
+ formtastic (~> 2.2.1)
499
+ has_scope (~> 0.6.0.rc)
500
+ heroku-deflater (>= 0.4.1)
501
+ high_voltage
502
+ http_accept_language
503
+ httparty (~> 0.6.1)
504
+ httpclient (>= 2.2.5)
505
+ inherited_resources (~> 1.4.1)
506
+ jasmine-rails
507
+ jquery-rails
508
+ kaminari
509
+ launchy
510
+ letter_opener
511
+ mixpanel-ruby
512
+ moip!
513
+ newrelic_rpm (= 3.6.5.130)
514
+ omniauth
515
+ omniauth-facebook (= 1.4.0)
516
+ omniauth-twitter
517
+ pg
518
+ pg_search
519
+ poltergeist
520
+ postgres-copy
521
+ protected_attributes (~> 1.0.5)
522
+ pry
523
+ pundit
524
+ rails (= 4.0.3)
525
+ rails-observers (~> 0.1.2)
526
+ rails_12factor
527
+ ranked-model
528
+ rmagick
529
+ routing-filter (~> 0.4.0.pre)
530
+ rspec-rails (~> 2.14.0)
531
+ sass-rails (~> 4.0.0)
532
+ schema_associations
533
+ schema_plus
534
+ selenium-webdriver
535
+ shoulda
536
+ sidekiq (~> 2.15.2)
537
+ simple_form
538
+ sinatra
539
+ slim-rails
540
+ spectator-validates_email
541
+ sprockets (~> 2.10.1)
542
+ sqlite3
543
+ state_machine
544
+ to_xls
545
+ uglifier
546
+ unicorn
547
+ video_info (>= 1.1.1)
548
+ weekdays
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2014 YOURNAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,3 @@
1
+ = CatarseMonkeymail
2
+
3
+ This project rocks and uses MIT-LICENSE.
data/Rakefile ADDED
@@ -0,0 +1,34 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'CatarseMonkeymail'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+
21
+
22
+ Bundler::GemHelper.install_tasks
23
+
24
+ require 'rake/testtask'
25
+
26
+ Rake::TestTask.new(:test) do |t|
27
+ t.libs << 'lib'
28
+ t.libs << 'test'
29
+ t.pattern = 'test/**/*_test.rb'
30
+ t.verbose = false
31
+ end
32
+
33
+
34
+ task default: :test
@@ -0,0 +1,4 @@
1
+ module CatarseMonkeymail
2
+ class ApplicationController < ActionController::Base
3
+ end
4
+ end
@@ -0,0 +1,9 @@
1
+ module CatarseMonkeymail::ControllerConcerns
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ def mailchimp
6
+ @mailchimp ||= MailchimpApi.start
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ module CatarseMonkeymail
2
+ class MailchimpApi
3
+ def self.start
4
+ @mailchimp ||= Mailchimp::API.new(::CatarseSettings[:mailchimp_api_key])
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,32 @@
1
+ module CatarseMonkeymail::ProjectConcern
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ def mailchimp
6
+ @mailchimp ||= ::CatarseMonkeymail::MailchimpApi.start
7
+ end
8
+
9
+ def subscribe_owner_to_success_list
10
+ subscribe_to_list ::CatarseSettings[:mailchimp_successful_projects_list]
11
+ end
12
+
13
+ def subscribe_owner_to_failed_list
14
+ subscribe_to_list ::CatarseSettings[:mailchimp_failed_projects_list]
15
+ end
16
+
17
+ private
18
+
19
+ def subscribe_to_list list_id
20
+ mailchimp.list.subscribe list_id, { email: self.user.email }, subscriber_args
21
+ end
22
+
23
+ def subscriber_args
24
+ {
25
+ fname: self.user.name,
26
+ city: self.user.address_city,
27
+ state: self.user.address_state
28
+ }
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,34 @@
1
+ module CatarseMonkeymail::UserConcern
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+
6
+ before_save do
7
+ if self.newsletter_changed? && self.newsletter
8
+ return subscribe_to_newsletter_list
9
+ end
10
+
11
+ if self.newsletter && self.email_changed? && !self.new_record?
12
+ unsubscribe_from_newsletter_list self.email_was
13
+ return subscribe_to_newsletter_list
14
+ end
15
+
16
+ if self.newsletter_changed? && !self.newsletter
17
+ return unsubscribe_from_newsletter_list
18
+ end
19
+ end
20
+
21
+ def mailchimp
22
+ @mailchimp ||= ::CatarseMonkeymail::MailchimpApi.start
23
+ end
24
+
25
+ def subscribe_to_newsletter_list
26
+ mailchimp.list.subscribe ::CatarseSettings[:mailchimp_list_id], { email: self.email }, { name: self.name }
27
+ end
28
+
29
+ def unsubscribe_from_newsletter_list email_arg = self.email
30
+ mailchimp.list.unsubscribe ::CatarseMonkeymail[:mailchimp_list_id], { email: email_arg }
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,15 @@
1
+ module CatarseMonkeymail
2
+ class MonkeyProjectObserver < ActiveRecord::Observer
3
+ observe :project
4
+
5
+ def from_online_to_successful(project)
6
+ project.subscribe_owner_to_success_list
7
+ end
8
+ alias :from_waiting_funds_to_successful :from_online_to_successful
9
+
10
+ def from_online_to_failed(project)
11
+ project.subscribe_owner_to_failed_list
12
+ end
13
+ alias :from_waiting_funds_to_failed :from_online_to_failed
14
+ end
15
+ end
data/bin/rails ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
3
+
4
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
5
+ ENGINE_PATH = File.expand_path('../../lib/catarse_monkeymail/engine', __FILE__)
6
+
7
+ # Set up gems listed in the Gemfile.
8
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
9
+ require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
10
+
11
+ require 'rails/all'
12
+ require 'rails/engine/commands'
@@ -0,0 +1,25 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+
3
+ # Maintain your gem's version:
4
+ require "catarse_monkeymail/version"
5
+
6
+ # Describe your gem and declare its dependencies:
7
+ Gem::Specification.new do |s|
8
+ s.name = "catarse_monkeymail"
9
+ s.version = CatarseMonkeymail::VERSION
10
+ s.authors = ["Antônio Roberto Silva"]
11
+ s.email = ["ton@catarse.me"]
12
+ s.homepage = "http://catarse.me"
13
+ s.summary = "Integration with the best newsletter services <3"
14
+ s.description = "A new catarse integration with mailchimp"
15
+
16
+ s.files = `git ls-files`.split($/)
17
+ s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
19
+ s.require_paths = ['lib']
20
+
21
+ s.add_dependency "rails", "~> 4.0.3"
22
+ s.add_dependency "mailchimp-api", "~> 2.0.4"
23
+
24
+ s.add_development_dependency "sqlite3"
25
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,2 @@
1
+ CatarseMonkeymail::Engine.routes.draw do
2
+ end
@@ -0,0 +1,11 @@
1
+ module CatarseMonkeymail
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace CatarseMonkeymail
4
+
5
+ initializer 'include modules' do
6
+ ::ApplicationController.send(:include, CatarseMonkeymail::ControllerConcerns)
7
+ ::User.send(:include, CatarseMonkeymail::UserConcern)
8
+ ::Project.send(:include, CatarseMonkeymail::ProjectConcern)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module CatarseMonkeymail
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,4 @@
1
+ require "catarse_monkeymail/engine"
2
+
3
+ module CatarseMonkeymail
4
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :catarse_monkeymail do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Project do
4
+ before do
5
+ Project.any_instance.stub(:subscribe_owner_to_success_list)
6
+ Project.any_instance.stub(:subscribe_owner_to_failed_list)
7
+ end
8
+
9
+ context "when project is successful" do
10
+ let(:project) { create(:project, state: 'waiting_funds', goal: 10, online_days: -10, online_date: 20.days.ago ) }
11
+
12
+ before do
13
+ project.stub(:pledged).and_return(30)
14
+
15
+ project.should_receive(:subscribe_owner_to_success_list)
16
+ project.should_not_receive(:subscribe_owner_to_failed_list)
17
+ end
18
+
19
+ it { project.finish }
20
+ end
21
+
22
+ context "when project is failed" do
23
+ let(:project) { create(:project, state: 'waiting_funds', goal: 10, online_days: -10, online_date: 20.days.ago ) }
24
+
25
+ before do
26
+ project.should_not_receive(:subscribe_owner_to_success_list)
27
+ project.should_receive(:subscribe_owner_to_failed_list)
28
+ end
29
+
30
+ it { project.finish }
31
+ end
32
+ end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ describe User do
4
+ describe "before_save" do
5
+ before do
6
+ User.any_instance.stub(:subscribe_to_newsletter_list)
7
+ User.any_instance.stub(:unsubscribe_from_newsletter_list)
8
+ end
9
+
10
+ context "when user want to receive a newsletter" do
11
+ let(:user) { build(:user, newsletter: true) }
12
+
13
+ before do
14
+ user.should_receive(:subscribe_to_newsletter_list)
15
+ end
16
+
17
+ it { user.save }
18
+ end
19
+
20
+ context "when user want to receive a newsletter but he changed they email" do
21
+ let(:user) { create(:user, newsletter: true, email: 'foo@bar.com') }
22
+
23
+ before do
24
+ user.should_receive(:subscribe_to_newsletter_list)
25
+ user.should_receive(:unsubscribe_from_newsletter_list).with('foo@bar.com')
26
+ end
27
+
28
+ it { user.update_attributes(email: 'new@email.com') }
29
+ end
30
+
31
+ context "when user is a new account and don't want to receive newsletter" do
32
+ let(:user) { build(:user, newsletter: false) }
33
+
34
+ before do
35
+ user.should_not_receive(:subscribe_to_newsletter_list)
36
+ end
37
+
38
+ it { user.save }
39
+ end
40
+
41
+ context "when user want to not receive newsletter anymore" do
42
+ let(:user) { create(:user, newsletter: true, email: 'foo@bar.com') }
43
+
44
+ before do
45
+ user.should_not_receive(:subscribe_to_newsletter_list)
46
+ user.should_receive(:unsubscribe_from_newsletter_list)
47
+ end
48
+
49
+ it { user.update_attributes(newsletter: false) }
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,106 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require 'coveralls'
4
+ Coveralls.wear!('rails')
5
+
6
+ require File.expand_path("../dummy/config/environment", __FILE__)
7
+ require 'rspec/rails'
8
+ require 'sidekiq/testing'
9
+ require 'fakeweb'
10
+ require "pundit/rspec"
11
+
12
+ ENGINE_RAILS_ROOT=File.join(File.dirname(__FILE__), '../')
13
+
14
+ # Requires supporting ruby files with custom matchers and macros, etc,
15
+ # in spec/support/ and its subdirectories.
16
+ Dir[Rails.root.join(ENGINE_RAILS_ROOT, "spec/support/**/*.rb")].each {|f| require f}
17
+
18
+ def fixture_path(basename)
19
+ "spec/fixtures/#{basename}"
20
+ end
21
+
22
+
23
+ # Checks for pending migrations before tests are run.
24
+ # If you are not using ActiveRecord, you can remove this line.
25
+ ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
26
+
27
+ RSpec.configure do |config|
28
+ config.include FactoryGirl::Syntax::Methods
29
+ config.include ActionView::Helpers::TextHelper
30
+
31
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
32
+ # examples within a transaction, remove the following line or assign false
33
+ # instead of true.
34
+ config.use_transactional_fixtures = false
35
+
36
+ # If true, the base class of anonymous controllers will be inferred
37
+ # automatically. This will be the default behavior in future versions of
38
+ # rspec-rails.
39
+ #config.infer_base_class_for_anonymous_controllers = false
40
+
41
+ # Run specs in random order to surface order dependencies. If you find an
42
+ # order dependency and want to debug it, you can fix the order by providing
43
+ # the seed, which is printed after each run.
44
+ # --seed 1234
45
+ config.order = "random"
46
+
47
+ config.before(:suite) do
48
+ ActiveRecord::Base.connection.execute "SET client_min_messages TO warning;"
49
+ ActiveRecord::Base.connection.execute "SET timezone TO 'utc';"
50
+ DatabaseCleaner.clean_with :truncation
51
+ I18n.locale = :pt
52
+ I18n.default_locale = :pt
53
+
54
+ FakeWeb.register_uri(:get, "http://vimeo.com/api/v2/video/17298435.json", response: fixture_path('vimeo_default_json_request.txt'))
55
+ FakeWeb.register_uri(:get, "http://vimeo.com/17298435", response: fixture_path('vimeo_default_request.txt'))
56
+ FakeWeb.register_uri(:get, "http://www.youtube.com/watch?v=Brw7bzU_t4c", response: fixture_path("youtube_request.txt"))
57
+ end
58
+
59
+ config.before(:each) do
60
+ if example.metadata[:type] == :feature
61
+ DatabaseCleaner.strategy = :truncation
62
+ else
63
+ DatabaseCleaner.strategy = :transaction
64
+ end
65
+ DatabaseCleaner.start
66
+ ActionMailer::Base.deliveries.clear
67
+ RoutingFilter.active = false # Because this issue: https://github.com/svenfuchs/routing-filter/issues/36
68
+ Sidekiq::Testing.fake!
69
+ end
70
+
71
+ config.after(:each) do
72
+ DatabaseCleaner.clean
73
+ end
74
+
75
+ [:controller, :feature].each do |spec_type|
76
+ config.before(:each, type: spec_type) do
77
+ [:detect_old_browsers, :render_facebook_sdk, :render_facebook_like, :render_twitter, :display_uservoice_sso].each do |method|
78
+ ApplicationController.any_instance.stub(method)
79
+ end
80
+ end
81
+ end
82
+
83
+ # Stubs and configuration
84
+ config.before(:each) do
85
+ CatarseMonkeymail::MailchimpApi.stub(:start)
86
+
87
+
88
+ CatarseMailchimp::API.stub(:subscribe).and_return(true)
89
+ CatarseMailchimp::API.stub(:unsubscribe).and_return(true)
90
+ Project.any_instance.stub(:store_image_url).and_return('http://www.store_image_url.com')
91
+ ProjectObserver.any_instance.stub(:after_create)
92
+ UserObserver.any_instance.stub(:after_create)
93
+ Project.any_instance.stub(:download_video_thumbnail)
94
+ CatarseMailchimp::API.stub(:subscribe)
95
+ CatarseMailchimp::API.stub(:unsubscribe)
96
+ Notification.stub(:notify)
97
+ Notification.stub(:notify_once)
98
+ Calendar.any_instance.stub(:fetch_events_from)
99
+ Blog.stub(:fetch_last_posts).and_return([])
100
+ CatarseSettings[:base_domain] = 'localhost'
101
+ CatarseSettings[:email_contact] = 'foo@bar.com'
102
+ CatarseSettings[:company_name] = 'Foo Bar Company'
103
+ Contribution.any_instance.stub(:payment_engine).and_return(PaymentEngines::Interface.new)
104
+ end
105
+ end
106
+
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: catarse_monkeymail
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Antônio Roberto Silva
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-05-29 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: 4.0.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.0.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: mailchimp-api
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.4
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.0.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: A new catarse integration with mailchimp
56
+ email:
57
+ - ton@catarse.me
58
+ executables:
59
+ - rails
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".gitmodules"
65
+ - Gemfile
66
+ - Gemfile.lock
67
+ - MIT-LICENSE
68
+ - README.md
69
+ - Rakefile
70
+ - app/controllers/catarse_monkeymail/application_controller.rb
71
+ - app/controllers/catarse_monkeymail/controller_concerns.rb
72
+ - app/models/catarse_monkeymail/mailchimp_api.rb
73
+ - app/models/catarse_monkeymail/project_concern.rb
74
+ - app/models/catarse_monkeymail/user_concern.rb
75
+ - app/observers/catarse_monkeymail/monkey_project_observer.rb
76
+ - bin/rails
77
+ - catarse_monkeymail.gemspec
78
+ - config/routes.rb
79
+ - lib/catarse_monkeymail.rb
80
+ - lib/catarse_monkeymail/engine.rb
81
+ - lib/catarse_monkeymail/version.rb
82
+ - lib/tasks/catarse_monkeymail_tasks.rake
83
+ - spec/models/catarse_monkeymail/project_spec.rb
84
+ - spec/models/catarse_monkeymail/user_spec.rb
85
+ - spec/spec_helper.rb
86
+ homepage: http://catarse.me
87
+ licenses: []
88
+ metadata: {}
89
+ post_install_message:
90
+ rdoc_options: []
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ requirements: []
104
+ rubyforge_project:
105
+ rubygems_version: 2.2.0
106
+ signing_key:
107
+ specification_version: 4
108
+ summary: Integration with the best newsletter services <3
109
+ test_files:
110
+ - spec/models/catarse_monkeymail/project_spec.rb
111
+ - spec/models/catarse_monkeymail/user_spec.rb
112
+ - spec/spec_helper.rb