punk 0.3.2 → 0.4.1

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 (138) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +1 -1
  3. data/.rdoc_options +0 -1
  4. data/.rubocop.yml +1091 -93
  5. data/.standard.yml +2 -0
  6. data/Gemfile +60 -61
  7. data/Gemfile.lock +64 -59
  8. data/README.md +7 -3
  9. data/Rakefile +9 -7
  10. data/VERSION +1 -1
  11. data/app/migrations/001_lets_punk.rb +1 -1
  12. data/app/routes/hello.rb +1 -1
  13. data/bin/punk +5 -5
  14. data/env/defaults.sh +3 -0
  15. data/lib/punk.rb +8 -9
  16. data/lib/punk/actions/sessions/create.rb +3 -3
  17. data/lib/punk/actions/sessions/verify.rb +2 -2
  18. data/lib/punk/commands/auth.rb +4 -4
  19. data/lib/punk/commands/generate.rb +5 -5
  20. data/lib/punk/commands/http.rb +4 -4
  21. data/lib/punk/commands/list.rb +10 -10
  22. data/lib/punk/core/app.rb +41 -41
  23. data/lib/punk/core/boot.rb +5 -5
  24. data/lib/punk/core/cli.rb +3 -3
  25. data/lib/punk/core/commander.rb +28 -28
  26. data/lib/punk/core/commands.rb +8 -8
  27. data/lib/punk/core/env.rb +27 -27
  28. data/lib/punk/core/exec.rb +8 -8
  29. data/lib/punk/core/interface.rb +19 -19
  30. data/lib/punk/core/load.rb +2 -2
  31. data/lib/punk/core/logger.rb +3 -3
  32. data/lib/punk/core/monkey.rb +1 -1
  33. data/lib/punk/core/pry.rb +2 -2
  34. data/lib/punk/core/settings.rb +4 -4
  35. data/lib/punk/core/version.rb +1 -1
  36. data/lib/punk/core/worker.rb +6 -6
  37. data/lib/punk/framework/all.rb +8 -8
  38. data/lib/punk/framework/model.rb +6 -5
  39. data/lib/punk/framework/plugins/all.rb +1 -1
  40. data/lib/punk/framework/plugins/validation.rb +8 -8
  41. data/lib/punk/framework/service.rb +5 -3
  42. data/lib/punk/framework/worker.rb +3 -3
  43. data/lib/punk/helpers/all.rb +5 -5
  44. data/lib/punk/helpers/loggable.rb +3 -3
  45. data/lib/punk/helpers/publishable.rb +1 -1
  46. data/lib/punk/helpers/renderable.rb +10 -10
  47. data/lib/punk/helpers/validatable.rb +7 -6
  48. data/lib/punk/migrations/001_punk.rb +12 -12
  49. data/lib/punk/models/group.rb +1 -1
  50. data/lib/punk/models/identity.rb +1 -1
  51. data/lib/punk/models/session.rb +7 -7
  52. data/lib/punk/models/tenant.rb +1 -1
  53. data/lib/punk/models/user.rb +2 -2
  54. data/lib/punk/plugins/all.rb +2 -2
  55. data/lib/punk/plugins/cors.rb +2 -2
  56. data/lib/punk/plugins/ssl.rb +1 -1
  57. data/lib/punk/routes/groups.rb +1 -1
  58. data/lib/punk/routes/plivo.rb +1 -1
  59. data/lib/punk/routes/sessions.rb +2 -2
  60. data/lib/punk/routes/swagger.rb +2 -2
  61. data/lib/punk/routes/tenants.rb +1 -1
  62. data/lib/punk/routes/users.rb +1 -1
  63. data/lib/punk/services/challenge_claim.rb +5 -5
  64. data/lib/punk/services/generate_swagger.rb +6 -6
  65. data/lib/punk/services/prove_claim.rb +1 -1
  66. data/lib/punk/startup/cache.rb +3 -3
  67. data/lib/punk/startup/database.rb +4 -4
  68. data/lib/punk/startup/environment.rb +6 -6
  69. data/lib/punk/startup/logger.rb +2 -2
  70. data/lib/punk/startup/task.rb +5 -5
  71. data/lib/punk/views/fail.rb +2 -2
  72. data/lib/punk/views/groups/list.rb +2 -2
  73. data/lib/punk/views/info.rb +2 -2
  74. data/lib/punk/views/plivo_store.rb +2 -2
  75. data/lib/punk/views/sessions/list.rb +2 -2
  76. data/lib/punk/views/sessions/pending.rb +2 -2
  77. data/lib/punk/views/tenants/list.rb +2 -2
  78. data/lib/punk/views/users/list.rb +2 -2
  79. data/lib/punk/views/users/show.rb +2 -2
  80. data/lib/punk/workers/geocode_session_worker.rb +3 -3
  81. data/lib/punk/workers/identify_session_worker.rb +1 -1
  82. data/lib/punk/workers/send_email_worker.rb +3 -3
  83. data/lib/punk/workers/send_sms_worker.rb +3 -3
  84. data/punk.gemspec +33 -31
  85. data/spec/actions/groups/punk/list_groups_action_spec.rb +9 -9
  86. data/spec/actions/sessions/punk/clear_session_action_spec.rb +11 -11
  87. data/spec/actions/sessions/punk/create_session_action_spec.rb +9 -9
  88. data/spec/actions/sessions/punk/list_sessions_action_spec.rb +8 -8
  89. data/spec/actions/sessions/punk/verify_session_action_spec.rb +24 -24
  90. data/spec/actions/tenants/punk/list_tenants_action_spec.rb +6 -6
  91. data/spec/actions/users/punk/list_group_users_action_spec.rb +6 -6
  92. data/spec/actions/users/punk/list_tenant_users_action_spec.rb +6 -6
  93. data/spec/factories/group.rb +1 -1
  94. data/spec/factories/group_user_metadata.rb +1 -1
  95. data/spec/factories/identity.rb +4 -4
  96. data/spec/factories/session.rb +1 -1
  97. data/spec/factories/tenant.rb +1 -1
  98. data/spec/factories/tenant_user_metadata.rb +1 -1
  99. data/spec/factories/user.rb +1 -1
  100. data/spec/lib/commands/generate_spec.rb +2 -2
  101. data/spec/lib/commands/list_spec.rb +2 -2
  102. data/spec/lib/commands/swagger_spec.rb +2 -2
  103. data/spec/lib/engine/punk_env_spec.rb +4 -4
  104. data/spec/lib/engine/punk_exec_spec.rb +2 -2
  105. data/spec/lib/engine/punk_init_spec.rb +2 -2
  106. data/spec/lib/engine/punk_store_spec.rb +2 -2
  107. data/spec/models/punk/group_spec.rb +4 -4
  108. data/spec/models/punk/group_user_metadata_spec.rb +2 -2
  109. data/spec/models/punk/identity_spec.rb +17 -17
  110. data/spec/models/punk/session_spec.rb +4 -4
  111. data/spec/models/punk/tenant_spec.rb +3 -3
  112. data/spec/models/punk/tenant_user_metadata_spec.rb +2 -2
  113. data/spec/models/punk/user_spec.rb +9 -9
  114. data/spec/routes/groups/get_groups_spec.rb +4 -4
  115. data/spec/routes/plivo/get_plivo_spec.rb +1 -1
  116. data/spec/routes/sessions/delete_session_spec.rb +1 -1
  117. data/spec/routes/sessions/get_sessions_spec.rb +5 -5
  118. data/spec/routes/sessions/patch_session_spec.rb +1 -1
  119. data/spec/routes/sessions/post_session_spec.rb +1 -1
  120. data/spec/routes/swagger/get_swagger_spec.rb +1 -1
  121. data/spec/routes/tenants/get_tenants_spec.rb +5 -5
  122. data/spec/routes/users/get_users_spec.rb +6 -6
  123. data/spec/services/punk/challenge_claim_service_spec.rb +2 -2
  124. data/spec/services/punk/create_identities_service_spec.rb +1 -1
  125. data/spec/services/punk/generate_swagger_service_spec.rb +2 -2
  126. data/spec/services/punk/prove_claim_service_spec.rb +2 -2
  127. data/spec/services/punk/secret_service_spec.rb +2 -2
  128. data/spec/spec_helper.rb +27 -27
  129. data/spec/views/punk/plivo_store_spec.rb +2 -2
  130. data/spec/views/sessions/punk/list_sessions_view_spec.rb +2 -2
  131. data/spec/views/sessions/punk/pending_session_view_spec.rb +2 -2
  132. data/spec/views/tenants/punk/list_tenants_view_spec.rb +2 -2
  133. data/spec/views/users/punk/list_groups_view_spec.rb +2 -2
  134. data/spec/views/users/punk/list_users_view_spec.rb +2 -2
  135. data/spec/workers/punk/geocode_session_worker_spec.rb +2 -2
  136. data/spec/workers/punk/identify_session_worker_spec.rb +3 -3
  137. data/spec/workers/punk/send_email_worker_spec.rb +1 -1
  138. metadata +24 -22
