postageapp 1.3.1 → 1.4.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.
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: []