Class: Fernet::Generator
- Inherits:
-
Object
- Object
- Fernet::Generator
- Defined in:
- lib/fernet/generator.rb
Overview
Internal: Generates Fernet tokens
Instance Attribute Summary collapse
-
#message ⇒ Object
Internal: Returns the token’s message.
Instance Method Summary collapse
-
#data=(message) ⇒ Object
Deprecated: used to set the message.
-
#generate {|_self| ... } ⇒ Object
Internal: generates a secret token.
-
#initialize(opts) ⇒ Generator
constructor
Internal: Initializes a generator.
-
#inspect ⇒ Object
(also: #to_s)
Public: string representation of this generator, masks secret to avoid leaks.
Constructor Details
#initialize(opts) ⇒ Generator
Internal: Initializes a generator
opts - a hash containing the following keys:
-
secret - a string containing a secret, optionally Base64 encoded
-
message - the message
17 18 19 20 21 22 |
# File 'lib/fernet/generator.rb', line 17 def initialize(opts) @secret = opts.fetch(:secret) @message = opts[:message] @iv = opts[:iv] @now = opts[:now] end |
Instance Attribute Details
#message ⇒ Object
Internal: Returns the token’s message
10 11 12 |
# File 'lib/fernet/generator.rb', line 10 def @message end |
Instance Method Details
#data=(message) ⇒ Object
Deprecated: used to set the message
58 59 60 61 |
# File 'lib/fernet/generator.rb', line 58 def data=() puts "[WARNING] 'data=' is deprecated, use 'message=' instead" @message = end |
#generate {|_self| ... } ⇒ Object
Internal: generates a secret token
Yields itself, useful for setting or overriding the message
Examples
generator = Generator.new(secret: some_secret)
token = generator.generate do |g|
g. = 'this is my message'
end
generator = Generator.new(secret: some_secret,
message: 'this is my message')
token = generator.generate
Returns the token as a string
40 41 42 43 44 45 46 47 48 |
# File 'lib/fernet/generator.rb', line 40 def generate yield self if block_given? token = Token.generate(secret: @secret, message: @message, iv: @iv, now: @now) token.to_s end |
#inspect ⇒ Object Also known as: to_s
Public: string representation of this generator, masks secret to avoid
leaks
52 53 54 |
# File 'lib/fernet/generator.rb', line 52 def inspect "#<Fernet::Generator @secret=[masked] @message=#{@message.inspect}>" end |