postageapp 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +6 -0
  3. data/.travis.yml +9 -40
  4. data/LICENSE.md +1 -1
  5. data/README.md +117 -13
  6. data/Rakefile +15 -4
  7. data/VERSION +1 -0
  8. data/app/ingresses/action_mailbox/ingresses/postage_app.rb +2 -0
  9. data/app/ingresses/action_mailbox/ingresses/postage_app/inbound_emails_controller.rb +50 -0
  10. data/config/routes.rb +6 -0
  11. data/exe/postageapp +37 -0
  12. data/lib/generators/postageapp/postageapp_generator.rb +9 -6
  13. data/lib/postageapp.rb +53 -35
  14. data/lib/postageapp/cli.rb +14 -0
  15. data/lib/postageapp/cli/command.rb +110 -0
  16. data/lib/postageapp/cli/command/config.rb +74 -0
  17. data/lib/postageapp/cli/command/create_mailbox.rb +21 -0
  18. data/lib/postageapp/cli/command/env.rb +58 -0
  19. data/lib/postageapp/cli/command/get_project_info.rb +3 -0
  20. data/lib/postageapp/configuration.rb +237 -74
  21. data/lib/postageapp/engine.rb +9 -0
  22. data/lib/postageapp/env.rb +9 -0
  23. data/lib/postageapp/mailer.rb +1 -11
  24. data/lib/postageapp/mailer/mailer_4.rb +30 -14
  25. data/lib/postageapp/rails/railtie.rb +1 -3
  26. data/lib/postageapp/request.rb +6 -1
  27. data/log/.gitignore +1 -0
  28. data/postageapp.gemspec +8 -10
  29. data/script/with +2 -2
  30. data/test/gemfiles/Gemfile.rails-2.3.x +1 -1
  31. data/test/gemfiles/Gemfile.rails-3.0.x +1 -1
  32. data/test/gemfiles/Gemfile.rails-3.1.x +1 -1
  33. data/test/gemfiles/Gemfile.rails-3.2.x +1 -1
  34. data/test/gemfiles/Gemfile.rails-4.0.x +1 -1
  35. data/test/gemfiles/Gemfile.rails-4.1.x +1 -1
  36. data/test/gemfiles/Gemfile.rails-4.2.x +1 -2
  37. data/test/gemfiles/Gemfile.rails-5.0.x +2 -3
  38. data/test/gemfiles/Gemfile.rails-5.2.x +12 -0
  39. data/test/gemfiles/Gemfile.rails-6.0.x +12 -0
  40. data/test/gemfiles/Gemfile.rails-6.1.x +12 -0
  41. data/test/gemfiles/Gemfile.ruby +2 -3
  42. data/test/helper.rb +3 -3
  43. data/test/log/.gitignore +1 -0
  44. data/test/mailer/action_mailer_3/notifier.rb +1 -1
  45. data/test/tmp/.gitignore +1 -0
  46. data/test/travis_test.rb +58 -40
  47. data/test/{configuration_test.rb → unit/configuration_test.rb} +5 -3
  48. data/test/{failed_request_test.rb → unit/failed_request_test.rb} +6 -6
  49. data/test/{live_test.rb → unit/live_test.rb} +1 -36
  50. data/test/{mail_delivery_method_test.rb → unit/mail_delivery_method_test.rb} +1 -1
  51. data/test/{mailer_4_test.rb → unit/mailer_4_test.rb} +2 -2
  52. data/test/{mailer_helper_methods_test.rb → unit/mailer_helper_methods_test.rb} +4 -4
  53. data/test/{postageapp_test.rb → unit/postageapp_test.rb} +7 -1
  54. data/test/{rails_initialization_test.rb → unit/rails_initialization_test.rb} +2 -2
  55. data/test/{request_test.rb → unit/request_test.rb} +15 -15
  56. data/test/{response_test.rb → unit/response_test.rb} +4 -4
  57. data/test/unit/tmp/.gitignore +1 -0
  58. data/tmp/.gitignore +1 -0
  59. metadata +40 -46
  60. data/lib/postageapp/mailer/mailer_2.rb +0 -140
  61. data/lib/postageapp/mailer/mailer_3.rb +0 -190
  62. data/lib/postageapp/version.rb +0 -3
  63. data/test/mailer/action_mailer_2/notifier.rb +0 -77
  64. data/test/mailer/action_mailer_2/notifier/with_body_and_attachment.erb +0 -1
  65. data/test/mailer/action_mailer_2/notifier/with_custom_postage_variables.text.html.erb +0 -1
  66. data/test/mailer/action_mailer_2/notifier/with_custom_postage_variables.text.plain.erb +0 -1
  67. data/test/mailer/action_mailer_2/notifier/with_html_and_text_views.text.html.erb +0 -1
  68. data/test/mailer/action_mailer_2/notifier/with_html_and_text_views.text.plain.erb +0 -1
  69. data/test/mailer/action_mailer_2/notifier/with_simple_view.erb +0 -1
  70. data/test/mailer/action_mailer_2/notifier/with_text_only_view.text.plain.erb +0 -1
  71. data/test/mailer_2_test.rb +0 -95
  72. data/test/mailer_3_test.rb +0 -118
