Sha256: aaa5f587478e9a118d33142e87ec26ed1b2d5401d6e51cc873b9eb259f17f88d
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
module Doorkeeper module OAuth class Scopes include Enumerable include Comparable def self.from_string(string) string ||= "" new.tap do |scope| scope.add *string.split end end def self.from_array(array) new.tap do |scope| scope.add *array end end delegate :each, :to => :@scopes def initialize @scopes = [] end def exists?(scope) @scopes.include? scope.to_sym end def add(*scopes) @scopes.push *scopes.map(&:to_sym) @scopes.uniq! end def all @scopes end def to_s @scopes.join(" ") end def has_scopes?(scopes) scopes.all? { |s| exists?(s) } end def +(other) if other.is_a? Scopes self.class.from_array(self.all + other.all) else super(other) end end def <=>(other) self.map(&:to_s).sort <=> other.map(&:to_s).sort end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
couchkeeper-0.6.7 | lib/doorkeeper/oauth/scopes.rb |