securenative 0.1.5 → 0.1.21

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 (108) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +49 -0
  3. data/.github/workflows/publish.yml +60 -0
  4. data/.github/workflows/test.yml +48 -0
  5. data/.gitignore +3 -1
  6. data/.rakeTasks +7 -0
  7. data/.rspec +3 -0
  8. data/Gemfile +6 -1
  9. data/Gemfile.lock +254 -17
  10. data/README.md +140 -67
  11. data/Rakefile +5 -1
  12. data/lib/api_manager.rb +39 -0
  13. data/lib/config/configuration_builder.rb +26 -0
  14. data/lib/config/configuration_manager.rb +55 -0
  15. data/lib/config/securenative_options.rb +22 -0
  16. data/lib/context/hanami_context.rb +42 -0
  17. data/lib/context/rails_context.rb +44 -0
  18. data/lib/context/securenative_context.rb +67 -0
  19. data/lib/context/sinatra_context.rb +42 -0
  20. data/lib/enums/api_route.rb +6 -0
  21. data/lib/enums/event_types.rb +23 -0
  22. data/lib/enums/failover_strategy.rb +6 -0
  23. data/lib/enums/risk_level.rb +7 -0
  24. data/lib/errors/securenative_config_error.rb +4 -0
  25. data/lib/errors/securenative_http_error.rb +4 -0
  26. data/lib/errors/securenative_invalid_options_error.rb +4 -0
  27. data/lib/errors/securenative_invalid_uri_error.rb +4 -0
  28. data/lib/errors/securenative_parse_error.rb +4 -0
  29. data/lib/errors/securenative_sdk_Illegal_state_error.rb +4 -0
  30. data/lib/errors/securenative_sdk_error.rb +4 -0
  31. data/lib/event_manager.rb +157 -0
  32. data/lib/http/secure_native_http_response.rb +12 -0
  33. data/lib/http/securenative_http_client.rb +50 -0
  34. data/lib/models/client_token.rb +12 -0
  35. data/lib/models/device.rb +10 -0
  36. data/lib/models/event_options.rb +37 -0
  37. data/lib/models/request_context.rb +18 -0
  38. data/lib/models/request_options.rb +12 -0
  39. data/lib/models/sdk_event.rb +40 -0
  40. data/lib/models/user_traits.rb +13 -0
  41. data/lib/models/verify_result.rb +16 -0
  42. data/lib/securenative.rb +69 -25
  43. data/lib/utils/date_utils.rb +9 -0
  44. data/lib/utils/encryption_utils.rb +49 -0
  45. data/lib/utils/ip_utils.rb +23 -0
  46. data/lib/utils/request_utils.rb +54 -0
  47. data/lib/utils/secure_native_logger.rb +44 -0
  48. data/lib/utils/signature_utils.rb +16 -0
  49. data/lib/utils/utils.rb +9 -0
  50. data/lib/utils/version_utils.rb +11 -0
  51. data/out/production/securenative-ruby/api_manager.rb +31 -0
  52. data/out/production/securenative-ruby/config/configuration_builder.rb +30 -0
  53. data/out/production/securenative-ruby/config/configuration_manager.rb +55 -0
  54. data/out/production/securenative-ruby/config/securenative_options.rb +20 -0
  55. data/out/production/securenative-ruby/context/securenative_context.rb +40 -0
  56. data/out/production/securenative-ruby/enums/api_route.rb +6 -0
  57. data/out/production/securenative-ruby/enums/event_types.rb +23 -0
  58. data/out/production/securenative-ruby/enums/failover_strategy.rb +6 -0
  59. data/out/production/securenative-ruby/enums/risk_level.rb +7 -0
  60. data/out/production/securenative-ruby/errors/securenative_config_error.rb +4 -0
  61. data/out/production/securenative-ruby/errors/securenative_http_error.rb +4 -0
  62. data/out/production/securenative-ruby/errors/securenative_invalid_options_error.rb +4 -0
  63. data/out/production/securenative-ruby/errors/securenative_invalid_uri_error.rb +4 -0
  64. data/out/production/securenative-ruby/errors/securenative_parse_error.rb +4 -0
  65. data/out/production/securenative-ruby/errors/securenative_sdk_Illegal_state_error.rb +4 -0
  66. data/out/production/securenative-ruby/errors/securenative_sdk_error.rb +4 -0
  67. data/out/production/securenative-ruby/event_manager.rb +156 -0
  68. data/out/production/securenative-ruby/event_options.rb +32 -0
  69. data/out/production/securenative-ruby/http/http_response.rb +12 -0
  70. data/out/production/securenative-ruby/http/securenative_http_client.rb +32 -0
  71. data/out/production/securenative-ruby/models/client_token.rb +12 -0
  72. data/out/production/securenative-ruby/models/device.rb +10 -0
  73. data/out/production/securenative-ruby/models/event_options.rb +15 -0
  74. data/out/production/securenative-ruby/models/request_context.rb +18 -0
  75. data/out/production/securenative-ruby/models/request_options.rb +12 -0
  76. data/out/production/securenative-ruby/models/sdk_event.rb +33 -0
  77. data/out/production/securenative-ruby/models/user_traits.rb +13 -0
  78. data/out/production/securenative-ruby/models/verify_result.rb +12 -0
  79. data/out/production/securenative-ruby/securenative.rb +91 -0
  80. data/out/production/securenative-ruby/utils/date_utils.rb +9 -0
  81. data/out/production/securenative-ruby/utils/encryption_utils.rb +35 -0
  82. data/out/production/securenative-ruby/utils/ip_utils.rb +23 -0
  83. data/out/production/securenative-ruby/utils/request_utils.rb +23 -0
  84. data/out/production/securenative-ruby/utils/secure_native_logger.rb +44 -0
  85. data/out/production/securenative-ruby/utils/signature_utils.rb +16 -0
  86. data/out/production/securenative-ruby/utils/utils.rb +9 -0
  87. data/out/production/securenative-ruby/utils/version_utils.rb +12 -0
  88. data/out/test/securenative-ruby/spec_api_manager.rb +81 -0
  89. data/out/test/securenative-ruby/spec_context_builder.rb +69 -0
  90. data/out/test/securenative-ruby/spec_date_utils.rb +13 -0
  91. data/out/test/securenative-ruby/spec_encryption_utils.rb +26 -0
  92. data/out/test/securenative-ruby/spec_event_manager.rb +59 -0
  93. data/out/test/securenative-ruby/spec_helper.rb +20 -0
  94. data/out/test/securenative-ruby/spec_ip_utils.rb +41 -0
  95. data/out/test/securenative-ruby/spec_securenative.rb +65 -0
  96. data/out/test/securenative-ruby/spec_securenative_http_client.rb +23 -0
  97. data/out/test/securenative-ruby/spec_signature_utils.rb +18 -0
  98. data/securenative.gemspec +4 -4
  99. metadata +96 -15
  100. data/lib/securenative/config.rb +0 -9
  101. data/lib/securenative/event_manager.rb +0 -88
  102. data/lib/securenative/event_options.rb +0 -86
  103. data/lib/securenative/event_type.rb +0 -21
  104. data/lib/securenative/http_client.rb +0 -20
  105. data/lib/securenative/secure_native_sdk.rb +0 -62
  106. data/lib/securenative/securenative_options.rb +0 -17
  107. data/lib/securenative/sn_exception.rb +0 -5
  108. data/lib/securenative/utils.rb +0 -41
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b39e9c3c819d0191bcf78f5813681f6679b82c5a864eb04f7bdd05d754b01643
4
- data.tar.gz: a21bcbf70729dace6553c7853154f6a76d341d894a9398cce5c298e9201e8ed7
3
+ metadata.gz: 8aa7eb317d253da74f5b3f78ef8ca0739074e23c0c06396b4a4fb23d40e44320
4
+ data.tar.gz: '0975ccad317a881c689bc6b5d80d9c38b677d2d65907f275548471e4cc4c5f9d'
5
5
  SHA512:
