Class: Admission::Tests::RuleCheckContext

Inherits:
Object
  • Object
show all
Defined in:
lib/admission/tests/tests.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRuleCheckContext

Returns a new instance of RuleCheckContext.



116
117
118
119
120
# File 'lib/admission/tests/tests.rb', line 116

def initialize
  @evaluations = []
  action = yield self
  self.set_rule_check_action = action if !self.action && Proc === action
end

Instance Attribute Details

#actionObject (readonly)

Returns the value of attribute action.



114
115
116
# File 'lib/admission/tests/tests.rb', line 114

def action
  @action
end

Instance Method Details

#[](value) ⇒ Object



143
144
145
# File 'lib/admission/tests/tests.rb', line 143

def [] value
  data[value]
end

#[]=(name, value) ⇒ Object



147
148
149
# File 'lib/admission/tests/tests.rb', line 147

def []= name, value
  data[name] = value
end

#add_evaluation(*args) ⇒ Object



151
152
153
154
155
# File 'lib/admission/tests/tests.rb', line 151

def add_evaluation *args
  evaluation = Evaluation.new *args
  @evaluations.push evaluation
  evaluation
end

#dataObject



122
123
124
# File 'lib/admission/tests/tests.rb', line 122

def data
  @data ||= {}
end

#evaluate(request) ⇒ Object



157
158
159
160
161
162
163
# File 'lib/admission/tests/tests.rb', line 157

def evaluate request
  raise 'no evaluation preset' if @evaluations.empty?
  @evaluations.each do |evaluation|
    evaluation.request = request
    yield evaluation
  end
end

#prepare(*args, &block) ⇒ Object



134
135
136
137
# File 'lib/admission/tests/tests.rb', line 134

def prepare *args, &block
  raise 'context is static (i.e. context was not set to a Proc)' unless @data_builder
  @data = @data_builder.call *args, &block
end

#set(value) ⇒ Object



126
127
128
129
130
131
132
# File 'lib/admission/tests/tests.rb', line 126

def set value
  case value
  when Proc then @data_builder = value
  when Hash then @data = value
  else raise('context must be Hash or Proc')
  end
end

#set_rule_check_action=(action) ⇒ Object



139
140
141
# File 'lib/admission/tests/tests.rb', line 139

def set_rule_check_action= action
  @action = action
end