Class: Admission::Tests::RuleCheckContext
- Inherits:
-
Object
- Object
- Admission::Tests::RuleCheckContext
- Defined in:
- lib/admission/tests/tests.rb
Instance Attribute Summary collapse
-
#action ⇒ Object
readonly
Returns the value of attribute action.
Instance Method Summary collapse
- #[](value) ⇒ Object
- #[]=(name, value) ⇒ Object
- #add_evaluation(*args) ⇒ Object
- #data ⇒ Object
- #evaluate(request) ⇒ Object
-
#initialize ⇒ RuleCheckContext
constructor
A new instance of RuleCheckContext.
- #prepare(*args, &block) ⇒ Object
- #set(value) ⇒ Object
- #set_rule_check_action=(action) ⇒ Object
Constructor Details
#initialize ⇒ RuleCheckContext
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
#action ⇒ Object (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 |
#data ⇒ Object
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 |