Class: Opal::Fragment
- Inherits:
-
Object
- Object
- Opal::Fragment
- Defined in:
- opal/lib/opal/fragment.rb
Overview
A fragment holds a string of generated javascript that will be written to the destination. It also keeps hold of the original sexp from which it was generated. Using this sexp, when writing fragments in order, a mapping can be created of the original location => target location, aka, source-maps!
These are generated by nodes, so will not have to create directly.
Instance Attribute Summary collapse
-
#code ⇒ String
readonly
String of javascript this fragment holds.
Instance Method Summary collapse
-
#column ⇒ Integer?
Original column this fragment was created from.
-
#initialize(code, scope, sexp = nil) ⇒ Fragment
constructor
Create fragment with javascript code and optional original [Opal::Sexp].
-
#inspect ⇒ Object
Inspect the contents of this fragment, f("fooo").
-
#line ⇒ Integer?
Original line this fragment was created from.
- #source_map_name ⇒ Object
Constructor Details
#initialize(code, scope, sexp = nil) ⇒ Fragment
Create fragment with javascript code and optional original [Opal::Sexp].
18 19 20 21 22 |
# File 'opal/lib/opal/fragment.rb', line 18 def initialize(code, scope, sexp = nil) @code = code.to_s @sexp = sexp @scope = scope end |
Instance Attribute Details
#code ⇒ String (readonly)
String of javascript this fragment holds
12 13 14 |
# File 'opal/lib/opal/fragment.rb', line 12 def code @code end |
Instance Method Details
#column ⇒ Integer?
Original column this fragment was created from
43 44 45 |
# File 'opal/lib/opal/fragment.rb', line 43 def column @sexp.column if @sexp end |
#inspect ⇒ Object
Inspect the contents of this fragment, f("fooo")
25 26 27 |
# File 'opal/lib/opal/fragment.rb', line 25 def inspect "f(#{@code.inspect})" end |
#line ⇒ Integer?
Original line this fragment was created from
37 38 39 |
# File 'opal/lib/opal/fragment.rb', line 37 def line @sexp.line if @sexp end |
#source_map_name ⇒ Object
29 30 31 32 33 |
# File 'opal/lib/opal/fragment.rb', line 29 def source_map_name return nil unless @scope def_node = @scope.def? ? @scope : @scope.find_parent_def def_node && def_node.mid end |