@@ -6,7 +6,7 @@ module PUNK
6
6
  # @property name(required) [string] the name of the group
7
7
  # @property icon(required) [string] an image URL
8
8
  class Group < PUNK::Model
9
- alias to_s name
9
+ alias_method :to_s, :name
10
10
 
11
11
  many_to_one :tenant
12
12
  many_to_many :users
@@ -2,7 +2,7 @@
2
2
 
3
3
  module PUNK
4
4
  class Identity < PUNK::Model
5
- alias to_s claim
5
+ alias_method :to_s, :claim
6
6
 
7
7
  many_to_one :user
8
8
  one_to_many :sessions
@@ -5,7 +5,7 @@ module PUNK
5
5
  # @property slug(required) [string] a unique identifier for the session while it is being challenged
6
6
  # @property message(required) [string] a message to be displayed to the user to let them know what to do
7
7
  class Session < PUNK::Model
8
- alias to_s state
8
+ alias_method :to_s, :state
9
9
 
10
10
  many_to_one :identity
11
11
  one_through_one :user, join_table: :identities, left_key: :id, left_primary_key: :identity_id
@@ -38,27 +38,27 @@ module PUNK
38
38
 
39
39
  dataset_module do
40
40
  def created
41
- where(state: 'created')
41
+ where(state: "created")
42
42
  end
