Module: LiveAST
- Defined in:
- lib/live_ast/base.rb,
lib/live_ast/error.rb,
lib/live_ast/evaler.rb,
lib/live_ast/linker.rb,
lib/live_ast/loader.rb,
lib/live_ast/reader.rb,
lib/live_ast/version.rb
Defined Under Namespace
Modules: Attacher, Evaler, Linker, Loader, Reader Classes: ASTNotFoundError, Cache, MultipleDefinitionsOnSameLineError, RawEvalError
Constant Summary collapse
- NATIVE_EVAL =
:nodoc:
Kernel.method(:eval)
- VERSION =
"0.6.0"
Class Attribute Summary collapse
-
.parser ⇒ Object
:nodoc:.
Class Method Summary collapse
-
.ast(obj) ⇒ Object
For use in noninvasive mode (
require 'live_ast/base'
). -
.eval(*args) ⇒ Object
For use in noninvasive mode (
require 'live_ast/base'
). -
.flush_cache ⇒ Object
Flush unused ASTs from the cache.
-
.load(file, wrap = false) ⇒ Object
For use in noninvasive mode (
require 'live_ast/base'
).
Class Attribute Details
.parser ⇒ Object
:nodoc:
15 16 17 18 19 20 |
# File 'lib/live_ast/base.rb', line 15 def parser #:nodoc: @parser ||= ( require 'live_ast_ruby_parser' LiveASTRubyParser ) end |
Class Method Details
.ast(obj) ⇒ Object
For use in noninvasive mode (require 'live_ast/base'
).
Equivalent to obj.to_ast
.
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/live_ast/base.rb', line 27 def ast(obj) #:nodoc: case obj when Method, UnboundMethod Linker.find_method_ast(obj.owner, obj.name, *obj.source_location) when Proc Linker.find_proc_ast(obj) else raise TypeError, "No AST for #{obj.class} objects" end end |
.eval(*args) ⇒ Object
For use in noninvasive mode (require 'live_ast/base'
).
Equivalent to Kernel#ast_eval
.
51 52 53 |
# File 'lib/live_ast/base.rb', line 51 def eval(*args) #:nodoc: Evaler.eval(args[0], *args) end |
.flush_cache ⇒ Object
Flush unused ASTs from the cache. See README.rdoc before doing this.
42 43 44 |
# File 'lib/live_ast/base.rb', line 42 def flush_cache Linker.flush_cache end |