Class: Elisp2any::Codeblock
- Inherits:
-
Object
- Object
- Elisp2any::Codeblock
- Extended by:
- Forwardable
- Includes:
- Enumerable
- Defined in:
- lib/elisp2any/codeblock.rb
Overview
:nodoc:
Class Method Summary collapse
Instance Method Summary collapse
-
#append(source, end_byte) ⇒ Object
:nodoc:.
- #content ⇒ Object
-
#initialize(node, expressions: []) ⇒ Codeblock
constructor
TODO: delete node TODO: Remove default empty array.
- #source ⇒ Object
Constructor Details
#initialize(node, expressions: []) ⇒ Codeblock
TODO: delete node TODO: Remove default empty array
34 35 36 37 |
# File 'lib/elisp2any/codeblock.rb', line 34 def initialize(node, expressions: []) # :nodoc: @node = node @expressions = expressions end |
Class Method Details
.scan(scanner) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/elisp2any/codeblock.rb', line 8 def self.scan(scanner) scanner = StringScanner.new(scanner) unless scanner.respond_to?(:skip) expressions = [] while (exp = Expression.scan(scanner) || scanner.scan(/[ \n]+/) || Aside.scan(scanner)) expressions << exp end expressions.empty? and return Blanklines.scan(scanner) # optional new(:TODO, expressions:) end |
Instance Method Details
#append(source, end_byte) ⇒ Object
:nodoc:
39 40 41 |
# File 'lib/elisp2any/codeblock.rb', line 39 def append(source, end_byte) # :nodoc: @node.append(source, end_byte) end |
#content ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/elisp2any/codeblock.rb', line 43 def content if @node.respond_to?(:content) @node.content else @expressions end end |
#source ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/elisp2any/codeblock.rb', line 21 def source @expressions.sum(+"") do |exp| case exp in String exp else exp.source end end end |