6
- metadata.gz: e4e85d1e8119c75f2e31dfdf74231a20bfc0b5af77b30cca2886a2860a0f7354d28956fcb8aa9a155b3a68c4fe383de9789d9d751ee11111f34646e9aa01db70
7
- data.tar.gz: fc5a540361c33c0570d7be6769418cc2b58ed484e22ca59697508c5f67aca673674c7dd505f53d23ddf0022335a26dc04c95bc93cc1507e174f0af423b1c791e
6
+ metadata.gz: 5d032dcb9eead67fd2cda1e40e3d402853fc250134d3a325bfb37edf5545440307dd53def5ea79d40e737b2afc2a472110c6a7e9a5092f37d540f7a205637a1b
7
+ data.tar.gz: f8093a2e2c272d911f5a0ae9f6039e229f1598b1a428efdcdf6752f2f20b7b98acf5aa4553c820e8868b36d218937b7e26c85ab13ce4682ffa4054a729518cdd
@@ -0,0 +1,49 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - master
7
+ - dev
8
+ - dev-*
9
+
10
+ jobs:
11
+ test:
12
+ name: CI
13
+ runs-on: ${{ matrix.os }}
14
+ strategy:
15
+ matrix:
16
+ os: [ubuntu-latest]
17
+ steps:
18
+ - uses: actions/checkout@v1
19
+ - uses: actions/setup-ruby@v1
20
+ with:
21
+ ruby-version: 2.6.x
22
+ - name: Install dependencies
23
+ run: |
24
+ gem install bundler
25
+ bundler install
26
+ - name: Run tests
27
+ run: bundle exec rspec spec --pattern **/spec_*.rb
28
+
29
+ - name: Notify slack success
30
+ if: success()
31
+ env:
32
+ SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
33
+ uses: voxmedia/github-action-slack-notify-build@v1.1.1
34
+ with:
35
+ message_id: ${{ steps.slack.outputs.message_id }}
36
+ channel: github-actions
37
+ status: SUCCESS
38
+ color: good
39
+
40
+ - name: Notify slack fail
41
+ if: failure()
42
+ env:
43
+ SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
44
+ uses: voxmedia/github-action-slack-notify-build@v1.1.1
45
+ with:
46
+ message_id: ${{ steps.slack.outputs.message_id }}
47
+ channel: github-actions
48
+ status: FAILED
49
+ color: danger
@@ -0,0 +1,60 @@
1
+ name: Publish
2
+
3
+ on:
4
+ release:
5
+ types: [created]
6
+
7
+ jobs:
8
+ deploy:
9
+ name: Publish
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Notify slack success
13
+ if: success()
14
+ id: slack # IMPORTANT: reference this step ID value in future Slack steps
15
+ env:
16
+ SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
17
+ uses: voxmedia/github-action-slack-notify-build@v1.1.1
18
+ with:
19
+ channel: github-actions
20
+ status: STARTING
21
+ color: warning
22
+
23
+ - uses: actions/checkout@v2
24
+ - name: Set up Ruby 2.6
25
+ uses: actions/setup-ruby@v1
26
+ with:
27
+ version: 2.6.x
28
+
29
+ - name: Publish to RubyGems
30
+ run: |
31
+ mkdir -p $HOME/.gem
32
+ touch $HOME/.gem/credentials
33
+ chmod 0600 $HOME/.gem/credentials
34
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
35
+ gem build *.gemspec
36
+ gem push *.gem
37
+ env:
38
+ GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
39
+
40
+ - name: Notify slack success
41
+ if: success()
42
+ env:
43
+ SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
44
+ uses: voxmedia/github-action-slack-notify-build@v1.1.1
45
+ with:
46
+ message_id: ${{ steps.slack.outputs.message_id }}
47
+ channel: github-actions
48
+ status: SUCCESS
49
+ color: good
50
+
51
+ - name: Notify slack fail
52
+ if: failure()
53
+ env:
54
+ SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
55
+ uses: voxmedia/github-action-slack-notify-build@v1.1.1
56
+ with:
57
+ message_id: ${{ steps.slack.outputs.message_id }}
58
+ channel: github-actions
59
+ status: FAILED
60
+ color: danger
@@ -0,0 +1,48 @@
1
+ name: Testing
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - '*'
7
+ - '!master'
8
+
9
+ jobs:
10
+ test:
11
+ name: Testing
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ matrix:
15
+ os: [ubuntu-latest]
16
+ steps:
17
+ - uses: actions/checkout@v1
18
+ - uses: actions/setup-ruby@v1
19
+ with:
20
+ ruby-version: 2.6.x
21
+ - name: Install dependencies
22
+ run: |
23
+ gem install bundler
24
+ bundler install
25
+ - name: Run tests
26
+ run: bundle exec rspec spec --pattern **/spec_*.rb
27
+
28
+ - name: Notify slack success
29
+ if: success()
30
+ env:
31
+ SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
32
+ uses: voxmedia/github-action-slack-notify-build@v1.1.1
33
+ with:
34
+ message_id: ${{ steps.slack.outputs.message_id }}
35
+ channel: github-actions
36
+ status: SUCCESS
37
+ color: good
38
+
39
+ - name: Notify slack fail
40
+ if: failure()
41
+ env:
42
+ SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
43
+ uses: voxmedia/github-action-slack-notify-build@v1.1.1
44
+ with:
45
+ message_id: ${{ steps.slack.outputs.message_id }}
46
+ channel: github-actions
47
+ status: FAILED
48
+ color: danger
data/.gitignore CHANGED
@@ -10,6 +10,7 @@
10
10
  /test/version_tmp/
