class BarkingIguana::Verify::SignableAction
Attributes
params[RW]
path[RW]
verb[RW]
Public Class Methods
new(verb, path, params = {})
click to toggle source
# File lib/barking_iguana/verify/signable_action.rb, line 15 def initialize verb, path, params = {} self.verb = verb self.path = path self.params = params end
Public Instance Methods
add(key, value)
click to toggle source
# File lib/barking_iguana/verify/signable_action.rb, line 21 def add key, value params[key] = value end
inspect()
click to toggle source
# File lib/barking_iguana/verify/signable_action.rb, line 62 def inspect "#<BarkingIguana::Verify::SignableAction #{to_s.inspect}>" end
query_string()
click to toggle source
# File lib/barking_iguana/verify/signable_action.rb, line 33 def query_string return '' unless params.any? '?' + URI.encode_www_form(ordered_params) end
sign(public_key, secret, expires_at)
click to toggle source
# File lib/barking_iguana/verify/signable_action.rb, line 46 def sign public_key, secret, expires_at signature = Signature.new public_key, self, secret, expires_at SignedAction.new self, signature end
to_s()
click to toggle source
# File lib/barking_iguana/verify/signable_action.rb, line 42 def to_s "#{verb} #{unsigned_path}" end
unsigned_path()
click to toggle source
# File lib/barking_iguana/verify/signable_action.rb, line 38 def unsigned_path Addressable::URI.parse "#{path}#{query_string}" end
verify!(signature, secret)
click to toggle source
# File lib/barking_iguana/verify/signable_action.rb, line 51 def verify! signature, secret Signature.verify signature, self, secret end
verify?(signature, secret)
click to toggle source
# File lib/barking_iguana/verify/signable_action.rb, line 55 def verify? signature, secret verify! signature, secret true rescue SignatureException false end
Private Instance Methods
ordered_params()
click to toggle source
# File lib/barking_iguana/verify/signable_action.rb, line 25 def ordered_params # Ruby has ordered hashes, but I want alphabetical order params.keys.sort_by(&:to_s).inject({}) { |a, e| a.merge! e => params[e] } end