43
43
 
44
44
  def pending
45
- where(state: 'pending')
45
+ where(state: "pending")
46
46
  end
47
47
 
48
48
  def active
49
- where(state: 'active')
49
+ where(state: "active")
50
50
  end
51
51
 
52
52
  def expired
53
- where(state: 'expired')
53
+ where(state: "expired")
54
54
  end
55
55
 
56
56
  def deleted
57
- where(state: 'deleted')
57
+ where(state: "deleted")
58
58
  end
59
59
 
60
60
  def expiring
61
- where { Sequel.&({ state: ['created', 'pending'] }, (created_at < 5.minutes.ago)) }.or { Sequel.&({ state: 'active' }, ((updated_at < 1.month.ago) | (created_at < 1.year.ago))) }
61
+ where { Sequel.&({state: ["created", "pending"]}, (created_at < 5.minutes.ago)) }.or { Sequel.&({state: "active"}, ((updated_at < 1.month.ago) | (created_at < 1.year.ago))) }
62
62
  end
63
63
  end
64
64
 
@@ -6,7 +6,7 @@ module PUNK
6
6
  # @property name(required) [string] the name of the tenant
7
7
  # @property icon(required) [string] an image URL
8
8
  class Tenant < PUNK::Model
9
- alias to_s name
9
+ alias_method :to_s, :name
10
10
 
11
11
  many_to_many :users
