Class: Pbw::Command

Inherits:
Rule
  • Object
show all
Defined in:
app/models/pbw/command.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.creatable_by?(user, subject) ⇒ Boolean

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

#processesObject



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

Returns:

  • (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

Returns:

  • (Boolean)


49
50
51
52
# File 'app/models/pbw/command.rb', line 49

def runs_on_updates?
    # stub method
    false
end

#set_tickable_and_updatableObject



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

Returns:

  • (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

Returns:

  • (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_userObject



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