@@ -1,4 +1,4 @@
1
- require_relative './helper'
1
+ require_relative '../helper'
2
2
 
3
3
  class ConfigurationTest < MiniTest::Test
4
4
  def test_initialization_defaults
@@ -21,12 +21,13 @@ class ConfigurationTest < MiniTest::Test
21
21
 
22
22
  assert_equal 5, config.http_open_timeout
23
23
  assert_equal 10, config.http_read_timeout
24
+
24
25
  assert_nil config.recipient_override
25
26
  assert_equal %w( send_message ), config.requests_to_resend
26
- assert_nil config.project_root
27
+ refute_nil config.project_root
27
28
  assert_equal 'production', config.environment
28
29
  assert_nil config.logger
29
- assert_equal 'Ruby', config.framework
30
+ assert_match 'Ruby', config.framework
30
31
  end
31
32
 
32
33
  def test_initialization_overrides
@@ -56,6 +57,7 @@ class ConfigurationTest < MiniTest::Test
56
57
  config = PostageApp::Configuration.new
57
58
 
58
59
  config.secure = false
60
+
59
61
  assert_equal false, config.secure
60
62
  assert_equal 'http', config.scheme
61
63
  assert_equal 80, config.port
@@ -1,10 +1,10 @@
1
- require_relative './helper'
1
+ require_relative '../helper'
2
2
 
3
3
  class FailedRequestTest < MiniTest::Test
4
4
  def setup
5
5
  super
6
6
 
7
- PostageApp.configuration.project_root = File.dirname(__FILE__)
7
+ PostageApp.configuration.project_root = __dir__
8
8
  end
9
9
 
10
10
  def test_store_and_initialize
@@ -87,12 +87,12 @@ class FailedRequestTest < MiniTest::Test
87
87
  request = PostageApp::Request.new(:get_project_info)
88
88
 
89
89
  message_receipt_response = stub(
90
- :fail? => false,
91
- :ok? => false,
92
- :not_found? => true
90
+ fail?: false,
91
+ ok?: false,
92
+ not_found?: true
93
93
  )
94
94
 
95
- message_receipt_request = stub(:send => message_receipt_response)
95
+ message_receipt_request = stub(send: message_receipt_response)
96
96
 
97
97
  PostageApp::Request.stubs(:new).with do |a,b|
98
98
  a == :get_message_receipt
@@ -1,4 +1,4 @@
1
- require_relative './helper'
1
+ require_relative '../helper'
2
2
 
3
3
  class LiveTest < MiniTest::Test
4
4
  # Note: Need access to a live PostageApp.com account
@@ -11,41 +11,6 @@ class LiveTest < MiniTest::Test
11
11
  assert config