12
12
  one_to_many :groups
@@ -6,7 +6,7 @@ module PUNK
6
6
  # @property name(required) [string] the name of the user
7
7
  # @property icon(required) [string] an image URL
8
8
  class User < Model
9
- alias to_s name
9
+ alias_method :to_s, :name
10
10
 
11
11
  many_to_many :tenants
12
12
  many_to_many :groups
@@ -25,7 +25,7 @@ module PUNK
25
25
  end
26
26
 
27
27
  def active_sessions
28
- sessions_dataset.where(Sequel.lit('"sessions"."state"') => 'active')
28
+ sessions_dataset.where(Sequel.lit('"sessions"."state"') => "active")
29
29
  end
30
30
  end
31
31
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'cors'
4
- require_relative 'ssl'
3
+ require_relative "cors"
4
+ require_relative "ssl"
@@ -5,11 +5,11 @@ class Roda
5
5
  module Cors
6
6
  def self.configure(app, origin)
7
7
  return if origin.nil?
8
- require 'rack/cors'
8
+ require "rack/cors"
9
9
  app.use ::Rack::Cors do
10
10
  allow do
11
11
  origins origin
12
- resource '*', headers: :any, methods: :any
12
+ resource "*", headers: :any, methods: :any
13
13
  end
14
14
  end
15
15
  end
@@ -4,7 +4,7 @@ class Roda
4
4
  module RodaPlugins
5
5
  module Ssl
6
6
  def self.configure(app)
7
- require 'rack/ssl-enforcer'
7
+ require "rack/ssl-enforcer"
8
8
  app.use ::Rack::SslEnforcer
9
9
  end
10
10
  end
@@ -3,7 +3,7 @@
3
3
  # @resource Groups
4
4
  #
5
5
  # Each tenant can have many groups.
6
- PUNK.route('groups') do
6
+ PUNK.route("groups") do
7
7
  require_session!
8
8
  require_tenant!
9
9
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # route: GET /plivo
4
- PUNK.route('plivo') { present PUNK::PlivoStore }
4
+ PUNK.route("plivo") { present PUNK::PlivoStore }
@@ -3,7 +3,7 @@
3
3
  # @resource Sessions
4
4
  #
5
5
  # Handle the authentication flow.
6
- PUNK.route('sessions') do
6
+ PUNK.route("sessions") do
7
7
  # Challenge the claim of someone having a particular email address or phone number.
8
8
  # @path [POST] /sessions
9
9
  # @parameter claim(required) [string] An email address or mobile phone number.
@@ -24,7 +24,7 @@ PUNK.route('sessions') do
24
24
  # route: POST /sessions
25
25
  post do
26
26
  require_anonymous!
27
- perform PUNK::CreateSessionAction, args.merge(remote_addr: request.ip || PUNK::Session.default_values[:remote_addr].to_s, user_agent: request.env['HTTP_USER_AGENT'] || PUNK::Session.default_values[:user_agent])
27
+ perform PUNK::CreateSessionAction, args.merge(remote_addr: request.ip || PUNK::Session.default_values[:remote_addr].to_s, user_agent: request.env["HTTP_USER_AGENT"] || PUNK::Session.default_values[:user_agent])
28
28
  end
29
29
 
30
30
  # route: GET /sessions/current
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # route: GET /swagger.json
4
- PUNK.route('swagger') do
4
+ PUNK.route("swagger") do
5
5
  result = PUNK::GenerateSwaggerService.run.result
6
6
  response.status = 200
7
- response['Content-Type'] = 'application/json'
7
+ response["Content-Type"] = "application/json"
8
8
  result
9
9
  end
@@ -3,7 +3,7 @@
3
3
  # @resource Tenants
4
4
  #
5
5
  # All resources in the system are relative to a particular tenant application.
6
- PUNK.route('tenants') do
6
+ PUNK.route("tenants") do
7
7
  require_session!
8
8
 
9
9
  # Retrieve the list of tenants visible to the authenticated user.
