Class: CheapCoder::Censor
- Inherits:
-
Object
- Object
- CheapCoder::Censor
- Includes:
- AST::Processor::Mixin
- Defined in:
- lib/cheap_coder/censor.rb
Instance Method Summary collapse
- #handler_missing(node) ⇒ Object
-
#initialize(**option) ⇒ Censor
constructor
A new instance of Censor.
- #on_send(node) ⇒ Object
- #on_xstr(node) ⇒ Object
- #process(expr) ⇒ Object
- #score ⇒ Object
Constructor Details
#initialize(**option) ⇒ Censor
Returns a new instance of Censor.
7 8 9 10 |
# File 'lib/cheap_coder/censor.rb', line 7 def initialize(**option) @authorizer = Authorizer.new(option[:allowed_methods]) @evaluator = option[:evaluator] end |
Instance Method Details
#handler_missing(node) ⇒ Object
33 34 35 |
# File 'lib/cheap_coder/censor.rb', line 33 def handler_missing(node) default_handler(node) end |
#on_send(node) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/cheap_coder/censor.rb', line 26 def on_send(node) return node if @authorizer.allow?(node) print_debug('!SEND', node) Parser::AST::Node.new(:nil, []) end |
#on_xstr(node) ⇒ Object
21 22 23 24 |
# File 'lib/cheap_coder/censor.rb', line 21 def on_xstr(node) print_debug('!XSTR', node) node.to_a[0] end |
#process(expr) ⇒ Object
16 17 18 19 |
# File 'lib/cheap_coder/censor.rb', line 16 def process(expr) @authorizer.process(expr) super end |
#score ⇒ Object
12 13 14 |
# File 'lib/cheap_coder/censor.rb', line 12 def score @evaluator&.score end |