Class: Pbw::Command
Class Method Summary collapse
- .creatable_by?(user, subject) ⇒ Boolean
- .deletable_by?(user, subject) ⇒ Boolean
- .editable_by?(user, subject) ⇒ Boolean
- .viewable_by?(user, subject) ⇒ Boolean
Instance Method Summary collapse
- #processes ⇒ Object
- #run_processes! ⇒ Object
- #runs_on_ticks? ⇒ Boolean
- #runs_on_updates? ⇒ Boolean
- #set_tickable_and_updatable ⇒ Object
- #tick! ⇒ Object
- #update! ⇒ Object
- #valid_for_token?(token) ⇒ Boolean
- #valid_for_user?(user) ⇒ Boolean
- #validate_token_and_user ⇒ Object
Class Method Details
.creatable_by?(user, subject) ⇒ Boolean
22 23 24 |
# File 'app/models/pbw/command.rb', line 22 def self.creatable_by?(user, subject) user.admin? || subject.user.nil? || (subject.user == user && subject.token.user && subject.token.user == user) end |
.deletable_by?(user, subject) ⇒ Boolean
30 31 32 |
# File 'app/models/pbw/command.rb', line 30 def self.deletable_by?(user, subject) user.admin? || (subject.user == user && subject.token.user && subject.token.user == user) end |
.editable_by?(user, subject) ⇒ Boolean
26 27 28 |
# File 'app/models/pbw/command.rb', line 26 def self.editable_by?(user, subject) user.admin? || (subject.user == user && subject.token.user && subject.token.user == user) end |
.viewable_by?(user, subject) ⇒ Boolean
18 19 20 |
# File 'app/models/pbw/command.rb', line 18 def self.viewable_by?(user, subject) user.admin? || subject.user == user end |
Instance Method Details
#processes ⇒ Object
54 55 56 57 |
# File 'app/models/pbw/command.rb', line 54 def processes # stub method [] end |
#run_processes! ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'app/models/pbw/command.rb', line 64 def run_processes! procs = processes return if procs.nil? if procs.responds_to?(:each) procs.each do |process| process.run!(self.token) end elsif procs.ancestors.include?(Process) process.run!(self.token) else raise "Invalid return method from #{self.class.name}.processes" end end |
#runs_on_ticks? ⇒ Boolean
44 45 46 47 |
# File 'app/models/pbw/command.rb', line 44 def runs_on_ticks? # stub method false end |
#runs_on_updates? ⇒ Boolean
49 50 51 52 |
# File 'app/models/pbw/command.rb', line 49 def runs_on_updates? # stub method false end |
#set_tickable_and_updatable ⇒ Object
59 60 61 62 |
# File 'app/models/pbw/command.rb', line 59 def set_tickable_and_updatable self.tickable = runs_on_ticks? self.updatable = runs_on_updates? end |
#tick! ⇒ Object
83 84 85 86 87 88 89 90 91 92 |
# File 'app/models/pbw/command.rb', line 83 def tick! return unless self.tickable unless self.ticks_waiting > 0 run_processes! destroy else self.ticks_waiting = self.ticks_waiting - 1 save! end end |
#update! ⇒ Object
94 95 96 97 98 99 100 101 102 103 |
# File 'app/models/pbw/command.rb', line 94 def update! return unless self.updatable unless self.updates_waiting > 0 run_processes! destroy else self.updates_waiting = self.updates_waiting - 1 save! end end |
#valid_for_token?(token) ⇒ Boolean
34 35 36 37 |
# File 'app/models/pbw/command.rb', line 34 def valid_for_token?(token) # stub method false end |
#valid_for_user?(user) ⇒ Boolean
39 40 41 42 |
# File 'app/models/pbw/command.rb', line 39 def valid_for_user?(user) # stub method false end |
#validate_token_and_user ⇒ Object
78 79 80 81 |
# File 'app/models/pbw/command.rb', line 78 def validate_token_and_user errors.add(:token, 'Invalid token') unless valid_for_token?(self.token) errors.add(:user, 'Invalid user') unless valid_for_user?(self.user) end |