punk 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/Gemfile +121 -0
  4. data/Gemfile.lock +353 -0
  5. data/LICENSE +24 -0
  6. data/README.md +7 -0
  7. data/Rakefile +31 -0
  8. data/VERSION +1 -0
  9. data/bin/punk +18 -0
  10. data/lib/punk.rb +32 -0
  11. data/lib/punk/commands/auth.rb +57 -0
  12. data/lib/punk/commands/generate.rb +54 -0
  13. data/lib/punk/commands/http.rb +71 -0
  14. data/lib/punk/commands/list.rb +28 -0
  15. data/lib/punk/config/console/defaults.json +5 -0
  16. data/lib/punk/config/defaults.json +47 -0
  17. data/lib/punk/config/schema.json +55 -0
  18. data/lib/punk/config/script/defaults.json +5 -0
  19. data/lib/punk/config/server/development.json +9 -0
  20. data/lib/punk/config/spec/defaults.json +5 -0
  21. data/lib/punk/core/app.rb +233 -0
  22. data/lib/punk/core/boot.rb +9 -0
  23. data/lib/punk/core/cli.rb +13 -0
  24. data/lib/punk/core/commander.rb +82 -0
  25. data/lib/punk/core/commands.rb +26 -0
  26. data/lib/punk/core/env.rb +290 -0
  27. data/lib/punk/core/error.rb +10 -0
  28. data/lib/punk/core/exec.rb +38 -0
  29. data/lib/punk/core/interface.rb +76 -0
  30. data/lib/punk/core/load.rb +9 -0
  31. data/lib/punk/core/logger.rb +33 -0
  32. data/lib/punk/core/monkey.rb +7 -0
  33. data/lib/punk/core/monkey_unreloader.rb +18 -0
  34. data/lib/punk/core/pry.rb +39 -0
  35. data/lib/punk/core/settings.rb +38 -0
  36. data/lib/punk/core/version.rb +7 -0
  37. data/lib/punk/core/worker.rb +13 -0
  38. data/lib/punk/framework/action.rb +29 -0
  39. data/lib/punk/framework/all.rb +10 -0
  40. data/lib/punk/framework/command.rb +117 -0
  41. data/lib/punk/framework/model.rb +52 -0
  42. data/lib/punk/framework/plugins/all.rb +3 -0
  43. data/lib/punk/framework/plugins/validation.rb +55 -0
  44. data/lib/punk/framework/runnable.rb +31 -0
  45. data/lib/punk/framework/service.rb +67 -0
  46. data/lib/punk/framework/view.rb +26 -0
  47. data/lib/punk/framework/worker.rb +34 -0
  48. data/lib/punk/helpers/all.rb +8 -0
  49. data/lib/punk/helpers/loggable.rb +79 -0
  50. data/lib/punk/helpers/publishable.rb +9 -0
  51. data/lib/punk/helpers/renderable.rb +75 -0
  52. data/lib/punk/helpers/swagger.rb +20 -0
  53. data/lib/punk/helpers/validatable.rb +57 -0
  54. data/lib/punk/plugins/all.rb +4 -0
  55. data/lib/punk/plugins/cors.rb +19 -0
  56. data/lib/punk/plugins/ssl.rb +13 -0
  57. data/lib/punk/startup/cache.rb +11 -0
  58. data/lib/punk/startup/database.rb +57 -0
  59. data/lib/punk/startup/environment.rb +10 -0
  60. data/lib/punk/startup/logger.rb +20 -0
  61. data/lib/punk/startup/task.rb +10 -0
  62. data/lib/punk/templates/fail.jbuilder +4 -0
  63. data/lib/punk/templates/fail.rcsv +6 -0
  64. data/lib/punk/templates/fail.slim +9 -0
  65. data/lib/punk/templates/fail.xml.slim +6 -0
  66. data/lib/punk/templates/info.jbuilder +3 -0
  67. data/lib/punk/templates/info.rcsv +2 -0
  68. data/lib/punk/templates/info.slim +6 -0
  69. data/lib/punk/templates/info.xml.slim +3 -0
  70. data/lib/punk/views/all.rb +4 -0
  71. data/lib/punk/views/fail.rb +21 -0
  72. data/lib/punk/views/info.rb +20 -0
  73. data/punk.gemspec +246 -0
  74. metadata +747 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ea74e63be37e986a7c2b24fa2e0ac4d03611e95b2e45666f0a90ffa400f713e7
