Sha256: 9531bbc98a5a489eb4e41f15f7fea077caebe4a17f5d137f3bf1f027e1eccfd3
Contents?: true
Size: 1.34 KB
Versions: 49
Compression:
Stored size: 1.34 KB
Contents
# -*- encoding : utf-8 -*- class Card; module Set; class Right; module Token; extend Card::Set # ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/account/set/right/token.rb ~~ include All::Permissions::Accounts DURATIONS = "second|minute|hour|day|week|month|year".freeze card_accessor :expiration view :raw do "Private data" end def validate! token error = case when !real? then [:token_not_found, "no token found"] when expired? then [:token_expired, "expired token"] when content != token then [:incorrect_token, "token mismatch"] end errors.add *error if error end def expired? !permanent? && updated_at <= term.ago end def permanent? term == "permanent" end def used! Auth.as_bot { delete! } unless permanent? end def term @term ||= if expiration.present? term_from_string expiration else Card.config.token_expiry end end def term_from_string string string.strip! return "permanent" if string == "none" re_match = /^(\d+)[\.\s]*(#{DURATIONS})s?$/.match(string) number, unit = re_match.captures if re_match raise Card::Error::Oops, "illegal expiration value (eg '2 days')" unless unit number.to_i.send unit end # ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/account/set/right/token.rb ~~ end;end;end;end;
Version data entries
49 entries across 49 versions & 1 rubygems