Class: Conflisp::Language
- Inherits:
-
Object
- Object
- Conflisp::Language
- Defined in:
- lib/conflisp/language.rb
Overview
A collection of functions that can evaluate JSON encoded s-expressions
Instance Attribute Summary collapse
-
#registry ⇒ Object
readonly
Returns the value of attribute registry.
Class Method Summary collapse
Instance Method Summary collapse
- #evaluate(expression, globals: {}) ⇒ Object
- #extend(&block) ⇒ Object
-
#initialize(registry:) ⇒ Language
constructor
A new instance of Language.
Constructor Details
#initialize(registry:) ⇒ Language
16 17 18 |
# File 'lib/conflisp/language.rb', line 16 def initialize(registry:) @registry = registry end |
Instance Attribute Details
#registry ⇒ Object (readonly)
Returns the value of attribute registry.
9 10 11 |
# File 'lib/conflisp/language.rb', line 9 def registry @registry end |
Class Method Details
.define(&block) ⇒ Object
11 12 13 14 |
# File 'lib/conflisp/language.rb', line 11 def self.define(&block) method_registry = DSL.define(&block) new(registry: method_registry) end |
Instance Method Details
#evaluate(expression, globals: {}) ⇒ Object
20 21 22 23 |
# File 'lib/conflisp/language.rb', line 20 def evaluate(expression, globals: {}) evaluator = Evaluator.new(registry: registry, globals: globals) evaluator.resolve(expression) end |
#extend(&block) ⇒ Object
25 26 27 28 |
# File 'lib/conflisp/language.rb', line 25 def extend(&block) new_registry = DSL.define(&block) self.class.new(registry: registry.merge(new_registry)) end |