acme_plugin 0.0.13

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 (73) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +33 -0
  4. data/app/controllers/acme_plugin/application_controller.rb +34 -0
  5. data/app/models/acme_plugin/challenge.rb +17 -0
  6. data/app/models/acme_plugin/setting.rb +10 -0
  7. data/config/routes.rb +3 -0
  8. data/db/migrate/20151206135029_create_acme_plugin_challenges.rb +9 -0
  9. data/db/migrate/20160412195212_create_acme_plugin_settings.rb +9 -0
  10. data/lib/acme_plugin.rb +146 -0
  11. data/lib/acme_plugin/certificate_output.rb +17 -0
  12. data/lib/acme_plugin/challenge_store.rb +18 -0
  13. data/lib/acme_plugin/configuration.rb +27 -0
  14. data/lib/acme_plugin/database_store.rb +11 -0
  15. data/lib/acme_plugin/engine.rb +5 -0
  16. data/lib/acme_plugin/file_output.rb +18 -0
  17. data/lib/acme_plugin/file_store.rb +16 -0
  18. data/lib/acme_plugin/heroku_output.rb +19 -0
  19. data/lib/acme_plugin/private_key_store.rb +24 -0
  20. data/lib/acme_plugin/version.rb +5 -0
  21. data/lib/tasks/acme_plugin_tasks.rake +15 -0
  22. data/test/acme_plugin_test.rb +351 -0
  23. data/test/controllers/application_controller_test.rb +26 -0
  24. data/test/dummy/README.rdoc +28 -0
  25. data/test/dummy/Rakefile +6 -0
  26. data/test/dummy/app/assets/javascripts/application.js +13 -0
  27. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  28. data/test/dummy/app/controllers/application_controller.rb +5 -0
  29. data/test/dummy/app/helpers/application_helper.rb +2 -0
  30. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  31. data/test/dummy/bin/bundle +3 -0
  32. data/test/dummy/bin/rails +4 -0
  33. data/test/dummy/bin/rake +4 -0
  34. data/test/dummy/bin/setup +29 -0
  35. data/test/dummy/config.ru +4 -0
  36. data/test/dummy/config/acme_plugin.yml +19 -0
  37. data/test/dummy/config/application.rb +23 -0
  38. data/test/dummy/config/boot.rb +5 -0
  39. data/test/dummy/config/database.yml +25 -0
  40. data/test/dummy/config/environment.rb +5 -0
  41. data/test/dummy/config/environments/development.rb +41 -0
  42. data/test/dummy/config/environments/production.rb +79 -0
  43. data/test/dummy/config/environments/test.rb +45 -0
  44. data/test/dummy/config/initializers/assets.rb +11 -0
  45. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  46. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  47. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  48. data/test/dummy/config/initializers/inflections.rb +16 -0
  49. data/test/dummy/config/initializers/mime_types.rb +4 -0
  50. data/test/dummy/config/initializers/session_store.rb +3 -0
  51. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  52. data/test/dummy/config/locales/en.yml +23 -0
  53. data/test/dummy/config/routes.rb +3 -0
  54. data/test/dummy/config/secrets.yml +22 -0
  55. data/test/dummy/db/schema.rb +27 -0
  56. data/test/dummy/db/test.sqlite3 +0 -0
  57. data/test/dummy/key/test_keyfile_1024.pem +15 -0
  58. data/test/dummy/key/test_keyfile_2048.pem +27 -0
  59. data/test/dummy/key/test_keyfile_4096.pem +51 -0
  60. data/test/dummy/key/test_keyfile_8192.pem +99 -0
  61. data/test/dummy/log/development.log +0 -0
  62. data/test/dummy/log/test.log +25582 -0
  63. data/test/dummy/public/404.html +67 -0
  64. data/test/dummy/public/422.html +67 -0
  65. data/test/dummy/public/500.html +66 -0
  66. data/test/dummy/public/favicon.ico +0 -0
  67. data/test/fixtures/acme_plugin/challenges.yml +7 -0
  68. data/test/fixtures/acme_plugin/settings.yml +56 -0
  69. data/test/lib/acme_plugin/configuration_test.rb +13 -0
  70. data/test/lib/acme_plugin/private_key_store_test.rb +30 -0
  71. data/test/models/acme_plugin/challenge_test.rb +6 -0
  72. data/test/test_helper.rb +23 -0
  73. metadata +309 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
