Module: LiveAST
- Defined in:
- lib/live_ast/base.rb,
lib/live_ast/error.rb,
lib/live_ast/common.rb,
lib/live_ast/evaler.rb,
lib/live_ast/linker.rb,
lib/live_ast/loader.rb,
lib/live_ast/reader.rb,
lib/live_ast/irb_spy.rb,
lib/live_ast/version.rb,
lib/live_ast/replace_eval.rb
Defined Under Namespace
Modules: Attacher, Common, Evaler, IRBSpy, Linker, Loader, Reader, ReplaceEval Classes: ASTNotFoundError, Cache, MultipleDefinitionsOnSameLineError, RawEvalError, RubyParser
Constant Summary collapse
- NATIVE_EVAL =
:nodoc:
Kernel.method(:eval)
- VERSION =
"1.1.1"
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'
). -
.strip_token(file) ⇒ Object
strip the revision token from a string.
Class Attribute Details
.parser ⇒ Object
:nodoc:
17 18 19 20 21 22 |
# File 'lib/live_ast/base.rb', line 17 def parser #:nodoc: @parser ||= ( require 'live_ast/ruby_parser' LiveAST::RubyParser ) end |
Class Method Details
.ast(obj) ⇒ Object
For use in noninvasive mode (require 'live_ast/base'
).
Equivalent to obj.to_ast
.
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/live_ast/base.rb', line 29 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
.
53 54 55 |
# File 'lib/live_ast/base.rb', line 53 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.
44 45 46 |
# File 'lib/live_ast/base.rb', line 44 def flush_cache Linker.flush_cache end |
.load(file, wrap = false) ⇒ Object
For use in noninvasive mode (require 'live_ast/base'
).
Equivalent to Kernel#ast_load
.
62 63 64 |
# File 'lib/live_ast/base.rb', line 62 def load(file, wrap = false) #:nodoc: Loader.load(file, wrap) end |
.strip_token(file) ⇒ Object
strip the revision token from a string
69 70 71 |
# File 'lib/live_ast/base.rb', line 69 def strip_token(file) #:nodoc: file.sub(/#{Regexp.quote Linker::REVISION_TOKEN}[a-z]+/, "") end |