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
755 756 757 758 |
# File 'lib/sequel/plugins/privacy.rb', line 755 def all results = super opts[:viewer_context] ? results.compact : results end |
#create(values = {}) ⇒ Object
772 773 774 |
# File 'lib/sequel/plugins/privacy.rb', line 772 def create(values = {}) T.cast(new(values), Sequel::Model).save end |
#for_vc(vc) ⇒ Object
729 730 731 |
# File 'lib/sequel/plugins/privacy.rb', line 729 def for_vc(vc) clone(viewer_context: vc) end |
#new(values = {}) ⇒ Object
762 763 764 765 766 767 768 |
# File 'lib/sequel/plugins/privacy.rb', line 762 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
736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 |
# File 'lib/sequel/plugins/privacy.rb', line 736 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 |