Module: Sequel::Plugins::Privacy::DatasetMethods
- Extended by:
- T::Generic, T::Helpers, T::Sig
- Defined in:
- lib/sequel/plugins/privacy.rb
Instance Method Summary collapse
- #all ⇒ Object
- #create(values = {}) ⇒ Object
- #for_vc(vc) ⇒ Object
- #new(values = {}) ⇒ Object
- #row_proc ⇒ Object
Instance Method Details
#all ⇒ Object
763 764 765 766 |
# File 'lib/sequel/plugins/privacy.rb', line 763 def all results = super opts[:viewer_context] ? results.compact : results end |
#create(values = {}) ⇒ Object
780 781 782 |
# File 'lib/sequel/plugins/privacy.rb', line 780 def create(values = {}) T.cast(new(values), Sequel::Model).save end |
#for_vc(vc) ⇒ Object
737 738 739 |
# File 'lib/sequel/plugins/privacy.rb', line 737 def for_vc(vc) clone(viewer_context: vc) end |
#new(values = {}) ⇒ Object
770 771 772 773 774 775 776 |
# File 'lib/sequel/plugins/privacy.rb', line 770 def new(values = {}) instance = T.unsafe(model).new(values) if (vc = opts[:viewer_context]) instance.instance_variable_set(:@viewer_context, vc) end instance end |
#row_proc ⇒ Object
744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 |
# File 'lib/sequel/plugins/privacy.rb', line 744 def row_proc vc = opts[:viewer_context] return super unless vc model_class = T.cast(model, ClassMethods) vc_key = model_class.privacy_vc_key proc do |values| old_vc = Thread.current[vc_key] Thread.current[vc_key] = vc begin model_class.(values) ensure Thread.current[vc_key] = old_vc end end end |