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

Version Path
card-1.99.6 tmpsets/set/mod017-account/right/token.rb
card-1.99.5 tmpsets/set/mod017-account/right/token.rb
card-1.97.0.1 tmpsets/set/mod017-account/right/token.rb
card-1.97.0 tmpsets/set/mod017-account/right/token.rb
card-1.96.8 tmpsets/set/mod017-account/right/token.rb
card-1.96.7 tmpsets/set/mod017-account/right/token.rb
card-1.96.6 tmpsets/set/mod017-account/right/token.rb
card-1.96.5 tmpsets/set/mod017-account/right/token.rb
card-1.96.4 tmpsets/set/mod017-account/right/token.rb
card-1.96.3 tmpsets/set/mod017-account/right/token.rb
card-1.96.2 tmpsets/set/mod017-account/right/token.rb
card-1.96.1 tmpsets/set/mod017-account/right/token.rb
card-1.96.0 tmpsets/set/mod017-account/right/token.rb
card-1.95.3 tmpsets/set/mod017-account/right/token.rb
card-1.95.2 tmpsets/set/mod017-account/right/token.rb
card-1.95.1 tmpsets/set/mod017-account/right/token.rb
card-1.95.0 tmpsets/set/mod017-account/right/token.rb
card-1.94.1 tmpsets/set/mod017-account/right/token.rb
card-1.94.0 tmpsets/set/mod017-account/right/token.rb
card-1.93.13 tmpsets/set/mod017-account/right/token.rb