Class: Prosereflect::CodeBlockWrapper
- Inherits:
-
Node
- Object
- Lutaml::Model::Serializable
- Node
- Prosereflect::CodeBlockWrapper
show all
- Defined in:
- lib/prosereflect/code_block_wrapper.rb
Overview
CodeBlockWrapper class represents a pre tag that wraps code blocks in ProseMirror.
Constant Summary
collapse
- PM_TYPE =
"code_block_wrapper"
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Node
#add_child, #copy, #cut, #descendants, #eq?, #find_all, #find_children, #find_first, #marks, #marks=, #node, #node_size, #nodes_between, #parse_content, #process_attrs_data, #raw_marks, #resolve, #text?, #to_yaml
Constructor Details
Returns a new instance of CodeBlockWrapper.
20
21
22
23
24
25
26
|
# File 'lib/prosereflect/code_block_wrapper.rb', line 20
def initialize(attributes = {})
attributes[:content] ||= []
attributes[:attrs] = {
"line_numbers" => false,
}
super
end
|
Class Method Details
.create(attrs = nil) ⇒ Object
28
29
30
|
# File 'lib/prosereflect/code_block_wrapper.rb', line 28
def self.create(attrs = nil)
new(attrs: attrs)
end
|
Instance Method Details
#add_code_block(code = nil) ⇒ Object
42
43
44
45
46
47
|
# File 'lib/prosereflect/code_block_wrapper.rb', line 42
def add_code_block(code = nil)
block = CodeBlock.new
block.content = code if code
add_child(block)
block
end
|
#code_blocks ⇒ Object
49
50
51
|
# File 'lib/prosereflect/code_block_wrapper.rb', line 49
def code_blocks
content
end
|
#line_numbers ⇒ Object
38
39
40
|
# File 'lib/prosereflect/code_block_wrapper.rb', line 38
def line_numbers
@line_numbers || attrs&.[]("line_numbers") || false
end
|
#line_numbers=(value) ⇒ Object
32
33
34
35
36
|
# File 'lib/prosereflect/code_block_wrapper.rb', line 32
def line_numbers=(value)
@line_numbers = value
self.attrs ||= {}
attrs["line_numbers"] = value
end
|
#text_content ⇒ Object
53
54
55
|
# File 'lib/prosereflect/code_block_wrapper.rb', line 53
def text_content
code_blocks.map(&:text_content).join("\n")
end
|
#to_h ⇒ Object
57
58
59
60
61
62
63
|
# File 'lib/prosereflect/code_block_wrapper.rb', line 57
def to_h
hash = super
hash["attrs"] = {
"line_numbers" => line_numbers,
}
hash
end
|