4
+ data.tar.gz: 23e5c0cceee26d6a91208ba0c888734b0a808df363dcb38b81bec88a09f2d9c9
5
+ SHA512:
6
+ metadata.gz: e045c3f240e770bdf84f2bfecad84e4c72aba84c9144c63d4c9a42f32038ee0472bc9fbb181b2259f77c61c58c4cd0f984b74757b7934a8a7b1831df73832add
7
+ data.tar.gz: 32002a44687a09ecddce0d703dda8d2830e3705aa5062482bfae7ffe57c160d6aea9cd25ecd37e987721620adaef8459f6bea8e16daf351acf5ae443cfd3d944
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/Gemfile ADDED
@@ -0,0 +1,121 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Startup
6
+ gem 'bootsnap', '~> 1.5'
7
+
8
+ # Dependency Injection
9
+ gem 'dim', '~> 1.2'
10
+
11
+ # Loose Coupling
12
+ gem 'wisper', '~> 2.0'
13
+
14
+ # Logging
15
+ gem 'papertrail', '~> 0.11'
16
+ gem 'semantic_logger', '~> 4.7'
17
+
18
+ # Configuration
19
+ gem 'dotenv', '~> 2.7'
20
+ gem 'dot_hash', '~> 1.1'
21
+
22
+ # Commands
23
+ gem 'commander', '~> 4.5'
24
+
25
+ # CLI
26
+ gem 'pry', '~> 0.13'
27
+
28
+ # Rack Server
29
+ gem 'puma', '~> 5.1'
30
+ gem 'rack-cors', '~> 1.1'
31
+ gem 'rack-protection', '~> 2.1'
32
+ gem 'rack-ssl-enforcer', '~> 0.2'
33
+ gem 'rack-unreloader', '~> 1.7'
34
+
35
+ # Caching
36
+ gem 'dalli', '~> 2.7'
37
+
38
+ # Database
39
+ gem 'pg', '~> 1.2'
40
+ gem 'sequel_pg', '~> 1.14'
41
+
42
+ # ORM
43
+ gem 'sequel', '~> 5.40'
44
+
45
+ # State Machine
46
+ gem 'aasm', '~> 5.1'
47
+
48
+ # Authentication
49
+ gem 'http-accept', '~> 2.1'
50
+ gem 'maxmind-db', '~> 1.1'
51
+ gem 'rbnacl', '~> 7.1'
52
+ gem 'userstack', '~> 0.1'
53
+
54
+ # Jobs
55
+ gem 'sidekiq', '~> 6.1'
56
+ gem 'sidekiq-cron', '~> 1.2'
57
+
58
+ # Email
59
+ gem 'mailgun-ruby', '~> 1.2'
60
+
61
+ # SMS
62
+ gem 'plivo', '~> 4.15'
63
+
64
+ # HTTP Framework
65
+ gem 'roda', '~> 3.39'
66
+ gem 'roda-route_list', '~> 2.1'
67
+
68
+ # HTML Rendering
69
+ gem 'slim', '~> 4.1'
70
+
71
+ # JSON Rendering
72
+ gem 'jbuilder', '~> 2.10'
73
+ gem 'oj', '~> 3.10'
74
+ gem 'tilt-jbuilder', '~> 0.7'
75
+
76
+ # Documentation Generation
77
+ gem 'rdoc', '~> 6.3'
78
+ gem 'swagger_yard', '~> 1.0'
79
+
80
+ # Railsy
81
+ gem 'activesupport', '~> 6.1'
82
+
83
+ # Monitoring
84
+ gem 'sentry-raven', '~> 3.1'
85
+ gem 'skylight', '~> 4.3'
86
+
87
+ # Phone Numbers
88
+ gem 'phony', '~> 2.18'
89
+
90
+ # Development
91
+ group :development do
92
+ gem 'gemfile_updater', '~> 0.1'
93
+ gem 'juwelier', '~> 2.4'
94
+ end
95
+
96
+ # Testing
97
+ group :test do
98
+ gem 'capybara', '~> 3.34'
99
+ gem 'coveralls', '~> 0.8'
100
+ gem 'factory_bot', '~> 6.1'
101
+ gem 'faker', '~> 2.15'
102
+ gem 'rack-test', '~> 1.1'
103
+ gem 'rspec', '~> 3.10'
104
+ gem 'rspec-its', '~> 1.3'
105
+ gem 'rubocop', '~> 1.7'
106
+ gem 'rubocop-rails', '~> 2.9'
107
+ gem 'rubocop-rspec', '~> 2.1'
108
+ gem 'rubocop-sequel', '~> 0.1'
109
+ gem 'selenium-webdriver', '~> 3.142'
110
+ gem 'timecop', '~> 0.9'
111
+ gem 'vcr', '~> 6.0'
112
+ gem 'webmock', '~> 3.11'
113
+ end
114
+
115
+ # Non-production
116
+ group :development, :test do
117
+ gem 'amazing_print', '~> 1.2'
118
+ gem 'byebug', '~> 11.1'
119
+ gem 'launchy', '~> 2.5'
120
+ gem 'pry-byebug', '~> 3.9'
121
+ end
@@ -0,0 +1,353 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ aasm (5.1.1)
5
+ concurrent-ruby (~> 1.0)
6
+ activesupport (6.1.0)
7
+ concurrent-ruby (~> 1.0, >= 1.0.2)
8
+ i18n (>= 1.6, < 2)
9
+ minitest (>= 5.1)
10
+ tzinfo (~> 2.0)
11
+ zeitwerk (~> 2.3)
12
+ addressable (2.7.0)
13
+ public_suffix (>= 2.0.2, < 5.0)
14
+ amazing_print (1.2.2)
15
+ ansi (1.5.0)
16
+ ast (2.4.1)
17
+ bootsnap (1.5.1)
18
+ msgpack (~> 1.0)
19
+ builder (3.2.4)
20
+ byebug (11.1.3)
21
+ capybara (3.34.0)
22
+ addressable
23
+ mini_mime (>= 0.1.3)
24
+ nokogiri (~> 1.8)
25
+ rack (>= 1.6.0)
26
+ rack-test (>= 0.6.3)
27
+ regexp_parser (~> 1.5)
28
+ xpath (~> 3.2)
29
+ childprocess (3.0.0)
30
+ chronic (0.10.2)
31
+ coderay (1.1.3)
32
+ commander (4.5.2)
33
+ highline (~> 2.0.0)
34
+ concurrent-ruby (1.1.7)
35
+ connection_pool (2.2.3)
36
+ coveralls (0.8.23)
37
+ json (>= 1.8, < 3)
38
+ simplecov (~> 0.16.1)
39
+ term-ansicolor (~> 1.3)
40
+ thor (>= 0.19.4, < 2.0)
41
+ tins (~> 1.6)
42
+ crack (0.4.5)
43
+ rexml
44
+ dalli (2.7.11)
45
+ descendants_tracker (0.0.4)
46
+ thread_safe (~> 0.3, >= 0.3.1)
47
+ diff-lcs (1.4.4)
48
+ dim (1.2.8)
49
+ docile (1.3.4)
50
+ domain_name (0.5.20190701)
51
+ unf (>= 0.0.5, < 1.0.0)
52
+ dot_hash (1.1.8)
53
+ dotenv (2.7.6)
54
+ et-orbi (1.2.4)
55
+ tzinfo
56
+ factory_bot (6.1.0)
57
+ activesupport (>= 5.0.0)
58
+ faker (2.15.1)
59
+ i18n (>= 1.6, < 2)
60
+ faraday (1.0.1)
61
+ multipart-post (>= 1.2, < 3)
62
+ faraday_middleware (1.0.0)
63
+ faraday (~> 1.0)
64
+ ffi (1.14.2)
65
+ fugit (1.4.1)
66
+ et-orbi (~> 1.1, >= 1.1.8)
67
+ raabro (~> 1.4)
68
+ gemfile_updater (0.1.0)
69
+ git (1.8.1)
70
+ rchardet (~> 1.8)
71
+ github_api (0.19.0)
72
+ addressable (~> 2.4)
73
+ descendants_tracker (~> 0.0.4)
74
+ faraday (>= 0.8, < 2)
75
+ hashie (~> 3.5, >= 3.5.2)
76
+ oauth2 (~> 1.0)
77
+ hashdiff (1.0.1)
78
+ hashie (3.6.0)
79
+ highline (2.0.3)
80
+ htmlentities (4.3.4)
81
+ http-accept (2.1.1)
82
+ http-cookie (1.0.3)
83
+ domain_name (~> 0.5)
84
+ i18n (1.8.7)
85
+ concurrent-ruby (~> 1.0)
86
+ jbuilder (2.10.1)
87
+ activesupport (>= 5.0.0)
88
+ json (2.5.1)
89
+ juwelier (2.4.9)
90
+ builder
91
+ bundler
92
+ git
93
+ github_api
94
+ highline
95
+ kamelcase (~> 0)
96
+ nokogiri
97
+ psych
98
+ rake
99
+ rdoc
100
+ semver2
101
+ jwt (2.2.2)
102
+ kamelcase (0.0.2)
103
+ semver2 (~> 3)
104
+ launchy (2.5.0)
105
+ addressable (~> 2.7)
106
+ mailgun-ruby (1.2.0)
107
+ rest-client (~> 2.0.2)
108
+ maxmind-db (1.1.1)
109
+ method_source (1.0.0)
110
+ mime-types (3.3.1)
111
+ mime-types-data (~> 3.2015)
112
+ mime-types-data (3.2020.1104)
113
+ mini_mime (1.0.2)
114
+ mini_portile2 (2.5.0)
115
+ minitest (5.14.3)
116
+ msgpack (1.3.3)
117
+ multi_json (1.15.0)
118
+ multi_xml (0.6.0)
119
+ multipart-post (2.1.1)
120
+ netrc (0.11.0)
121
+ nio4r (2.5.4)
122
+ nokogiri (1.11.1)
123
+ mini_portile2 (~> 2.5.0)
124
+ racc (~> 1.4)
125
+ oauth2 (1.4.4)
126
+ faraday (>= 0.8, < 2.0)
127
+ jwt (>= 1.0, < 3.0)
128
+ multi_json (~> 1.3)
129
+ multi_xml (~> 0.5)
130
+ rack (>= 1.2, < 3)
131
+ oj (3.10.18)
132
+ papertrail (0.11.0)
133
+ ansi (~> 1.5)
134
+ chronic (~> 0.10)
135
+ parallel (1.20.1)
136
+ parser (3.0.0.0)
137
+ ast (~> 2.4.1)
138
+ parslet (2.0.0)
139
+ pg (1.2.3)
140
+ phony (2.18.18)
141
+ plivo (4.15.1)
142
+ faraday (~> 1.0.1)
143
+ faraday_middleware (~> 1.0.0)
144
+ htmlentities
145
+ jwt
146
+ pry (0.13.1)
147
+ coderay (~> 1.1)
148
+ method_source (~> 1.0)
149
+ pry-byebug (3.9.0)
150
+ byebug (~> 11.0)
151
+ pry (~> 0.13.0)
152
+ psych (3.3.0)
153
+ public_suffix (4.0.6)
154
+ puma (5.1.1)
155
+ nio4r (~> 2.0)
156
+ raabro (1.4.0)
157
+ racc (1.5.2)
158
+ rack (2.2.3)
159
+ rack-cors (1.1.1)
160
+ rack (>= 2.0.0)
161
+ rack-protection (2.1.0)
162
+ rack
163
+ rack-ssl-enforcer (0.2.9)
164
+ rack-test (1.1.0)
165
+ rack (>= 1.0, < 3)
166
+ rack-unreloader (1.7.0)
167
+ rainbow (3.0.0)
168
+ rake (13.0.3)
169
+ rbnacl (7.1.1)
170
+ ffi
171
+ rchardet (1.8.0)
172
+ rdoc (6.3.0)
173
+ redis (4.2.5)
174
+ regexp_parser (1.8.2)
175
+ rest-client (2.0.2)
176
+ http-cookie (>= 1.0.2, < 2.0)
177
+ mime-types (>= 1.16, < 4.0)
178
+ netrc (~> 0.8)
179
+ rexml (3.2.4)
180
+ roda (3.39.0)
181
+ rack
182
+ roda-route_list (2.1.0)
183
+ roda
184
+ rspec (3.10.0)
185
+ rspec-core (~> 3.10.0)
186
+ rspec-expectations (~> 3.10.0)
187
+ rspec-mocks (~> 3.10.0)
188
+ rspec-core (3.10.1)
189
+ rspec-support (~> 3.10.0)
190
+ rspec-expectations (3.10.1)
191
+ diff-lcs (>= 1.2.0, < 2.0)
192
+ rspec-support (~> 3.10.0)
193
+ rspec-its (1.3.0)
194
+ rspec-core (>= 3.0.0)
195
+ rspec-expectations (>= 3.0.0)
196
+ rspec-mocks (3.10.1)
197
+ diff-lcs (>= 1.2.0, < 2.0)
198
+ rspec-support (~> 3.10.0)
199
+ rspec-support (3.10.1)
200
+ rubocop (1.8.0)
201
+ parallel (~> 1.10)
202
+ parser (>= 3.0.0.0)
203
+ rainbow (>= 2.2.2, < 4.0)
204
+ regexp_parser (>= 1.8, < 3.0)
205
+ rexml
206
+ rubocop-ast (>= 1.2.0, < 2.0)
207
+ ruby-progressbar (~> 1.7)
208
+ unicode-display_width (>= 1.4.0, < 3.0)
209
+ rubocop-ast (1.4.0)
210
+ parser (>= 2.7.1.5)
211
+ rubocop-rails (2.9.1)
212
+ activesupport (>= 4.2.0)
213
+ rack (>= 1.1)
214
+ rubocop (>= 0.90.0, < 2.0)
215
+ rubocop-rspec (2.1.0)
216
+ rubocop (~> 1.0)
217
+ rubocop-ast (>= 1.1.0)
218
+ rubocop-sequel (0.1.0)
219
+ rubocop (~> 1.0)
220
+ ruby-progressbar (1.11.0)
221
+ rubyzip (2.3.0)
222
+ selenium-webdriver (3.142.7)
223
+ childprocess (>= 0.5, < 4.0)
224
+ rubyzip (>= 1.2.2)
225
+ semantic_logger (4.7.4)
226
+ concurrent-ruby (~> 1.0)
227
+ semver2 (3.4.2)
228
+ sentry-raven (3.1.1)
229
+ faraday (>= 1.0)
230
+ sequel (5.40.0)
231
+ sequel_pg (1.14.0)
232
+ pg (>= 0.18.0, != 1.2.0)
233
+ sequel (>= 4.38.0)
234
+ sidekiq (6.1.2)
235
+ connection_pool (>= 2.2.2)
236
+ rack (~> 2.0)
237
+ redis (>= 4.2.0)
238
+ sidekiq-cron (1.2.0)
239
+ fugit (~> 1.1)
240
+ sidekiq (>= 4.2.1)
241
+ simplecov (0.16.1)
242
+ docile (~> 1.1)
243
+ json (>= 1.8, < 3)
244
+ simplecov-html (~> 0.10.0)
245
+ simplecov-html (0.10.2)
246
+ skylight (4.3.2)
247
+ skylight-core (= 4.3.2)
248
+ skylight-core (4.3.2)
249
+ activesupport (>= 4.2.0)
250
+ slim (4.1.0)
251
+ temple (>= 0.7.6, < 0.9)
252
+ tilt (>= 2.0.6, < 2.1)
253
+ swagger_yard (1.0.4)
254
+ parslet
255
+ yard
256
+ sync (0.5.0)
257
+ temple (0.8.2)
258
+ term-ansicolor (1.7.1)
259
+ tins (~> 1.0)
260
+ thor (1.0.1)
261
+ thread_safe (0.3.6)
262
+ tilt (2.0.10)
263
+ tilt-jbuilder (0.7.1)
264
+ jbuilder
265
+ tilt (>= 1.3.0, < 3)
266
+ timecop (0.9.2)
267
+ tins (1.26.0)
268
+ sync
269
+ tzinfo (2.0.4)
270
+ concurrent-ruby (~> 1.0)
271
+ unf (0.1.4)
272
+ unf_ext
273
+ unf_ext (0.0.7.7)
274
+ unicode-display_width (2.0.0)
275
+ userstack (0.1.0)
276
+ vcr (6.0.0)
277
+ webmock (3.11.0)
278
+ addressable (>= 2.3.6)
279
+ crack (>= 0.3.2)
280
+ hashdiff (>= 0.4.0, < 2.0.0)
281
+ wisper (2.0.1)
282
+ xpath (3.2.0)
283
+ nokogiri (~> 1.8)
284
+ yard (0.9.26)
285
+ zeitwerk (2.4.2)
286
+
287
+ PLATFORMS
288
+ ruby
289
+
290
+ DEPENDENCIES
291
+ aasm (~> 5.1)
292
+ activesupport (~> 6.1)
293
+ amazing_print (~> 1.2)
294
+ bootsnap (~> 1.5)
295
+ byebug (~> 11.1)
296
+ capybara (~> 3.34)
297
+ commander (~> 4.5)
298
+ coveralls (~> 0.8)
299
+ dalli (~> 2.7)
300
+ dim (~> 1.2)
301
+ dot_hash (~> 1.1)
302
+ dotenv (~> 2.7)
303
+ factory_bot (~> 6.1)
304
+ faker (~> 2.15)
305
+ gemfile_updater (~> 0.1)
306
+ http-accept (~> 2.1)
307
+ jbuilder (~> 2.10)
308
+ juwelier (~> 2.4)
309
+ launchy (~> 2.5)
310
+ mailgun-ruby (~> 1.2)
311
+ maxmind-db (~> 1.1)
312
+ oj (~> 3.10)
313
+ papertrail (~> 0.11)
314
+ pg (~> 1.2)
315
+ phony (~> 2.18)
316
+ plivo (~> 4.15)
317
+ pry (~> 0.13)
318
+ pry-byebug (~> 3.9)
319
+ puma (~> 5.1)
320
+ rack-cors (~> 1.1)
321
+ rack-protection (~> 2.1)
322
+ rack-ssl-enforcer (~> 0.2)
323
+ rack-test (~> 1.1)
324
+ rack-unreloader (~> 1.7)
325
+ rbnacl (~> 7.1)
326
+ rdoc (~> 6.3)
327
+ roda (~> 3.39)
328
+ roda-route_list (~> 2.1)
329
+ rspec (~> 3.10)
330
+ rspec-its (~> 1.3)
331
+ rubocop (~> 1.7)
332
+ rubocop-rails (~> 2.9)
333
+ rubocop-rspec (~> 2.1)
334
+ rubocop-sequel (~> 0.1)
335
+ selenium-webdriver (~> 3.142)
336
+ semantic_logger (~> 4.7)
337
+ sentry-raven (~> 3.1)
338
+ sequel (~> 5.40)
339
+ sequel_pg (~> 1.14)
340
+ sidekiq (~> 6.1)
341
+ sidekiq-cron (~> 1.2)
342
+ skylight (~> 4.3)
343
+ slim (~> 4.1)
344
+ swagger_yard (~> 1.0)
345
+ tilt-jbuilder (~> 0.7)
346
+ timecop (~> 0.9)
347
+ userstack (~> 0.1)
348
+ vcr (~> 6.0)
349
+ webmock (~> 3.11)
350
+ wisper (~> 2.0)
351
+
352
+ BUNDLED WITH
353
+ 1.17.3