@@ -3,7 +3,7 @@
3
3
  # @resource Users
4
4
  #
5
5
  # Users can belong to many tenants and many groups.
6
- PUNK.route('users') do
6
+ PUNK.route("users") do
7
7
  require_session!
8
8
  require_tenant!
9
9
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rbnacl'
3
+ require "rbnacl"
4
4
 
5
5
  module PUNK
6
6
  class ChallengeClaimService < Service
@@ -25,13 +25,13 @@ module PUNK
25
25
  case identity.claim_type
26
26
  when :email
27
27
  SendEmailWorker.perform_async(
28
- from: 'GroupFire Accounts <noreply@groupfire.com>',
28
+ from: "GroupFire Accounts <noreply@groupfire.com>",
29
29
  to: identity.claim,
30
- subject: '[GroupFire] Verification Code',
31
- template: 'verify',
30
+ subject: "[GroupFire] Verification Code",
31
+ template: "verify",
32
32
  tags: [:auth],
33
33
  variables: {
34
- name: identity.user&.name || 'New User',
34
+ name: identity.user&.name || "New User",
35
35
  secret: secret
36
36
  }
37
37
  )
@@ -3,18 +3,18 @@
3
3
  module PUNK
4
4
  class GenerateSwaggerService < Service
5
5
  def process
6
- path = File.join(PUNK.get.app.path, '..', 'www', 'swagger.json')
7
- raise InternalServerError, 'swagger.json already exists' if File.exist?(path) && !PUNK.env.test?
8
- require 'swagger_yard'
9
- require_relative '../helpers/swagger'
6
+ path = File.join(PUNK.get.app.path, "..", "www", "swagger.json")
7
+ raise InternalServerError, "swagger.json already exists" if File.exist?(path) && !PUNK.env.test?
8
+ require "swagger_yard"
9
+ require_relative "../helpers/swagger"
10
10
  SwaggerYard.register_custom_yard_tags!
11
11
  SwaggerYard.configure do |config|
12
12
  config.api_version = PUNK.version
13
13
  config.title = PUNK.get.app.name
14
14
  config.description = PUNK.get.app.description
15
15
  config.api_base_path = PUNK.get.app.url
16
- config.controller_path = [File.join(PUNK.get.app.path, 'routes', '**', '*'), File.join(__dir__, '..', 'routes', '**', '*')]
17
- config.model_path = [File.join(__dir__, '..', 'models', '**', '*'), File.join(__dir__, '..', 'views', '**', '*'), File.join(PUNK.get.app.path, 'models', '**', '*')]
16
+ config.controller_path = [File.join(PUNK.get.app.path, "routes", "**", "*"), File.join(__dir__, "..", "routes", "**", "*")]
17
+ config.model_path = [File.join(__dir__, "..", "models", "**", "*"), File.join(__dir__, "..", "views", "**", "*"), File.join(PUNK.get.app.path, "models", "**", "*")]
18
18
  end
19
19
  spec = SwaggerYard::OpenAPI.new
20
20
  blob = JSON.pretty_generate(spec.to_h)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rbnacl'
3
+ require "rbnacl"
4
4
 
5
5
  module PUNK
6
6
  class ProveClaimService < Service
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dalli'
3
+ require "dalli"
4
4
 
5
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)
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
8
  end
9
9
  end
10
10
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'sequel'
3
+ require "sequel"
4
4
 
5
5
  module Sequel
6
6
  def self.json_parser_error_class
@@ -12,7 +12,7 @@ module Sequel
12
12
  end
13
13
 
14
14
  class Database
15
- def log_connection_yield(sql, conn, args=nil, &block)
15
+ def log_connection_yield(sql, conn, args = nil, &block)
16
16
  return unless @loggers.first
17
17
  if conn && log_connection_info
18
18
  @loggers.first.tagged(conn.__id__) do
@@ -46,8 +46,8 @@ module PUNK
46
46
  end
47
47
 