11
11
  /tmp/
12
12
  .idea
13
+ *.iml
13
14
  # Used by dotenv library to load environment variables.
14
15
  # .env
15
16
 
@@ -35,4 +36,5 @@
35
36
 
36
37
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
37
38
  .rvmrc
38
- .DS_Store
39
+ .DS_Store
40
+ .rspec_status
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Settings><!--This file was automatically generated by Ruby plugin.
3
+ You are allowed to:
4
+ 1. Remove rake task
5
+ 2. Add existing rake tasks
6
+ To add existing rake tasks automatically delete this file and reload the project.
7
+ --><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/Gemfile CHANGED
@@ -3,4 +3,9 @@ source "https://rubygems.org"
3
3
  gemspec
4
4
  gem "rspec"
5
5
  gem "rake"
6
- gem "httpclient"
6
+ gem "simplecov", :require => false, :group => :test
7
+ gem "codecov", :require => false, :group => :test
8
+ gem "webmock", :require => false, :group => :test
9
+ gem "rails", :require => false, :group => :test
10
+ gem "hanami", :require => false, :group => :test
11
+ gem "sinatra", :require => false, :group => :test
@@ -1,37 +1,274 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- securenative (0.1.5)
4
+ securenative (0.1.21)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- diff-lcs (1.3)
10
- httpclient (2.8.3)
11
- rake (12.3.3)
12
- rspec (3.8.0)
13
- rspec-core (~> 3.8.0)
14
- rspec-expectations (~> 3.8.0)
15
- rspec-mocks (~> 3.8.0)
16
- rspec-core (3.8.2)
17
- rspec-support (~> 3.8.0)
18
- rspec-expectations (3.8.4)
9
+ actioncable (6.0.3.2)
10
+ actionpack (= 6.0.3.2)
11
+ nio4r (~> 2.0)
12
+ websocket-driver (>= 0.6.1)
13
+ actionmailbox (6.0.3.2)
14
+ actionpack (= 6.0.3.2)
15
+ activejob (= 6.0.3.2)
16
+ activerecord (= 6.0.3.2)
17
+ activestorage (= 6.0.3.2)
18
+ activesupport (= 6.0.3.2)
19
+ mail (>= 2.7.1)
20
+ actionmailer (6.0.3.2)
21
+ actionpack (= 6.0.3.2)
22
+ actionview (= 6.0.3.2)
23
+ activejob (= 6.0.3.2)
24
+ mail (~> 2.5, >= 2.5.4)
25
+ rails-dom-testing (~> 2.0)
26
+ actionpack (6.0.3.2)
27
+ actionview (= 6.0.3.2)
28
+ activesupport (= 6.0.3.2)
29
+ rack (~> 2.0, >= 2.0.8)
30
+ rack-test (>= 0.6.3)
31
+ rails-dom-testing (~> 2.0)
32
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
33
+ actiontext (6.0.3.2)
34
+ actionpack (= 6.0.3.2)
35
+ activerecord (= 6.0.3.2)
36
+ activestorage (= 6.0.3.2)
37
+ activesupport (= 6.0.3.2)
38
+ nokogiri (>= 1.8.5)
39
+ actionview (6.0.3.2)
40
+ activesupport (= 6.0.3.2)
41
+ builder (~> 3.1)
42
+ erubi (~> 1.4)
43
+ rails-dom-testing (~> 2.0)
44
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
45
+ activejob (6.0.3.2)
46
+ activesupport (= 6.0.3.2)
47
+ globalid (>= 0.3.6)
48
+ activemodel (6.0.3.2)
49
+ activesupport (= 6.0.3.2)
50
+ activerecord (6.0.3.2)
51
+ activemodel (= 6.0.3.2)
52
+ activesupport (= 6.0.3.2)
53
+ activestorage (6.0.3.2)
54
+ actionpack (= 6.0.3.2)
55
+ activejob (= 6.0.3.2)
56
+ activerecord (= 6.0.3.2)
57
+ marcel (~> 0.3.1)
58
+ activesupport (6.0.3.2)
59
+ concurrent-ruby (~> 1.0, >= 1.0.2)
60
+ i18n (>= 0.7, < 2)
61
+ minitest (~> 5.1)
62
+ tzinfo (~> 1.1)
63
+ zeitwerk (~> 2.2, >= 2.2.2)
64
+ addressable (2.7.0)
65
+ public_suffix (>= 2.0.2, < 5.0)
66
+ builder (3.2.4)
67
+ codecov (0.2.6)
68
+ colorize
69
+ json
70
+ simplecov
71
+ colorize (0.8.1)
72
+ concurrent-ruby (1.1.7)
73
+ crack (0.4.3)
74
+ safe_yaml (~> 1.0.0)
75
+ crass (1.0.6)
76
+ diff-lcs (1.4.4)
77
+ docile (1.3.2)
78
+ dry-configurable (0.11.6)
79
+ concurrent-ruby (~> 1.0)
80
+ dry-core (~> 0.4, >= 0.4.7)
81
+ dry-equalizer (~> 0.2)
82
+ dry-container (0.7.2)
83
+ concurrent-ruby (~> 1.0)
84
+ dry-configurable (~> 0.1, >= 0.1.3)
85
+ dry-core (0.4.9)
86
+ concurrent-ruby (~> 1.0)
87
+ dry-equalizer (0.3.0)
88
+ dry-logic (0.4.2)
89
+ dry-container (~> 0.2, >= 0.2.6)
90
+ dry-core (~> 0.2)
91
+ dry-equalizer (~> 0.2)
92
+ dry-types (0.12.3)
93
+ concurrent-ruby (~> 1.0)
94
+ dry-configurable (~> 0.1)
95
+ dry-container (~> 0.3)
96
+ dry-core (~> 0.2, >= 0.2.1)
97
+ dry-equalizer (~> 0.2)
98
+ dry-logic (~> 0.4, >= 0.4.2)
99
+ inflecto (~> 0.0.0, >= 0.0.2)
100
+ dry-validation (0.11.2)
101
+ concurrent-ruby (~> 1.0)
102
+ dry-configurable (~> 0.1, >= 0.1.3)
103
+ dry-core (~> 0.2, >= 0.2.1)
104
+ dry-equalizer (~> 0.2)
105
+ dry-logic (~> 0.4.2)
106
+ dry-types (~> 0.12.0)
107
+ erubi (1.9.0)
108
+ globalid (0.4.2)
109
+ activesupport (>= 4.2.0)
110
+ hanami (1.3.3)
111
+ bundler (>= 1.6, < 3)
112
+ concurrent-ruby (~> 1.0)
113
+ hanami-assets (~> 1.3)
114
+ hanami-cli (~> 0.3)
115
+ hanami-controller (~> 1.3)
116
+ hanami-helpers (~> 1.3)
117
+ hanami-mailer (~> 1.3)
118
+ hanami-router (~> 1.3)
119
+ hanami-utils (~> 1.3)
120
+ hanami-validations (>= 1.3, < 3)
121
+ hanami-view (~> 1.3)
122
+ hanami-assets (1.3.4)
123
+ hanami-helpers (~> 1.3)
124
+ hanami-utils (~> 1.3)
125
+ tilt (~> 2.0, >= 2.0.2)
126
+ hanami-cli (0.3.1)
127
+ concurrent-ruby (~> 1.0)
128
+ hanami-utils (~> 1.3)
129
+ hanami-controller (1.3.3)
130
+ hanami-utils (~> 1.3)
131
+ rack (~> 2.0)
132
+ hanami-helpers (1.3.3)
133
+ hanami-utils (~> 1.3)
134
+ hanami-mailer (1.3.2)
135
+ hanami-utils (~> 1.3)
136
+ mail (~> 2.6)
137
+ tilt (~> 2.0, >= 2.0.1)
138
+ hanami-router (1.3.2)
139
+ hanami-utils (~> 1.3)
140
+ http_router (= 0.11.2)
141
+ rack (~> 2.0)
142
+ hanami-utils (1.3.6)
143
+ concurrent-ruby (~> 1.0)
144
+ transproc (~> 1.0)
145
+ hanami-validations (1.3.6)
146
+ dry-logic (~> 0.4.2, < 0.5)
147
+ dry-validation (~> 0.11, < 0.12)
148
+ hanami-utils (~> 1.3)
149
+ hanami-view (1.3.3)
150
+ hanami-utils (~> 1.3)
151
+ tilt (~> 2.0, >= 2.0.1)
152
+ hashdiff (1.0.1)
153
+ http_router (0.11.2)
154
+ rack (>= 1.0.0)
155
+ url_mount (~> 0.2.1)
156
+ i18n (1.8.5)
157
+ concurrent-ruby (~> 1.0)
158
+ inflecto (0.0.2)
159
+ json (2.3.1)
160
+ loofah (2.6.0)
161
+ crass (~> 1.0.2)
162
+ nokogiri (>= 1.5.9)
163
+ mail (2.7.1)
164
+ mini_mime (>= 0.1.1)
165
+ marcel (0.3.3)
166
+ mimemagic (~> 0.3.2)
167
+ method_source (1.0.0)
168
+ mimemagic (0.3.5)
169
+ mini_mime (1.0.2)
170
+ mini_portile2 (2.4.0)
171
+ minitest (5.14.1)
172
+ mustermann (1.1.1)
173
+ ruby2_keywords (~> 0.0.1)
174
+ nio4r (2.5.2)
175
+ nokogiri (1.10.10)
176
+ mini_portile2 (~> 2.4.0)
177
+ public_suffix (4.0.5)
178
+ rack (2.2.3)
179
+ rack-protection (2.0.8.1)
180
+ rack
181
+ rack-test (1.1.0)
182
+ rack (>= 1.0, < 3)
183
+ rails (6.0.3.2)
184
+ actioncable (= 6.0.3.2)
185
+ actionmailbox (= 6.0.3.2)
186
+ actionmailer (= 6.0.3.2)
187
+ actionpack (= 6.0.3.2)
188
+ actiontext (= 6.0.3.2)
189
+ actionview (= 6.0.3.2)
190
+ activejob (= 6.0.3.2)
191
+ activemodel (= 6.0.3.2)
192
+ activerecord (= 6.0.3.2)
193
+ activestorage (= 6.0.3.2)
194
+ activesupport (= 6.0.3.2)
195
+ bundler (>= 1.3.0)
196
+ railties (= 6.0.3.2)
197
+ sprockets-rails (>= 2.0.0)
198
+ rails-dom-testing (2.0.3)
199
+ activesupport (>= 4.2.0)
200
+ nokogiri (>= 1.6)
201
+ rails-html-sanitizer (1.3.0)
202
+ loofah (~> 2.3)
203
+ railties (6.0.3.2)
204
+ actionpack (= 6.0.3.2)
205
+ activesupport (= 6.0.3.2)
206
+ method_source
207
+ rake (>= 0.8.7)
208
+ thor (>= 0.20.3, < 2.0)
209
+ rake (13.0.1)
210
+ rspec (3.9.0)
211
+ rspec-core (~> 3.9.0)
212
+ rspec-expectations (~> 3.9.0)
213
+ rspec-mocks (~> 3.9.0)
214
+ rspec-core (3.9.2)
215
+ rspec-support (~> 3.9.3)
216
+ rspec-expectations (3.9.2)
19
217
  diff-lcs (>= 1.2.0, < 2.0)
