Class: MakeRestful::PermissibleSet
- Inherits:
-
Set
- Object
- Set
- MakeRestful::PermissibleSet
- Defined in:
- lib/make_restful/permissible_set.rb
Direct Known Subclasses
Instance Method Summary collapse
- #allowed?(*objects) ⇒ Boolean
- #available_objects ⇒ Object
- #except(*objects) ⇒ Object
-
#initialize(set = []) ⇒ PermissibleSet
constructor
A new instance of PermissibleSet.
- #objects=(*objects) ⇒ Object
- #only(*objects) ⇒ Object
- #permissible_objects ⇒ Object
Constructor Details
#initialize(set = []) ⇒ PermissibleSet
Returns a new instance of PermissibleSet.
3 4 5 6 7 |
# File 'lib/make_restful/permissible_set.rb', line 3 def initialize(set=[]) @only = Set.new @except = Set.new super(set) end |
Instance Method Details
#allowed?(*objects) ⇒ Boolean
25 26 27 |
# File 'lib/make_restful/permissible_set.rb', line 25 def allowed?(*objects) true if objects.flatten.map(&:to_sym).select { |i| permissible_objects.include? i }.present? end |
#available_objects ⇒ Object
13 14 15 |
# File 'lib/make_restful/permissible_set.rb', line 13 def available_objects Set.new(self.to_a) end |
#except(*objects) ⇒ Object
21 22 23 |
# File 'lib/make_restful/permissible_set.rb', line 21 def except(*objects) @except += objects.flatten.compact.map(&:to_sym) end |
#objects=(*objects) ⇒ Object
9 10 11 |
# File 'lib/make_restful/permissible_set.rb', line 9 def objects=(*objects) self.replace objects.flatten.compact end |
#only(*objects) ⇒ Object
17 18 19 |
# File 'lib/make_restful/permissible_set.rb', line 17 def only(*objects) @only = objects.flatten.compact.map(&:to_sym) end |
#permissible_objects ⇒ Object
29 30 31 |
# File 'lib/make_restful/permissible_set.rb', line 29 def permissible_objects Set.new(available_objects).intersection(@only.present? ? @only : available_objects).difference(@except) end |