class Batteries::Tasks::Secret

Attributes

description[RW]
generator[RW]
name[RW]
secret_file[RW]

Public Class Methods

new(name = :secret, options: {}) { |self| ... } click to toggle source
# File lib/batteries/tasks/secret.rb, line 10
def initialize(name = :secret, options: {})
  @name = name
  @secret_file = options.fetch(:secret_file) { ".session_secret" }
  @description = options.fetch(:description) { default_description }
  @generator = options.fetch(:generator) { method(:default_generator) }

  yield self if block_given?

  define
end

Public Instance Methods

default_description() click to toggle source
# File lib/batteries/tasks/secret.rb, line 33
def default_description
  "Generate a session secret in #{secret_file}"
end
default_generator() click to toggle source
# File lib/batteries/tasks/secret.rb, line 28
def default_generator
  require "securerandom"
  File.write(secret_file, SecureRandom.random_bytes(40))
end
define() click to toggle source
# File lib/batteries/tasks/secret.rb, line 21
def define
  desc description
  task name do
    default_generator.call if default_generator.respond_to?(:call)
  end
end