Class: DocJuan::Token

Inherits:
Object
  • Object
show all
Defined in:
lib/doc_juan/token.rb

Instance Method Summary collapse

Constructor Details

#initialize(url_generator) ⇒ Token

Returns a new instance of Token.

Raises:



8
9
10
11
12
# File 'lib/doc_juan/token.rb', line 8

def initialize url_generator
  @url_generator = url_generator

  raise NoSecretGivenError if secret == ''
end

Instance Method Details

#keyObject



14
15
16
17
# File 'lib/doc_juan/token.rb', line 14

def key
  sha1 = OpenSSL::Digest::Digest.new 'sha1'
  OpenSSL::HMAC.hexdigest sha1, secret, seed
end

#secretObject



19
20
21
# File 'lib/doc_juan/token.rb', line 19

def secret
  DocJuan.config.secret.to_s.strip
end

#seedObject



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/doc_juan/token.rb', line 23

def seed
  seed = []
  seed << "filename:#{@url_generator.filename}"
  seed << "format:#{@url_generator.format}"
  Hash[(@url_generator.options).sort].each do |k,v|
    seed << "options_#{k}:#{v}"
  end
  seed << "url:#{@url_generator.url}"

  seed.join '-'
end