12
12
  assert_equal ENV['POSTAGEAPP_API_KEY'], config.api_key
13
13
  end
14
-
15
- def test_request_get_method_list
16
- request = PostageApp::Request.new(:get_method_list)
17
- response = request.send
18
-
19
- assert_equal 'PostageApp::Response', response.class.name
20
- assert_equal 'ok', response.status
21
- assert_match(/^\w{40}$/, response.uid)
22
- assert_nil response.message
23
- assert_equal(
24
- {
25
- 'methods' => %w[
26
- get_account_info
27
- get_message_receipt
28
- get_message_transmissions
29
- get_messages
30
- get_method_list
31
- get_metrics
32
- get_project_info
33
- get_recipients_list
34
- get_suppression_list
35
- message_delivery_status
36
- message_status
37
- messages_history
38
- project_create
39
- project_destroy
40
- project_info
41
- send_message
42
- test_mail_server
43
- test_recipient
44
- ].join(', ')
45
- },
46
- response.data
47
- )
48
- end
49
14
 
50
15
  def test_request_send_message
51
16
  request = PostageApp::Request.new(
@@ -1,4 +1,4 @@
1
- require_relative './helper'
1
+ require_relative '../helper'
2
2
 
3
3
  class MailerDeliveryTest < MiniTest::Test
4
4
  def setup
@@ -1,8 +1,8 @@
1
- require_relative './helper'
1
+ require_relative '../helper'
2
2
 
3
3
  class Mailer4Test < MiniTest::Test
4
4
  require_action_mailer(4) do
5
- require File.expand_path('mailer/action_mailer_3/notifier', File.dirname(__FILE__))
5
+ require File.expand_path('mailer/action_mailer_3/notifier', __dir__)
6
6
 
7
7
  puts "\e[0m\e[32mRunning #{File.basename(__FILE__)} for action_mailer #{ActionMailer::VERSION::STRING}\e[0m"
8
8
 
@@ -1,15 +1,15 @@
1
- require_relative './helper'
1
+ require_relative '../helper'
2
2
 
3
3
  class MailerHelperMethodsTest < MiniTest::Test
4
4
  def test_mailer_helper_methods
5
5
  request = PostageApp::Request.new(
6
6
  :send_message,
7
- :headers => {
7
+ headers: {
8
8
  'from' => 'sender@test.test',
9
9
  'subject' => 'Test Message'
10
10
  },
11
- :recipients => 'test@test.test',
12
- :content => {
11
+ recipients: 'test@test.test',
12
+ content: {
13
13
  'text/plain' => 'text content',
14
14
  'text/html' => 'html content'
15
15
  }
@@ -1,4 +1,4 @@
1
- require_relative './helper'
1
+ require_relative '../helper'
2
2
 
3
3
  class PostageAppTest < MiniTest::Test
4
4
  def test_method_configure
@@ -13,6 +13,12 @@ class PostageAppTest < MiniTest::Test
13
13
  ensure
14
14
  PostageApp.configuration_reset!
15
15
  end
16
+
17
+ def test_version
18
+ assert PostageApp.version.match(/\A\d+\.\d+\.\d+\z/), -> {
19
+ "%s is not a valid version number" % PostageApp.version.inspect
20
+ }
21
+ end
16
22
 
17
23
  def test_logger
18
24
  assert PostageApp.logger.is_a?(Logger)
@@ -1,6 +1,6 @@
1
- require_relative './helper'
1
+ require_relative '../helper'
2
2
 
3
- require File.expand_path('../lib/postageapp/rails/rails', File.dirname(__FILE__))
3
+ require_relative '../../lib/postageapp/rails/rails'
4
4
 
5
5
  class RailsInitializationTest < MiniTest::Test
6
6
  def test_initialization
@@ -1,4 +1,4 @@
1
- require_relative './helper'
1
+ require_relative '../helper'
2
2
 
3
3
  class RequestTest < MiniTest::Test
4
4
  def test_method_uid
@@ -10,15 +10,15 @@ class RequestTest < MiniTest::Test
10
10
  assert_equal uid, request.uid
11
11
  assert uid != request.uid(true)
12
12
  end
13
-
13
+
14
14
  def test_method_url
15
15
  request = PostageApp::Request.new('test_method')
16
16
 
17
17
  assert_equal 'api.postageapp.com', request.url.host
18
18
  assert_equal 443, request.url.port
19
- assert_equal '/v.1.0/test_method.json', request.url.path
19
+ assert_equal '/v.1.1/test_method.json', request.url.path
20
20
  end
21
-
21
+
22
22
  def test_method_arguments_to_send
23
23
  request = PostageApp::Request.new('send_message',
24
24
  'headers' => {
@@ -37,7 +37,7 @@ class RequestTest < MiniTest::Test
37
37
  assert args['api_key']
38
38
  assert !args['api_key'].empty?
39
39
  assert_match(/^\w{40}$/, args['uid'])
40
-
40
+
41
41
  payload = args['arguments']
42
42
 
43
43
  assert_equal 'sender@test.test', payload['headers']['from']
@@ -45,7 +45,7 @@ class RequestTest < MiniTest::Test
45
45
  assert_equal 'test@test.test', payload['recipients']
46
46
  assert_equal 'text content', payload['content']['text/plain']
47
47
  assert_equal 'html content', payload['content']['text/html']
48
-
48
+
49
49
  request.arguments = { 'data' => 'content' }
50
50
 
51
51
  args = request.arguments_to_send
@@ -54,37 +54,37 @@ class RequestTest < MiniTest::Test
54
54
  assert_match(/^\w{40}$/, args['uid'])
55
55
  assert_equal 'content', args['arguments']['data']
56
56
  end
57
-
57
+
58
58
  def test_uid_is_enforceable
59
59
  request = PostageApp::Request.new('test_method')
60
60
 
61
61
  assert_match(/^\w{40}$/, request.arguments_to_send['uid'])
62
-
62
+
63
63
  request.uid = 'my_uid'
64
64
 
65
65
  assert_equal 'my_uid', request.arguments_to_send['uid']
66
-
66
+
67
67
  request = PostageApp::Request.new('test_method', 'uid' => 'new_uid', 'data' => 'value')
68
68
 
69
69
  assert_equal 'new_uid', request.uid
70
70
  assert_equal({ 'data' => 'value' }, request.arguments)
71
71
  end
72
-
72
+
73
73
  def test_api_key
74
74
  request = PostageApp::Request.new('test_method')
75
75
 
76
76
  assert_equal PostageApp.configuration.api_key, request.api_key
77
-
77
+
78
78
  request = PostageApp::Request.new('test_method', {
79
79
  'api_key' => 'custom_api_key'
80
80
  })
81
81
 
82
82
  assert_equal 'custom_api_key', request.api_key
83
83
  end
84
-
84
+
85
85
  def test_send
86
86
  mock_successful_send
87
-
87
+
88
88
  request = PostageApp::Request.new('send_message',
89
89
  'headers' => {
90
90
  'from' => 'sender@test.test',
@@ -103,10 +103,10 @@ class RequestTest < MiniTest::Test
103
103
  assert_equal 'sha1hashuid23456789012345678901234567890', response.uid
104
104
  assert_equal({ 'message' => { 'id' => 999 } }, response.data)
105
105
  end
106
-
106
+
107
107
  def test_send_failure
108
108
  mock_failed_send
109
-
109
+
110
110
  request = PostageApp::Request.new(
111
111
  'send_message',
112
112
  'headers' => {
@@ -1,12 +1,12 @@
1
- require_relative './helper'
1
+ require_relative '../helper'
2
2
 
3
3
  class ResponseTest < MiniTest::Test
4
4
  def test_initialization
5
5
  object = stub(
6
- :body => {
6
+ body: {
7
7
  'response' => {
8
- 'uid' => 'md5_hash_uid',
9
- 'status' => 'ok',
8
+ 'uid' => 'md5_hash_uid',
9
+ 'status' => 'ok',
10
10
  'message' => 'api reply message'
11
11
  },
12
12
  'data' => {
@@ -0,0 +1 @@
1
+ *
data/tmp/.gitignore ADDED
@@ -0,0 +1 @@
1
+ *
metadata CHANGED
@@ -1,31 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postageapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Tadman
8
8
  - Oleg Khabarov
9
- - The Working Group Inc.
10
- autorequire:
9
+ - PostageApp Ltd.
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-09-13 00:00:00.000000000 Z
13
+ date: 2021-07-14 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: json
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - ">="
20
- - !ruby/object:Gem::Version
21
- version: '1.8'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- version: '1.8'
29
15
  - !ruby/object:Gem::Dependency
30
16
  name: mail
31
17
  requirement: !ruby/object:Gem::Requirement
@@ -44,6 +30,7 @@ description: PostageApp Library for Ruby and Ruby on Rails applications
44
30
  email:
45
31
  - tadman@postageapp.com
46
32
  - oleg@khabarov.ca
33
+ - info@postageapp.com
47
34
  executables: []
48
35
  extensions: []
49
36
  extra_rdoc_files: []
@@ -54,15 +41,28 @@ files:
54
41
  - LICENSE.md
55
42
  - README.md
56
43
  - Rakefile
44
+ - VERSION
45
+ - app/ingresses/action_mailbox/ingresses/postage_app.rb
46
+ - app/ingresses/action_mailbox/ingresses/postage_app/inbound_emails_controller.rb
47
+ - config/routes.rb
57
48
  - doc/RAILS2.md
58
49
  - doc/RAILS3.md
50
+ - exe/postageapp
59
51
  - generators/postageapp/postageapp_generator.rb
60
52
  - generators/postageapp/templates/initializer.rb
61
53
  - generators/postageapp/templates/postageapp_tasks.rake
62
54
  - lib/generators/postageapp/postageapp_generator.rb
63
55
  - lib/postageapp.rb
56
+ - lib/postageapp/cli.rb
57
+ - lib/postageapp/cli/command.rb
58
+ - lib/postageapp/cli/command/config.rb
59
+ - lib/postageapp/cli/command/create_mailbox.rb
60
+ - lib/postageapp/cli/command/env.rb
61
+ - lib/postageapp/cli/command/get_project_info.rb
64
62
  - lib/postageapp/configuration.rb
65
63
  - lib/postageapp/diagnostics.rb
64
+ - lib/postageapp/engine.rb
65
+ - lib/postageapp/env.rb
66
66
  - lib/postageapp/failed_request.rb
67
67
  - lib/postageapp/http.rb
68
68
  - lib/postageapp/logger.rb
@@ -71,20 +71,16 @@ files:
71
71
  - lib/postageapp/mail/delivery_method.rb
72
72
  - lib/postageapp/mail/extensions.rb
73
73
  - lib/postageapp/mailer.rb
74
- - lib/postageapp/mailer/mailer_2.rb
75
- - lib/postageapp/mailer/mailer_3.rb
76
74
  - lib/postageapp/mailer/mailer_4.rb
77
75
  - lib/postageapp/rails/rails.rb
78
76
  - lib/postageapp/rails/railtie.rb
79
77
  - lib/postageapp/request.rb
80
78
  - lib/postageapp/response.rb
81
79
  - lib/postageapp/utils.rb
82
- - lib/postageapp/version.rb
80
+ - log/.gitignore
83
81
  - postageapp.gemspec
84
82
  - rails/init.rb
85
83
  - script/with
86
- - test/configuration_test.rb
87
- - test/failed_request_test.rb
88
84
  - test/gemfiles/Gemfile.rails-2.3.x
89
85
  - test/gemfiles/Gemfile.rails-3.0.x
90
86
  - test/gemfiles/Gemfile.rails-3.1.x
@@ -93,18 +89,12 @@ files:
93
89
  - test/gemfiles/Gemfile.rails-4.1.x
94
90
  - test/gemfiles/Gemfile.rails-4.2.x
95
91
  - test/gemfiles/Gemfile.rails-5.0.x
92
+ - test/gemfiles/Gemfile.rails-5.2.x
93
+ - test/gemfiles/Gemfile.rails-6.0.x
94
+ - test/gemfiles/Gemfile.rails-6.1.x
96
95
  - test/gemfiles/Gemfile.ruby
97
96
  - test/helper.rb
98
- - test/live_test.rb
99
- - test/mail_delivery_method_test.rb
100
- - test/mailer/action_mailer_2/notifier.rb
101
- - test/mailer/action_mailer_2/notifier/with_body_and_attachment.erb
102
- - test/mailer/action_mailer_2/notifier/with_custom_postage_variables.text.html.erb
103
- - test/mailer/action_mailer_2/notifier/with_custom_postage_variables.text.plain.erb
104
- - test/mailer/action_mailer_2/notifier/with_html_and_text_views.text.html.erb
105
- - test/mailer/action_mailer_2/notifier/with_html_and_text_views.text.plain.erb
106
- - test/mailer/action_mailer_2/notifier/with_simple_view.erb
107
- - test/mailer/action_mailer_2/notifier/with_text_only_view.text.plain.erb
97
+ - test/log/.gitignore
108
98
  - test/mailer/action_mailer_3/layouts/notifier.html.erb
109
99
  - test/mailer/action_mailer_3/notifier.rb
110
100
  - test/mailer/action_mailer_3/notifier/with_custom_postage_variables.html.erb
@@ -115,21 +105,26 @@ files:
115
105
  - test/mailer/action_mailer_3/notifier/with_old_api.text.erb
116
106
  - test/mailer/action_mailer_3/notifier/with_simple_view.erb
117
107
  - test/mailer/action_mailer_3/notifier/with_text_only_view.text.erb
118
- - test/mailer_2_test.rb
119
- - test/mailer_3_test.rb
120
- - test/mailer_4_test.rb
121
- - test/mailer_helper_methods_test.rb
122
- - test/postageapp_test.rb
123
- - test/rails_initialization_test.rb
124
- - test/request_test.rb
125
- - test/response_test.rb
108
+ - test/tmp/.gitignore
126
109
  - test/travis_test.rb
110
+ - test/unit/configuration_test.rb
111
+ - test/unit/failed_request_test.rb
112
+ - test/unit/live_test.rb
113
+ - test/unit/mail_delivery_method_test.rb
114
+ - test/unit/mailer_4_test.rb
115
+ - test/unit/mailer_helper_methods_test.rb
116
+ - test/unit/postageapp_test.rb
117
+ - test/unit/rails_initialization_test.rb
118
+ - test/unit/request_test.rb
119
+ - test/unit/response_test.rb
120
+ - test/unit/tmp/.gitignore
127
121
  - test/with_environment.rb
122
+ - tmp/.gitignore
128
123
  homepage: http://github.com/postageapp/postageapp-ruby
129
124
  licenses:
130
125
  - MIT
131
126
  metadata: {}
132
- post_install_message:
127
+ post_install_message:
133
128
  rdoc_options: []
134
129
  require_paths:
135
130
  - lib
@@ -137,16 +132,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
132
  requirements:
138
133
  - - ">="
139
134
  - !ruby/object:Gem::Version
140
- version: 1.9.3
135
+ version: 2.5.0
141
136
  required_rubygems_version: !ruby/object:Gem::Requirement
142
137
  requirements:
143
138
  - - ">="
144
139
  - !ruby/object:Gem::Version
145
140
  version: '0'
146
141
  requirements: []
147
- rubyforge_project:
148
- rubygems_version: 2.5.2
149
- signing_key:
142
+ rubygems_version: 3.2.15
143
+ signing_key:
150
144
  specification_version: 4
151
145
  summary: Client library for PostageApp Email API
152
146
  test_files: []