48
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'])
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
51
  pg.extension :pg_enum, :pg_range, :pg_array, :pg_json, :pg_row, :pg_timestamptz, :pg_inet
52
52
  Sequel.extension :pg_array_ops, :pg_range_ops, :pg_json_ops, :pg_row_ops, :named_timezones, :thread_local_timezones
53
53
  pg
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
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'
4
+ when "test", "development"
5
+ require "amazing_print"
6
+ require "byebug"
7
+ require "rubocop"
8
+ require "rubocop-rspec"
9
+ require "rubocop-sequel"
10
10
  end
@@ -10,8 +10,8 @@ if PUNK.get.log.enabled?
10
10
  $stdout.sync = true
11
11
  SemanticLogger.add_appender(io: $stdout, formatter: :color)
12
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")
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
15
  FileUtils.mkdir_p(File.dirname(path))
16
16
  SemanticLogger.add_appender(file_name: path, formatter: :color)
17
17
  else
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  case PUNK.task
4
- when 'spec'
5
- require 'rspec'
6
- require 'rspec/its'
7
- require 'sidekiq/testing'
8
- when 'console'
4
+ when "spec"
5
+ require "rspec"
6
+ require "rspec/its"
7
+ require "sidekiq/testing"
8
+ when "console"
9
9
  AwesomePrint.pry! if defined?(AwesomePrint)
10
10
  end
@@ -9,13 +9,13 @@ module PUNK
9
9
 
10
10
  def process
11
11
  logger.warn "#{message} (#{status}): #{error_messages.to_sentence}"
12
- 'fail'
12
+ "fail"
13
13
  end
14
14
 
15
15
  protected
16
16
 
17
17
  def _dir
18
- File.join(__dir__, '..', 'templates')
18
+ File.join(__dir__, "..", "templates")
19
19
  end
20
20
  end
21
21
  end
@@ -10,13 +10,13 @@ module PUNK
10
10
  end
11
11
 
12
12
  def process
13
- 'groups/list'
13
+ "groups/list"
14
14
  end
15
15
 
16
16
  protected
17
17
 
18
18
  def _dir
19
- File.join(__dir__, '..', '..', 'templates')
19
+ File.join(__dir__, "..", "..", "templates")
20
20
  end
21
21
  end
22
22
  end
@@ -8,13 +8,13 @@ module PUNK
8
8
 
9
9
  def process
10
10
  logger.info message
11
- 'info'
11
+ "info"
12
12
  end
13
13
 
14
14
  protected
15
15
 
16
16
  def _dir
17
- File.join(__dir__, '..', 'templates')
17
+ File.join(__dir__, "..", "templates")
18
18
  end
19
19
  end
20
20
  end
@@ -3,13 +3,13 @@
3
3
  module PUNK
4
4
  class PlivoStore < View
5
5
  def process
6
- 'plivo'
6
+ "plivo"
7
7
  end
8
8
 
9
9
  protected
10
10
 
11
11
  def _dir
12
- File.join(__dir__, '..', 'templates')
12
+ File.join(__dir__, "..", "templates")
13
13
  end
14
14
  end
15
15
  end
@@ -10,13 +10,13 @@ module PUNK
10
10
  end
11
11
 
12
12
  def process
13
- 'sessions/list'
13
+ "sessions/list"
14
14
  end
15
15
 
16
16
  protected
17
17
 
18
18
  def _dir
19
- File.join(__dir__, '..', '..', 'templates')
19
+ File.join(__dir__, "..", "..", "templates")
20
20
  end
21
21
  end
22
22
  end
@@ -16,13 +16,13 @@ module PUNK
16
16
  end
17
17
 
18
18
  def process
19
- 'sessions/pending'
19
+ "sessions/pending"
20
20
  end
21
21
 
22
22
  protected
23
23
 
24
24
  def _dir
25
- File.join(__dir__, '..', '..', 'templates')
25
+ File.join(__dir__, "..", "..", "templates")
26
26
  end
27
27
  end
28
28
  end