+
3
+ one:
4
+ response: MyText
5
+
6
+ two:
7
+ response: MyText
@@ -0,0 +1,56 @@
1
+ #
2
+ # Same private 4096 bit key as in dummy/key/test_keyfile_4096.pem
3
+ #
4
+ one:
5
+ private_key: |
6
+ -----BEGIN RSA PRIVATE KEY-----
7
+ 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
56
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,13 @@
1
+ require 'test_helper'
2
+
3
+ module AcmePlugin
4
+ class ConfigurationTest < ActiveSupport::TestCase
5
+ test 'reads multiple domains from test config' do
6
+ config_file_path = Rails.root.join('config', 'acme_plugin.yml')
7
+ config = AcmePlugin::Configuration.load_file(config_file_path)
8
+ domains = config.domain.split(' ')
9
+ assert_kind_of Array, domains
10
+ assert_operator domains.length, :>, 0
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,30 @@
1
+ require 'test_helper'
2
+
3
+ class PrivateKeyStoreTest < ActiveSupport::TestCase
4
+ # Note we should probably stub the implementation of OpenSSL key generation
5
+ test 'if_keysize_smaller_than_2048_is_invalid' do
6
+ exception = assert_raises RuntimeError do
7
+ PrivateKeyStore.new(1024).retrieve
8
+ end
9
+ assert_equal 'Invalid key size: 1024. Required size is between 2048 - 4096 bits', exception.message
10
+ end
11
+
12
+ test 'if_keysize_greater_than_4096_is_invalid' do
13
+ exception = assert_raises RuntimeError do
14
+ PrivateKeyStore.new(8192).retrieve
15
+ end
16
+ assert_equal 'Invalid key size: 8192. Required size is between 2048 - 4096 bits', exception.message
17
+ end
18
+
19
+ test 'if_keysize_equal_4096_is_valid' do
20
+ assert_nothing_raised do
21
+ PrivateKeyStore.new(4096).retrieve
22
+ end
23
+ end
24
+
25
+ test 'if_keysize_equal_2048_is_valid' do
26
+ assert_nothing_raised do
27
+ PrivateKeyStore.new(2048).retrieve
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,6 @@
1
+ require 'test_helper'
2
+
3
+ module AcmePlugin
4
+ class ChallengeTest < ActiveSupport::TestCase
5
+ end
6
+ end
@@ -0,0 +1,23 @@
1
+ # Configure Rails Environment
2
+ ENV['RAILS_ENV'] = 'test'
3
+
4
+ require 'simplecov'
5
+
6
+ require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
7
+ require 'rails/test_help'
8
+ require 'minitest/rails'
9
+ require 'minitest/reporters'
10
+ require 'webmock/minitest'
11
+
12
+ SimpleCov.start
13
+ # Filter out Minitest backtrace while allowing backtrace from other libraries
14
+ # to be shown.
15
+ Minitest.backtrace_filter = Minitest::BacktraceFilter.new
16
+ Minitest::Reporters.use!
17
+
18
+ # Load fixtures from the engine
19
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
20
+ ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
21
+ ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
22
+ ActiveSupport::TestCase.fixtures :all
23
+ end
metadata ADDED
@@ -0,0 +1,309 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: acme_plugin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.13
5
+ platform: ruby
6
+ authors:
7
+ - Lukasz Gromanowski
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-02-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: acme-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.6.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.6.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '4.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '4.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: codeclimate-test-reporter
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.8
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.8
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 5.11.3
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 5.11.3
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 3.0.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 3.0.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest-reporters
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.1.19
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.1.19
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.52.1
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.52.1
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.13'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.13'
125
+ - !ruby/object:Gem::Dependency
126
+ name: sqlite3
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 1.3.13
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 1.3.13
139
+ - !ruby/object:Gem::Dependency
140
+ name: webmock
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 3.3.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 3.3.0
153
+ description: 'acme-plugin is a Ruby on Rails helper for ACME protocol services, ie.
154
+ Let''s Encryptfor retrieving SSL certificates (without using sudo, like original
155
+ letsencrypt client does). It uses acme-client gem for communication with ACME protocol
156
+ server. '
157
+ email:
158
+ - lgromanowski@gmail.com
159
+ executables: []
160
+ extensions: []
161
+ extra_rdoc_files: []
162
+ files:
163
+ - MIT-LICENSE
164
+ - Rakefile
165
+ - app/controllers/acme_plugin/application_controller.rb
166
+ - app/models/acme_plugin/challenge.rb
167
+ - app/models/acme_plugin/setting.rb
168
+ - config/routes.rb
169
+ - db/migrate/20151206135029_create_acme_plugin_challenges.rb
170
+ - db/migrate/20160412195212_create_acme_plugin_settings.rb
171
+ - lib/acme_plugin.rb
172
+ - lib/acme_plugin/certificate_output.rb
173
+ - lib/acme_plugin/challenge_store.rb
174
+ - lib/acme_plugin/configuration.rb
175
+ - lib/acme_plugin/database_store.rb
176
+ - lib/acme_plugin/engine.rb
177
+ - lib/acme_plugin/file_output.rb
178
+ - lib/acme_plugin/file_store.rb
179
+ - lib/acme_plugin/heroku_output.rb
180
+ - lib/acme_plugin/private_key_store.rb
181
+ - lib/acme_plugin/version.rb
182
+ - lib/tasks/acme_plugin_tasks.rake
183
+ - test/acme_plugin_test.rb
184
+ - test/controllers/application_controller_test.rb
185
+ - test/dummy/README.rdoc
186
+ - test/dummy/Rakefile
187
+ - test/dummy/app/assets/javascripts/application.js
188
+ - test/dummy/app/assets/stylesheets/application.css
189
+ - test/dummy/app/controllers/application_controller.rb
190
+ - test/dummy/app/helpers/application_helper.rb
191
+ - test/dummy/app/views/layouts/application.html.erb
192
+ - test/dummy/bin/bundle
193
+ - test/dummy/bin/rails
194
+ - test/dummy/bin/rake
195
+ - test/dummy/bin/setup
196
+ - test/dummy/config.ru
197
+ - test/dummy/config/acme_plugin.yml
198
+ - test/dummy/config/application.rb
199
+ - test/dummy/config/boot.rb
200
+ - test/dummy/config/database.yml
201
+ - test/dummy/config/environment.rb
202
+ - test/dummy/config/environments/development.rb
203
+ - test/dummy/config/environments/production.rb
204
+ - test/dummy/config/environments/test.rb
205
+ - test/dummy/config/initializers/assets.rb
206
+ - test/dummy/config/initializers/backtrace_silencers.rb
207
+ - test/dummy/config/initializers/cookies_serializer.rb
208
+ - test/dummy/config/initializers/filter_parameter_logging.rb
209
+ - test/dummy/config/initializers/inflections.rb
210
+ - test/dummy/config/initializers/mime_types.rb
211
+ - test/dummy/config/initializers/session_store.rb
212
+ - test/dummy/config/initializers/wrap_parameters.rb
213
+ - test/dummy/config/locales/en.yml
214
+ - test/dummy/config/routes.rb
215
+ - test/dummy/config/secrets.yml
216
+ - test/dummy/db/schema.rb
217
+ - test/dummy/db/test.sqlite3
218
+ - test/dummy/key/test_keyfile_1024.pem
219
+ - test/dummy/key/test_keyfile_2048.pem
220
+ - test/dummy/key/test_keyfile_4096.pem
221
+ - test/dummy/key/test_keyfile_8192.pem
222
+ - test/dummy/log/development.log
223
+ - test/dummy/log/test.log
224
+ - test/dummy/public/404.html
225
+ - test/dummy/public/422.html
226
+ - test/dummy/public/500.html
227
+ - test/dummy/public/favicon.ico
228
+ - test/fixtures/acme_plugin/challenges.yml
229
+ - test/fixtures/acme_plugin/settings.yml
230
+ - test/lib/acme_plugin/configuration_test.rb
231
+ - test/lib/acme_plugin/private_key_store_test.rb
232
+ - test/models/acme_plugin/challenge_test.rb
233
+ - test/test_helper.rb
234
+ homepage: https://github.com/lgromanowski/acme-plugin
235
+ licenses:
236
+ - MIT
237
+ metadata: {}
238
+ post_install_message:
239
+ rdoc_options: []
240
+ require_paths:
241
+ - lib
242
+ required_ruby_version: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: 2.1.0
247
+ required_rubygems_version: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - ">="
250
+ - !ruby/object:Gem::Version
251
+ version: '0'
252
+ requirements: []
253
+ rubyforge_project:
254
+ rubygems_version: 2.7.6
255
+ signing_key:
256
+ specification_version: 4
257
+ summary: ACME protocol plugin for Ruby on Rails applications
258
+ test_files:
259
+ - test/controllers/application_controller_test.rb
260
+ - test/acme_plugin_test.rb
261
+ - test/test_helper.rb
262
+ - test/lib/acme_plugin/configuration_test.rb
263
+ - test/lib/acme_plugin/private_key_store_test.rb
264
+ - test/models/acme_plugin/challenge_test.rb
265
+ - test/fixtures/acme_plugin/challenges.yml
266
+ - test/fixtures/acme_plugin/settings.yml
267
+ - test/dummy/db/test.sqlite3
268
+ - test/dummy/db/schema.rb
269
+ - test/dummy/Rakefile
270
+ - test/dummy/app/controllers/application_controller.rb
271
+ - test/dummy/app/helpers/application_helper.rb
272
+ - test/dummy/app/assets/javascripts/application.js
273
+ - test/dummy/app/assets/stylesheets/application.css
274
+ - test/dummy/app/views/layouts/application.html.erb
275
+ - test/dummy/public/500.html
276
+ - test/dummy/public/422.html
277
+ - test/dummy/public/404.html
278
+ - test/dummy/public/favicon.ico
279
+ - test/dummy/bin/rake
280
+ - test/dummy/bin/setup
281
+ - test/dummy/bin/rails
282
+ - test/dummy/bin/bundle
283
+ - test/dummy/config/environments/development.rb
284
+ - test/dummy/config/environments/test.rb
285
+ - test/dummy/config/environments/production.rb
286
+ - test/dummy/config/secrets.yml
287
+ - test/dummy/config/acme_plugin.yml
288
+ - test/dummy/config/boot.rb
289
+ - test/dummy/config/application.rb
290
+ - test/dummy/config/initializers/filter_parameter_logging.rb
291
+ - test/dummy/config/initializers/inflections.rb
292
+ - test/dummy/config/initializers/mime_types.rb
293
+ - test/dummy/config/initializers/assets.rb
294
+ - test/dummy/config/initializers/backtrace_silencers.rb
295
+ - test/dummy/config/initializers/wrap_parameters.rb
296
+ - test/dummy/config/initializers/cookies_serializer.rb
297
+ - test/dummy/config/initializers/session_store.rb
298
+ - test/dummy/config/database.yml
299
+ - test/dummy/config/environment.rb
300
+ - test/dummy/config/locales/en.yml
301
+ - test/dummy/config/routes.rb
302
+ - test/dummy/log/test.log
303
+ - test/dummy/log/development.log
304
+ - test/dummy/key/test_keyfile_1024.pem
305
+ - test/dummy/key/test_keyfile_4096.pem
306
+ - test/dummy/key/test_keyfile_2048.pem
307
+ - test/dummy/key/test_keyfile_8192.pem
308
+ - test/dummy/config.ru
309
+ - test/dummy/README.rdoc