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,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ class SwaggerRouteHandler < YARD::Handlers::Ruby::Base
4
+ handles method_call(:route)
5
+ namespace_only
6
+ process do
7
+ name = statement.parameters.first.jump(:tstring_content, :ident).source
8
+ object = YARD::CodeObjects::ClassObject.new(namespace, name)
9
+ register(object)
10
+ parse_block(statement.last.last, namespace: object, scope: :class)
11
+ end
12
+ end
13
+
14
+ class SwaggerOnHandler < YARD::Handlers::Ruby::Base
15
+ handles method_call(:on)
16
+ namespace_only
17
+ process do
18
+ parse_block(statement.last.last, namespace: namespace, scope: :class)
19
+ end
20
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sequel/plugins/validation_helpers'
4
+ require_relative '../framework/plugins/validation'
5
+
6
+ module PUNK
7
+ module Validatable
8
+ include Sequel::Plugins::ValidationHelpers::InstanceMethods
9
+ include PUNK::Plugins::Validation::InstanceMethods
10
+
11
+ undef :validates_presence
12
+ undef :validates_schema_types
13
+ undef :validates_unique
14
+
15
+ attr_accessor :errors
16
+
17
+ def valid?
18
+ @errors ||= Sequel::Model::Errors.new
19
+ errors.clear
20
+ validate
21
+ errors.empty?
22
+ end
23
+
24
+ def validate; end
25
+
26
+ def validates_not_empty(atts, opts=Sequel::OPTS)
27
+ validatable_attributes_for_type(:not_empty, atts, opts) { |_a, v, m| validation_error_message(m) if v.blank? }
28
+ end
29
+
30
+ def default_validation_helpers_options(type)
31
+ case type
32
+ when :not_empty
33
+ {
34
+ message: -> { "is empty" }
35
+ }
36
+ else
37
+ Sequel::Plugins::ValidationHelpers::DEFAULT_OPTIONS[type]
38
+ end
39
+ end
40
+
41
+ def get_column_value(name)
42
+ value =
43
+ begin
44
+ instance_variable_get(name)
45
+ rescue StandardError
46
+ nil
47
+ end
48
+ value ||=
49
+ begin
50
+ send(name)
51
+ rescue StandardError
52
+ nil
53
+ end
54
+ value
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'cors'
4
+ require_relative 'ssl'
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Roda
4
+ module RodaPlugins
5
+ module Cors
6
+ def self.configure(app, origin)
7
+ return if origin.nil?
8
+ require 'rack/cors'
9
+ app.use ::Rack::Cors do
10
+ allow do
11
+ origins origin
12
+ resource '*', headers: :any, methods: :any
13
+ end
14
+ end
15
+ end
16
+ end
17
+ register_plugin(:cors, Cors)
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Roda
4
+ module RodaPlugins
5
+ module Ssl
6
+ def self.configure(app)
7
+ require 'rack/ssl-enforcer'
8
+ app.use ::Rack::SslEnforcer
9
+ end
10
+ end
11
+ register_plugin(:ssl, Ssl)
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'dalli'
4
+
5
+ PUNK::Interface.register(:cache) do
6
+ PUNK.profile_debug('cache_connect', servers: PUNK.get.cache.servers) do
7
+ Dalli::Client.new(PUNK.get.cache.servers.split(','), PUNK.get.cache.options)
8
+ end
9
+ end
10
+
11
+ PUNK.inject :cache
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sequel'
4
+
5
+ module Sequel
6
+ def self.json_parser_error_class
7
+ ActiveSupport::JSON.parse_error
8
+ end
9
+
10
+ def self.parse_json(json)
11
+ ActiveSupport::JSON.decode(json).deep_symbolize_keys
12
+ end
13
+
14
+ class Database
15
+ def log_connection_yield(sql, conn, args=nil, &block)
16
+ return unless @loggers.first
17
+ if conn && log_connection_info
18
+ @loggers.first.tagged(conn.__id__) do
19
+ log_semantic(sql, args, &block)
20
+ end
21
+ else
22
+ log_semantic(sql, args, &block)
23
+ end
24
+ end
25
+
26
+ def log_semantic(sql, args)
27
+ return unless @loggers.first
28
+ message = "#{sql}#{"; #{args.inspect}" if args}"
29
+ if log_warn_duration
30
+ @loggers.first.measure_warn(message, min_duration: log_warn_duration) do
31
+ yield
32
+ end
33
+ else
34
+ @loggers.first.measure_debug(message) do
35
+ yield
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ module PUNK
43
+ def self.migration(&block)
44
+ Sequel::MigrationDSL.create(&block)
45
+ end
46
+ end
47
+
48
+ PUNK::Interface.register(:db) do
49
+ PUNK.profile_debug('db_connect', url: PUNK.get.db.url) do
50
+ pg = Sequel.connect(PUNK.get.db.url, logger: SemanticLogger['PUNK::SQL'])
51
+ pg.extension :pg_enum, :pg_range, :pg_array, :pg_json, :pg_row, :pg_timestamptz, :pg_inet
52
+ Sequel.extension :pg_array_ops, :pg_range_ops, :pg_json_ops, :pg_row_ops, :named_timezones, :thread_local_timezones
53
+ pg
54
+ end
55
+ end
56
+
57
+ PUNK.inject :db
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ case PUNK.env
4
+ when 'test', 'development'
5
+ require 'amazing_print'
6
+ require 'byebug'
7
+ require 'rubocop'
8
+ require 'rubocop-rspec'
9
+ require 'rubocop-sequel'
10
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ SemanticLogger.close
4
+ SemanticLogger.default_level = PUNK.get.log.level
5
+ if PUNK.get.log.enabled?
6
+ case PUNK.get.log.type
7
+ when :stderr
8
+ SemanticLogger.add_appender(io: $stderr)
9
+ when :stdout
10
+ $stdout.sync = true
11
+ SemanticLogger.add_appender(io: $stdout, formatter: :color)
12
+ when :file
13
+ subdir = PUNK.task.server? ? '.' : PUNK.task
14
+ path = PUNK.get.log.path || File.join(PUNK.get.app.path, '..', 'log', subdir, "#{PUNK.env}.log")
15
+ FileUtils.mkdir_p(File.dirname(path))
16
+ SemanticLogger.add_appender(file_name: path, formatter: :color)
17
+ else
18
+ raise InternalServerError, "Unknown log type :#{PUNK.get.log.type}!"
19
+ end
20
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ case PUNK.task
4
+ when 'spec'
5
+ require 'rspec'
6
+ require 'rspec/its'
7
+ require 'sidekiq/testing'
8
+ when 'console'
9
+ AwesomePrint.pry! if defined?(AwesomePrint)
10
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.message message
4
+ json.errors error_messages
@@ -0,0 +1,6 @@
1
+ csv << ['ERRORS']
2
+ csv << [message]
3
+ csv << [status]
4
+ error_messages.each do |error|
5
+ csv << [error]
6
+ end
@@ -0,0 +1,9 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title= message
5
+ body
6
+ h1= "#{message} (#{status})"
7
+ ul
8
+ - error_messages.each do |error|
9
+ li= error
@@ -0,0 +1,6 @@
1
+ doctype xml
2
+ errors
3
+ - message= message
4
+ - status= status
5
+ - error_messages.each do |error|
6
+ error= error
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.message message
@@ -0,0 +1,2 @@
1
+ csv << ['MESSAGE']
2
+ csv << [message]
@@ -0,0 +1,6 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title Info
5
+ body
6
+ h1= message
@@ -0,0 +1,3 @@
1
+ doctype xml
2
+ info
3
+ message= message
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'info'
4
+ require_relative 'fail'
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PUNK
4
+ # @model Error
5
+ # @property message(required) [string] some information for the user to see
6
+ # @property errors(required) [Array<string>] a list of errors
7
+ class Fail < View
8
+ args :message, :error_messages, :status
9
+
10
+ def process
11
+ logger.warn "#{message} (#{status}): #{error_messages.to_sentence}"
12
+ 'fail'
13
+ end
14
+
15
+ protected
16
+
17
+ def _dir
18
+ File.join(__dir__, '..', 'templates')
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PUNK
4
+ # @model Info
5
+ # @property message(required) [string] some information for the user to see
6
+ class Info < View
7
+ args :message
8
+
9
+ def process
10
+ logger.info message
11
+ 'info'
12
+ end
13
+
14
+ protected
15
+
16
+ def _dir
17
+ File.join(__dir__, '..', 'templates')
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,246 @@
1
+ # Generated by juwelier
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: punk 0.0.1 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "punk".freeze
9
+ s.version = "0.0.1"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Lloyd Kranzky".freeze]
14
+ s.date = "2021-01-07"
15
+ s.description = "".freeze
16
+ s.email = "lloyd@kranzky.com".freeze
17
+ s.executables = ["punk".freeze]
18
+ s.extra_rdoc_files = [
19
+ "LICENSE",
20
+ "README.md"
21
+ ]
22
+ s.files = [
23
+ ".document",
24
+ "Gemfile",
25
+ "Gemfile.lock",
26
+ "LICENSE",
27
+ "README.md",
28
+ "Rakefile",
29
+ "VERSION",
30
+ "bin/punk",
31
+ "lib/punk.rb",
32
+ "lib/punk/commands/auth.rb",
33
+ "lib/punk/commands/generate.rb",
34
+ "lib/punk/commands/http.rb",
35
+ "lib/punk/commands/list.rb",
36
+ "lib/punk/config/console/defaults.json",
37
+ "lib/punk/config/defaults.json",
38
+ "lib/punk/config/schema.json",
39
+ "lib/punk/config/script/defaults.json",
40
+ "lib/punk/config/server/development.json",
41
+ "lib/punk/config/spec/defaults.json",
42
+ "lib/punk/core/app.rb",
43
+ "lib/punk/core/boot.rb",
44
+ "lib/punk/core/cli.rb",
45
+ "lib/punk/core/commander.rb",
46
+ "lib/punk/core/commands.rb",
47
+ "lib/punk/core/env.rb",
48
+ "lib/punk/core/error.rb",
49
+ "lib/punk/core/exec.rb",
50
+ "lib/punk/core/interface.rb",
51
+ "lib/punk/core/load.rb",
52
+ "lib/punk/core/logger.rb",
53
+ "lib/punk/core/monkey.rb",
54
+ "lib/punk/core/monkey_unreloader.rb",
55
+ "lib/punk/core/pry.rb",
56
+ "lib/punk/core/settings.rb",
57
+ "lib/punk/core/version.rb",
58
+ "lib/punk/core/worker.rb",
59
+ "lib/punk/framework/action.rb",
60
+ "lib/punk/framework/all.rb",
61
+ "lib/punk/framework/command.rb",
62
+ "lib/punk/framework/model.rb",
63
+ "lib/punk/framework/plugins/all.rb",
64
+ "lib/punk/framework/plugins/validation.rb",
65
+ "lib/punk/framework/runnable.rb",
66
+ "lib/punk/framework/service.rb",
67
+ "lib/punk/framework/view.rb",
68
+ "lib/punk/framework/worker.rb",
69
+ "lib/punk/helpers/all.rb",
70
+ "lib/punk/helpers/loggable.rb",
71
+ "lib/punk/helpers/publishable.rb",
72
+ "lib/punk/helpers/renderable.rb",
73
+ "lib/punk/helpers/swagger.rb",
74
+ "lib/punk/helpers/validatable.rb",
75
+ "lib/punk/plugins/all.rb",
76
+ "lib/punk/plugins/cors.rb",
77
+ "lib/punk/plugins/ssl.rb",
78
+ "lib/punk/startup/cache.rb",
79
+ "lib/punk/startup/database.rb",
80
+ "lib/punk/startup/environment.rb",
81
+ "lib/punk/startup/logger.rb",
82
+ "lib/punk/startup/task.rb",
83
+ "lib/punk/templates/fail.jbuilder",
84
+ "lib/punk/templates/fail.rcsv",
85
+ "lib/punk/templates/fail.slim",
86
+ "lib/punk/templates/fail.xml.slim",
87
+ "lib/punk/templates/info.jbuilder",
88
+ "lib/punk/templates/info.rcsv",
89
+ "lib/punk/templates/info.slim",
90
+ "lib/punk/templates/info.xml.slim",
91
+ "lib/punk/views/all.rb",
92
+ "lib/punk/views/fail.rb",
93
+ "lib/punk/views/info.rb",
94
+ "punk.gemspec"
95
+ ]
96
+ s.homepage = "https://github.com/kranzky/punk".freeze
97
+ s.licenses = ["UNLICENSE".freeze]
98
+ s.required_ruby_version = Gem::Requirement.new(">= 2.1".freeze)
99
+ s.rubygems_version = "3.0.9".freeze
100
+ s.summary = "Punk! is an omakase web framework for rapid prototyping.".freeze
101
+
102
+ if s.respond_to? :specification_version then
103
+ s.specification_version = 4
104
+
105
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
106
+ s.add_runtime_dependency(%q<bootsnap>.freeze, ["~> 1.5"])
107
+ s.add_runtime_dependency(%q<dim>.freeze, ["~> 1.2"])
108
+ s.add_runtime_dependency(%q<wisper>.freeze, ["~> 2.0"])
109
+ s.add_runtime_dependency(%q<papertrail>.freeze, ["~> 0.11"])
110
+ s.add_runtime_dependency(%q<semantic_logger>.freeze, ["~> 4.7"])
111
+ s.add_runtime_dependency(%q<dotenv>.freeze, ["~> 2.7"])
112
+ s.add_runtime_dependency(%q<dot_hash>.freeze, ["~> 1.1"])
113
+ s.add_runtime_dependency(%q<commander>.freeze, ["~> 4.5"])
114
+ s.add_runtime_dependency(%q<pry>.freeze, ["~> 0.13"])
115
+ s.add_runtime_dependency(%q<puma>.freeze, ["~> 5.1"])
116
+ s.add_runtime_dependency(%q<rack-cors>.freeze, ["~> 1.1"])
117
+ s.add_runtime_dependency(%q<rack-protection>.freeze, ["~> 2.1"])
118
+ s.add_runtime_dependency(%q<rack-ssl-enforcer>.freeze, ["~> 0.2"])
119
+ s.add_runtime_dependency(%q<rack-unreloader>.freeze, ["~> 1.7"])
120
+ s.add_runtime_dependency(%q<dalli>.freeze, ["~> 2.7"])
121
+ s.add_runtime_dependency(%q<pg>.freeze, ["~> 1.2"])
122
+ s.add_runtime_dependency(%q<sequel_pg>.freeze, ["~> 1.14"])
123
+ s.add_runtime_dependency(%q<sequel>.freeze, ["~> 5.40"])
124
+ s.add_runtime_dependency(%q<aasm>.freeze, ["~> 5.1"])
125
+ s.add_runtime_dependency(%q<http-accept>.freeze, ["~> 2.1"])
126
+ s.add_runtime_dependency(%q<maxmind-db>.freeze, ["~> 1.1"])
127
+ s.add_runtime_dependency(%q<rbnacl>.freeze, ["~> 7.1"])
128
+ s.add_runtime_dependency(%q<userstack>.freeze, ["~> 0.1"])
129
+ s.add_runtime_dependency(%q<sidekiq>.freeze, ["~> 6.1"])
130
+ s.add_runtime_dependency(%q<sidekiq-cron>.freeze, ["~> 1.2"])
131
+ s.add_runtime_dependency(%q<mailgun-ruby>.freeze, ["~> 1.2"])
132
+ s.add_runtime_dependency(%q<plivo>.freeze, ["~> 4.15"])
133
+ s.add_runtime_dependency(%q<roda>.freeze, ["~> 3.39"])
134
+ s.add_runtime_dependency(%q<roda-route_list>.freeze, ["~> 2.1"])
135
+ s.add_runtime_dependency(%q<slim>.freeze, ["~> 4.1"])
136
+ s.add_runtime_dependency(%q<jbuilder>.freeze, ["~> 2.10"])
137
+ s.add_runtime_dependency(%q<oj>.freeze, ["~> 3.10"])
138
+ s.add_runtime_dependency(%q<tilt-jbuilder>.freeze, ["~> 0.7"])
139
+ s.add_runtime_dependency(%q<rdoc>.freeze, ["~> 6.3"])
140
+ s.add_runtime_dependency(%q<swagger_yard>.freeze, ["~> 1.0"])
141
+ s.add_runtime_dependency(%q<activesupport>.freeze, ["~> 6.1"])
142
+ s.add_runtime_dependency(%q<sentry-raven>.freeze, ["~> 3.1"])
143
+ s.add_runtime_dependency(%q<skylight>.freeze, ["~> 4.3"])
144
+ s.add_runtime_dependency(%q<phony>.freeze, ["~> 2.18"])
145
+ s.add_development_dependency(%q<gemfile_updater>.freeze, ["~> 0.1"])
146
+ s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4"])
147
+ s.add_development_dependency(%q<amazing_print>.freeze, ["~> 1.2"])
148
+ s.add_development_dependency(%q<byebug>.freeze, ["~> 11.1"])
149
+ s.add_development_dependency(%q<launchy>.freeze, ["~> 2.5"])
150
+ s.add_development_dependency(%q<pry-byebug>.freeze, ["~> 3.9"])
151
+ else
152
+ s.add_dependency(%q<bootsnap>.freeze, ["~> 1.5"])
153
+ s.add_dependency(%q<dim>.freeze, ["~> 1.2"])
154
+ s.add_dependency(%q<wisper>.freeze, ["~> 2.0"])
155
+ s.add_dependency(%q<papertrail>.freeze, ["~> 0.11"])
156
+ s.add_dependency(%q<semantic_logger>.freeze, ["~> 4.7"])
157
+ s.add_dependency(%q<dotenv>.freeze, ["~> 2.7"])
158
+ s.add_dependency(%q<dot_hash>.freeze, ["~> 1.1"])
159
+ s.add_dependency(%q<commander>.freeze, ["~> 4.5"])
160
+ s.add_dependency(%q<pry>.freeze, ["~> 0.13"])
161
+ s.add_dependency(%q<puma>.freeze, ["~> 5.1"])
162
+ s.add_dependency(%q<rack-cors>.freeze, ["~> 1.1"])
163
+ s.add_dependency(%q<rack-protection>.freeze, ["~> 2.1"])
164
+ s.add_dependency(%q<rack-ssl-enforcer>.freeze, ["~> 0.2"])
165
+ s.add_dependency(%q<rack-unreloader>.freeze, ["~> 1.7"])
166
+ s.add_dependency(%q<dalli>.freeze, ["~> 2.7"])
167
+ s.add_dependency(%q<pg>.freeze, ["~> 1.2"])
168
+ s.add_dependency(%q<sequel_pg>.freeze, ["~> 1.14"])
169
+ s.add_dependency(%q<sequel>.freeze, ["~> 5.40"])
170
+ s.add_dependency(%q<aasm>.freeze, ["~> 5.1"])
171
+ s.add_dependency(%q<http-accept>.freeze, ["~> 2.1"])
172
+ s.add_dependency(%q<maxmind-db>.freeze, ["~> 1.1"])
173
+ s.add_dependency(%q<rbnacl>.freeze, ["~> 7.1"])
174
+ s.add_dependency(%q<userstack>.freeze, ["~> 0.1"])
175
+ s.add_dependency(%q<sidekiq>.freeze, ["~> 6.1"])
176
+ s.add_dependency(%q<sidekiq-cron>.freeze, ["~> 1.2"])
177
+ s.add_dependency(%q<mailgun-ruby>.freeze, ["~> 1.2"])
178
+ s.add_dependency(%q<plivo>.freeze, ["~> 4.15"])
179
+ s.add_dependency(%q<roda>.freeze, ["~> 3.39"])
180
+ s.add_dependency(%q<roda-route_list>.freeze, ["~> 2.1"])
181
+ s.add_dependency(%q<slim>.freeze, ["~> 4.1"])
182
+ s.add_dependency(%q<jbuilder>.freeze, ["~> 2.10"])
183
+ s.add_dependency(%q<oj>.freeze, ["~> 3.10"])
184
+ s.add_dependency(%q<tilt-jbuilder>.freeze, ["~> 0.7"])
185
+ s.add_dependency(%q<rdoc>.freeze, ["~> 6.3"])
186
+ s.add_dependency(%q<swagger_yard>.freeze, ["~> 1.0"])
187
+ s.add_dependency(%q<activesupport>.freeze, ["~> 6.1"])
188
+ s.add_dependency(%q<sentry-raven>.freeze, ["~> 3.1"])
189
+ s.add_dependency(%q<skylight>.freeze, ["~> 4.3"])
190
+ s.add_dependency(%q<phony>.freeze, ["~> 2.18"])
191
+ s.add_dependency(%q<gemfile_updater>.freeze, ["~> 0.1"])
192
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.4"])
193
+ s.add_dependency(%q<amazing_print>.freeze, ["~> 1.2"])
194
+ s.add_dependency(%q<byebug>.freeze, ["~> 11.1"])
195
+ s.add_dependency(%q<launchy>.freeze, ["~> 2.5"])
196
+ s.add_dependency(%q<pry-byebug>.freeze, ["~> 3.9"])
197
+ end
198
+ else
199
+ s.add_dependency(%q<bootsnap>.freeze, ["~> 1.5"])
200
+ s.add_dependency(%q<dim>.freeze, ["~> 1.2"])
201
+ s.add_dependency(%q<wisper>.freeze, ["~> 2.0"])
202
+ s.add_dependency(%q<papertrail>.freeze, ["~> 0.11"])
203
+ s.add_dependency(%q<semantic_logger>.freeze, ["~> 4.7"])
204
+ s.add_dependency(%q<dotenv>.freeze, ["~> 2.7"])
205
+ s.add_dependency(%q<dot_hash>.freeze, ["~> 1.1"])
206
+ s.add_dependency(%q<commander>.freeze, ["~> 4.5"])
207
+ s.add_dependency(%q<pry>.freeze, ["~> 0.13"])
208
+ s.add_dependency(%q<puma>.freeze, ["~> 5.1"])
209
+ s.add_dependency(%q<rack-cors>.freeze, ["~> 1.1"])
210
+ s.add_dependency(%q<rack-protection>.freeze, ["~> 2.1"])
211
+ s.add_dependency(%q<rack-ssl-enforcer>.freeze, ["~> 0.2"])
212
+ s.add_dependency(%q<rack-unreloader>.freeze, ["~> 1.7"])
213
+ s.add_dependency(%q<dalli>.freeze, ["~> 2.7"])
214
+ s.add_dependency(%q<pg>.freeze, ["~> 1.2"])
215
+ s.add_dependency(%q<sequel_pg>.freeze, ["~> 1.14"])
216
+ s.add_dependency(%q<sequel>.freeze, ["~> 5.40"])
217
+ s.add_dependency(%q<aasm>.freeze, ["~> 5.1"])
218
+ s.add_dependency(%q<http-accept>.freeze, ["~> 2.1"])
219
+ s.add_dependency(%q<maxmind-db>.freeze, ["~> 1.1"])
220
+ s.add_dependency(%q<rbnacl>.freeze, ["~> 7.1"])
221
+ s.add_dependency(%q<userstack>.freeze, ["~> 0.1"])
222
+ s.add_dependency(%q<sidekiq>.freeze, ["~> 6.1"])
223
+ s.add_dependency(%q<sidekiq-cron>.freeze, ["~> 1.2"])
224
+ s.add_dependency(%q<mailgun-ruby>.freeze, ["~> 1.2"])
225
+ s.add_dependency(%q<plivo>.freeze, ["~> 4.15"])
226
+ s.add_dependency(%q<roda>.freeze, ["~> 3.39"])
227
+ s.add_dependency(%q<roda-route_list>.freeze, ["~> 2.1"])
228
+ s.add_dependency(%q<slim>.freeze, ["~> 4.1"])
229
+ s.add_dependency(%q<jbuilder>.freeze, ["~> 2.10"])
230
+ s.add_dependency(%q<oj>.freeze, ["~> 3.10"])
231
+ s.add_dependency(%q<tilt-jbuilder>.freeze, ["~> 0.7"])
232
+ s.add_dependency(%q<rdoc>.freeze, ["~> 6.3"])
233
+ s.add_dependency(%q<swagger_yard>.freeze, ["~> 1.0"])
234
+ s.add_dependency(%q<activesupport>.freeze, ["~> 6.1"])
235
+ s.add_dependency(%q<sentry-raven>.freeze, ["~> 3.1"])
236
+ s.add_dependency(%q<skylight>.freeze, ["~> 4.3"])
237
+ s.add_dependency(%q<phony>.freeze, ["~> 2.18"])
238
+ s.add_dependency(%q<gemfile_updater>.freeze, ["~> 0.1"])
239
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.4"])
240
+ s.add_dependency(%q<amazing_print>.freeze, ["~> 1.2"])
241
+ s.add_dependency(%q<byebug>.freeze, ["~> 11.1"])
242
+ s.add_dependency(%q<launchy>.freeze, ["~> 2.5"])
243
+ s.add_dependency(%q<pry-byebug>.freeze, ["~> 3.9"])
244
+ end
245
+ end
246
+