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].
19 20 21 22 23 |
# File 'opal/lib/opal/fragment.rb', line 19 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
13 14 15 |
# File 'opal/lib/opal/fragment.rb', line 13 def code @code end |
Instance Method Details
#column ⇒ Integer?
Original column this fragment was created from
44 45 46 |
# File 'opal/lib/opal/fragment.rb', line 44 def column @sexp.column if @sexp end |
#inspect ⇒ Object
Inspect the contents of this fragment, f("fooo")
26 27 28 |
# File 'opal/lib/opal/fragment.rb', line 26 def inspect "f(#{@code.inspect})" end |
#line ⇒ Integer?
Original line this fragment was created from
38 39 40 |
# File 'opal/lib/opal/fragment.rb', line 38 def line @sexp.line if @sexp end |
#source_map_name ⇒ Object
30 31 32 33 34 |
# File 'opal/lib/opal/fragment.rb', line 30 def source_map_name return nil unless @scope def_node = @scope.def? ? @scope : @scope.find_parent_def def_node && def_node.mid end |