20
- rspec-support (~> 3.8.0)
21
- rspec-mocks (3.8.1)
218
+ rspec-support (~> 3.9.0)
219
+ rspec-mocks (3.9.1)
22
220
  diff-lcs (>= 1.2.0, < 2.0)
23
- rspec-support (~> 3.8.0)
24
- rspec-support (3.8.2)
221
+ rspec-support (~> 3.9.0)
222
+ rspec-support (3.9.3)
223
+ ruby2_keywords (0.0.2)
224
+ safe_yaml (1.0.5)
225
+ simplecov (0.19.0)
226
+ docile (~> 1.1)
227
+ simplecov-html (~> 0.11)
228
+ simplecov-html (0.12.2)
229
+ sinatra (2.0.8.1)
230
+ mustermann (~> 1.0)
231
+ rack (~> 2.0)
232
+ rack-protection (= 2.0.8.1)
233
+ tilt (~> 2.0)
234
+ sprockets (4.0.2)
235
+ concurrent-ruby (~> 1.0)
236
+ rack (> 1, < 3)
237
+ sprockets-rails (3.2.1)
238
+ actionpack (>= 4.0)
239
+ activesupport (>= 4.0)
240
+ sprockets (>= 3.0.0)
241
+ thor (1.0.1)
242
+ thread_safe (0.3.6)
243
+ tilt (2.0.10)
244
+ transproc (1.1.1)
245
+ tzinfo (1.2.7)
246
+ thread_safe (~> 0.1)
247
+ url_mount (0.2.1)
248
+ rack
249
+ webmock (3.8.3)
250
+ addressable (>= 2.3.6)
251
+ crack (>= 0.3.2)
252
+ hashdiff (>= 0.4.0, < 2.0.0)
253
+ websocket-driver (0.7.3)
254
+ websocket-extensions (>= 0.1.0)
255
+ websocket-extensions (0.1.5)
256
+ zeitwerk (2.4.0)
25
257
 
26
258
  PLATFORMS
27
259
  ruby
28
260
 
29
261
  DEPENDENCIES
30
262
  bundler (~> 2.0)
31
- httpclient
263
+ codecov
264
+ hanami
265
+ rails
32
266
  rake
33
267
  rspec
34
268
  securenative!
269
+ simplecov
270
+ sinatra
271
+ webmock
35
272
 
36
273
  BUNDLED WITH
37
- 2.1.0.pre.1
274
+ 2.1.4