prosereflect 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +63 -0
  3. data/.github/workflows/links.yml +97 -0
  4. data/.github/workflows/rake.yml +4 -0
  5. data/.github/workflows/release.yml +5 -0
  6. data/.gitignore +4 -0
  7. data/.rubocop.yml +19 -1
  8. data/.rubocop_todo.yml +119 -183
  9. data/CLAUDE.md +78 -0
  10. data/Gemfile +8 -4
  11. data/README.adoc +2 -0
  12. data/Rakefile +3 -3
  13. data/docs/Gemfile +10 -0
  14. data/docs/INDEX.adoc +45 -0
  15. data/docs/_advanced/index.adoc +15 -0
  16. data/docs/_advanced/schema.adoc +112 -0
  17. data/docs/_advanced/step-map.adoc +66 -0
  18. data/docs/_advanced/steps.adoc +88 -0
  19. data/docs/_advanced/test-builder.adoc +61 -0
  20. data/docs/_advanced/transform.adoc +92 -0
  21. data/docs/_config.yml +174 -0
  22. data/docs/_features/html-input.adoc +69 -0
  23. data/docs/_features/html-output.adoc +45 -0
  24. data/docs/_features/index.adoc +15 -0
  25. data/docs/_features/marks.adoc +86 -0
  26. data/docs/_features/node-types.adoc +124 -0
  27. data/docs/_features/user-mentions.adoc +47 -0
  28. data/docs/_guides/custom-nodes.adoc +107 -0
  29. data/docs/_guides/index.adoc +13 -0
  30. data/docs/_guides/round-trip-html.adoc +91 -0
  31. data/docs/_guides/serialization.adoc +109 -0
  32. data/docs/_pages/index.adoc +67 -0
  33. data/docs/_reference/document-api.adoc +49 -0
  34. data/docs/_reference/index.adoc +14 -0
  35. data/docs/_reference/node-api.adoc +79 -0
  36. data/docs/_reference/schema-api.adoc +95 -0
  37. data/docs/_reference/transform-api.adoc +77 -0
  38. data/docs/_understanding/document-model.adoc +65 -0
  39. data/docs/_understanding/fragment.adoc +52 -0
  40. data/docs/_understanding/index.adoc +14 -0
  41. data/docs/_understanding/resolved-position.adoc +53 -0
  42. data/docs/_understanding/slice.adoc +54 -0
  43. data/docs/lychee.toml +63 -0
  44. data/lib/prosereflect/attribute/base.rb +4 -6
  45. data/lib/prosereflect/attribute/bold.rb +2 -4
  46. data/lib/prosereflect/attribute/href.rb +1 -3
  47. data/lib/prosereflect/attribute/id.rb +7 -7
  48. data/lib/prosereflect/attribute.rb +4 -7
  49. data/lib/prosereflect/blockquote.rb +19 -11
  50. data/lib/prosereflect/bullet_list.rb +36 -29
  51. data/lib/prosereflect/code_block.rb +23 -27
  52. data/lib/prosereflect/code_block_wrapper.rb +12 -13
  53. data/lib/prosereflect/document.rb +14 -22
  54. data/lib/prosereflect/fragment.rb +249 -0
  55. data/lib/prosereflect/hard_break.rb +6 -6
  56. data/lib/prosereflect/heading.rb +14 -15
  57. data/lib/prosereflect/horizontal_rule.rb +23 -14
  58. data/lib/prosereflect/image.rb +32 -23
  59. data/lib/prosereflect/input/html.rb +179 -104
  60. data/lib/prosereflect/input.rb +7 -0
  61. data/lib/prosereflect/list_item.rb +11 -12
  62. data/lib/prosereflect/mark/base.rb +9 -11
  63. data/lib/prosereflect/mark/bold.rb +1 -3
  64. data/lib/prosereflect/mark/code.rb +1 -3
  65. data/lib/prosereflect/mark/italic.rb +1 -3
  66. data/lib/prosereflect/mark/link.rb +1 -3
  67. data/lib/prosereflect/mark/strike.rb +1 -3
  68. data/lib/prosereflect/mark/subscript.rb +1 -3
  69. data/lib/prosereflect/mark/superscript.rb +1 -3
  70. data/lib/prosereflect/mark/underline.rb +1 -3
  71. data/lib/prosereflect/mark.rb +9 -5
  72. data/lib/prosereflect/node.rb +171 -33
  73. data/lib/prosereflect/ordered_list.rb +17 -14
  74. data/lib/prosereflect/output/html.rb +279 -50
  75. data/lib/prosereflect/output.rb +7 -0
  76. data/lib/prosereflect/paragraph.rb +11 -13
  77. data/lib/prosereflect/parser.rb +56 -66
  78. data/lib/prosereflect/resolved_pos.rb +256 -0
  79. data/lib/prosereflect/schema/attribute.rb +57 -0
  80. data/lib/prosereflect/schema/content_match.rb +656 -0
  81. data/lib/prosereflect/schema/fragment.rb +166 -0
  82. data/lib/prosereflect/schema/mark.rb +121 -0
  83. data/lib/prosereflect/schema/mark_type.rb +130 -0
  84. data/lib/prosereflect/schema/node.rb +236 -0
  85. data/lib/prosereflect/schema/node_type.rb +274 -0
  86. data/lib/prosereflect/schema/schema_main.rb +190 -0
  87. data/lib/prosereflect/schema/spec.rb +92 -0
  88. data/lib/prosereflect/schema.rb +39 -0
  89. data/lib/prosereflect/table.rb +12 -13
  90. data/lib/prosereflect/table_cell.rb +13 -13
  91. data/lib/prosereflect/table_header.rb +17 -17
  92. data/lib/prosereflect/table_row.rb +12 -12
  93. data/lib/prosereflect/text.rb +35 -11
  94. data/lib/prosereflect/transform/attr_step.rb +157 -0
  95. data/lib/prosereflect/transform/insert_step.rb +115 -0
  96. data/lib/prosereflect/transform/mapping.rb +82 -0
  97. data/lib/prosereflect/transform/mark_step.rb +269 -0
  98. data/lib/prosereflect/transform/replace_around_step.rb +181 -0
  99. data/lib/prosereflect/transform/replace_step.rb +157 -0
  100. data/lib/prosereflect/transform/slice.rb +91 -0
  101. data/lib/prosereflect/transform/step.rb +89 -0
  102. data/lib/prosereflect/transform/step_map.rb +126 -0
  103. data/lib/prosereflect/transform/structure.rb +120 -0
  104. data/lib/prosereflect/transform/transform.rb +341 -0
  105. data/lib/prosereflect/transform.rb +26 -0
  106. data/lib/prosereflect/user.rb +15 -15
  107. data/lib/prosereflect/version.rb +1 -1
  108. data/lib/prosereflect.rb +30 -17
  109. data/prosereflect.gemspec +17 -16
  110. data/spec/fixtures/documents/formatted_text.yaml +14 -0
  111. data/spec/fixtures/documents/heading_paragraph.yaml +16 -0
  112. data/spec/fixtures/documents/lists_doc.yaml +32 -0
  113. data/spec/fixtures/documents/mixed_content.yaml +40 -0
  114. data/spec/fixtures/documents/nested_doc.yaml +20 -0
  115. data/spec/fixtures/documents/simple_doc.yaml +6 -0
  116. data/spec/fixtures/documents/table_doc.yaml +32 -0
  117. data/spec/fixtures/documents/transform_test.yaml +14 -0
  118. data/spec/fixtures/schema/custom_schema.rb +37 -0
  119. data/spec/fixtures/schema/test_schema.rb +46 -0
  120. data/spec/fixtures/test_builder/helpers.rb +212 -0
  121. data/spec/prosereflect/document_spec.rb +332 -330
  122. data/spec/prosereflect/fragment_spec.rb +273 -0
  123. data/spec/prosereflect/hard_break_spec.rb +125 -125
  124. data/spec/prosereflect/input/html_spec.rb +718 -522
  125. data/spec/prosereflect/node_spec.rb +311 -182
  126. data/spec/prosereflect/output/html_spec.rb +105 -105
  127. data/spec/prosereflect/output/whitespace_spec.rb +248 -0
  128. data/spec/prosereflect/paragraph_spec.rb +275 -274
  129. data/spec/prosereflect/parser/round_trip_spec.rb +472 -0
  130. data/spec/prosereflect/parser_spec.rb +185 -180
  131. data/spec/prosereflect/resolved_pos_spec.rb +74 -0
  132. data/spec/prosereflect/schema/conftest.rb +68 -0
  133. data/spec/prosereflect/schema/content_match_spec.rb +237 -0
  134. data/spec/prosereflect/schema/mark_spec.rb +274 -0
  135. data/spec/prosereflect/schema/mark_type_spec.rb +86 -0
  136. data/spec/prosereflect/schema/node_type_spec.rb +142 -0
  137. data/spec/prosereflect/schema/schema_spec.rb +194 -0
  138. data/spec/prosereflect/table_cell_spec.rb +183 -183
  139. data/spec/prosereflect/table_row_spec.rb +149 -149
  140. data/spec/prosereflect/table_spec.rb +320 -318
  141. data/spec/prosereflect/test_builder/marks_spec.rb +127 -0
  142. data/spec/prosereflect/text_spec.rb +133 -132
  143. data/spec/prosereflect/transform/equivalence_spec.rb +487 -0
  144. data/spec/prosereflect/transform/mapping_spec.rb +226 -0
  145. data/spec/prosereflect/transform/replace_spec.rb +832 -0
  146. data/spec/prosereflect/transform/replace_step_spec.rb +157 -0
  147. data/spec/prosereflect/transform/slice_spec.rb +48 -0
  148. data/spec/prosereflect/transform/step_map_spec.rb +70 -0
  149. data/spec/prosereflect/transform/step_spec.rb +211 -0
  150. data/spec/prosereflect/transform/structure_spec.rb +98 -0
  151. data/spec/prosereflect/transform/transform_spec.rb +238 -0
  152. data/spec/prosereflect/user_spec.rb +31 -28
  153. data/spec/prosereflect_spec.rb +28 -26
  154. data/spec/spec_helper.rb +7 -6
  155. data/spec/support/matchers.rb +6 -6
  156. data/spec/support/shared_examples.rb +49 -49
  157. metadata +96 -5
  158. data/spec/prosereflect/version_spec.rb +0 -11
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.shared_examples 'a parsable format' do |format|
3
+ RSpec.shared_examples "a parsable format" do |format|
4
4
  it "parses #{format} content correctly" do
5
5
  document = case format
6
6
  when :yaml
@@ -43,11 +43,11 @@ RSpec.shared_examples 'a parsable format' do |format|
43
43
  end
44
44
  end
45
45
 
46
- RSpec.shared_examples 'a document with tables' do
47
- it 'contains at least one table' do
46
+ RSpec.shared_examples "a document with tables" do
47
+ it "contains at least one table" do
48
48
  document = case file_content
49
49
  when String
50
- if file_content.strip.start_with?('{')
50
+ if file_content.strip.start_with?("{")
51
51
  Prosereflect::Parser.parse_document(JSON.parse(file_content))
52
52
  else
53
53
  Prosereflect::Parser.parse_document(YAML.safe_load(file_content))
@@ -59,10 +59,10 @@ RSpec.shared_examples 'a document with tables' do
59
59
  expect(document.tables.size).to be > 0
60
60
  end
61
61
 
62
- it 'has tables with rows and cells' do
62
+ it "has tables with rows and cells" do
63
63
  document = case file_content
64
64
  when String
65
- if file_content.strip.start_with?('{')
65
+ if file_content.strip.start_with?("{")
66
66
  Prosereflect::Parser.parse_document(JSON.parse(file_content))
67
67
  else
68
68
  Prosereflect::Parser.parse_document(YAML.safe_load(file_content))
@@ -77,11 +77,11 @@ RSpec.shared_examples 'a document with tables' do
77
77
  end
78
78
  end
79
79
 
80
- RSpec.shared_examples 'document traversal' do
81
- it 'can find nodes by type' do
80
+ RSpec.shared_examples "document traversal" do
81
+ it "can find nodes by type" do
82
82
  document = case file_content
83
83
  when String
84
- if file_content.strip.start_with?('{')
84
+ if file_content.strip.start_with?("{")
85
85
  Prosereflect::Parser.parse_document(JSON.parse(file_content))
86
86
  else
87
87
  Prosereflect::Parser.parse_document(YAML.safe_load(file_content))
@@ -90,17 +90,17 @@ RSpec.shared_examples 'document traversal' do
90
90
  Prosereflect::Parser.parse_document(file_content)
91
91
  end
92
92
 
93
- expect(document.find_all('table').size).to be > 0
94
- expect(document.find_all('paragraph').size).to be >= 0
95
- expect(document.find_all('text').size).to be > 0
93
+ expect(document.find_all("table").size).to be > 0
94
+ expect(document.find_all("paragraph").size).to be >= 0
95
+ expect(document.find_all("text").size).to be > 0
96
96
  end
97
97
  end
98
98
 
99
- RSpec.shared_examples 'text content extraction' do
100
- it 'extracts text content from nodes' do
99
+ RSpec.shared_examples "text content extraction" do
100
+ it "extracts text content from nodes" do
101
101
  document = case file_content
102
102
  when String
103
- if file_content.strip.start_with?('{')
103
+ if file_content.strip.start_with?("{")
104
104
  Prosereflect::Parser.parse_document(JSON.parse(file_content))
105
105
  else
106
106
  Prosereflect::Parser.parse_document(YAML.safe_load(file_content))
@@ -110,39 +110,39 @@ RSpec.shared_examples 'text content extraction' do
110
110
  end
111
111
 
112
112
  # Get text from the first paragraph or table cell that contains text
113
- text_container = document.find_first('paragraph') || document.find_first('table_cell')
113
+ text_container = document.find_first("paragraph") || document.find_first("table_cell")
114
114
 
115
115
  if text_container
116
116
  expect(text_container.text_content).to be_a(String)
117
- expect(text_container.text_content).not_to be_empty if text_container.find_first('text')
117
+ expect(text_container.text_content).not_to be_empty if text_container.find_first("text")
118
118
  end
119
119
  end
120
120
  end
121
121
 
122
- RSpec.shared_examples 'document creation' do
123
- it 'creates an empty document' do
122
+ RSpec.shared_examples "document creation" do
123
+ it "creates an empty document" do
124
124
  document = Prosereflect::Document.create
125
125
  expect(document).to be_a(Prosereflect::Document)
126
- expect(document.type).to eq('doc')
126
+ expect(document.type).to eq("doc")
127
127
  expect(document.content).to eq([])
128
128
  end
129
129
 
130
- it 'creates a document with attributes' do
131
- attrs = { 'version' => '1.0' }
130
+ it "creates a document with attributes" do
131
+ attrs = { "version" => "1.0" }
132
132
  document = Prosereflect::Document.new(attrs: attrs)
133
133
  expect(document.attrs).to eq(attrs)
134
134
  end
135
135
 
136
- it 'adds paragraphs to a document' do
136
+ it "adds paragraphs to a document" do
137
137
  document = Prosereflect::Document.create
138
- paragraph = document.add_paragraph('Test paragraph')
138
+ paragraph = document.add_paragraph("Test paragraph")
139
139
 
140
140
  expect(document.content.size).to eq(1)
141
141
  expect(paragraph).to be_a(Prosereflect::Paragraph)
142
- expect(paragraph.text_content).to eq('Test paragraph')
142
+ expect(paragraph.text_content).to eq("Test paragraph")
143
143
  end
144
144
 
145
- it 'adds tables to a document' do
145
+ it "adds tables to a document" do
146
146
  document = Prosereflect::Document.create
147
147
  table = document.add_table
148
148
 
@@ -152,11 +152,11 @@ RSpec.shared_examples 'document creation' do
152
152
  end
153
153
 
154
154
  # Helper for parsing any format of content
155
- RSpec.shared_examples 'format parsing' do
155
+ RSpec.shared_context "format parsing" do
156
156
  let(:document) do
157
157
  case file_content
158
158
  when String
159
- if file_content.strip.start_with?('{')
159
+ if file_content.strip.start_with?("{")
160
160
  Prosereflect::Parser.parse_document(JSON.parse(file_content))
161
161
  else
162
162
  Prosereflect::Parser.parse_document(YAML.safe_load(file_content))
@@ -167,25 +167,25 @@ RSpec.shared_examples 'format parsing' do
167
167
  end
168
168
  end
169
169
 
170
- RSpec.shared_examples 'format round-trip' do |format|
170
+ RSpec.shared_examples "format round-trip" do |format|
171
171
  it "maintains document structure after #{format} round-trip" do
172
172
  # Create a rich document
173
173
  document = Prosereflect::Document.create
174
174
 
175
175
  # Add paragraph with formatted text
176
- para = document.add_paragraph('Plain text')
177
- para.add_text(' bold text', [{ 'type' => 'bold' }])
176
+ para = document.add_paragraph("Plain text")
177
+ para.add_text(" bold text", [{ "type" => "bold" }])
178
178
  para.add_hard_break
179
- para.add_text('After line break', [{ 'type' => 'italic' }])
179
+ para.add_text("After line break", [{ "type" => "italic" }])
180
180
 
181
181
  # Add a table
182
182
  table = document.add_table
183
- table.add_header(['Header 1', 'Header 2', 'Header 3'])
183
+ table.add_header(["Header 1", "Header 2", "Header 3"])
184
184
  table.add_row(%w[R1C1 R1C2 R1C3])
185
185
  table.add_row(%w[R2C1 R2C2 R2C3])
186
186
 
187
187
  # Add another paragraph
188
- document.add_paragraph('Concluding paragraph')
188
+ document.add_paragraph("Concluding paragraph")
189
189
 
190
190
  # Convert to specified format and back
191
191
  parsed_doc = round_trip_conversion(document, format)
@@ -193,12 +193,12 @@ RSpec.shared_examples 'format round-trip' do |format|
193
193
  # Verify structure is maintained
194
194
  expect(parsed_doc.paragraphs.size).to eq(document.paragraphs.size)
195
195
  expect(parsed_doc.tables.size).to eq(document.tables.size)
196
- expect(parsed_doc.find_all('hard_break').size).to eq(document.find_all('hard_break').size)
196
+ expect(parsed_doc.find_all("hard_break").size).to eq(document.find_all("hard_break").size)
197
197
 
198
198
  # Verify table structure
199
- table_in_parsed = parsed_doc.find_first('table')
200
- expect(table_in_parsed.rows.size).to eq(document.find_first('table').rows.size)
201
- expect(table_in_parsed.header_row.cells.size).to eq(document.find_first('table').header_row.cells.size)
199
+ table_in_parsed = parsed_doc.find_first("table")
200
+ expect(table_in_parsed.rows.size).to eq(document.find_first("table").rows.size)
201
+ expect(table_in_parsed.header_row.cells.size).to eq(document.find_first("table").header_row.cells.size)
202
202
  end
203
203
 
204
204
  def round_trip_conversion(doc, format)
@@ -214,21 +214,21 @@ RSpec.shared_examples 'format round-trip' do |format|
214
214
  end
215
215
  end
216
216
 
217
- RSpec.shared_examples 'html conversion' do
218
- it 'converts to HTML and back' do
217
+ RSpec.shared_examples "html conversion" do
218
+ it "converts to HTML and back" do
219
219
  # Create a document with various elements
220
220
  document = Prosereflect::Document.create
221
221
 
222
222
  # Add paragraph with formatted text
223
- para = document.add_paragraph('Plain text')
224
- para.add_text(' bold text', [Prosereflect::Mark::Bold.new])
223
+ para = document.add_paragraph("Plain text")
224
+ para.add_text(" bold text", [Prosereflect::Mark::Bold.new])
225
225
  para.add_hard_break
226
- para.add_text('After line break', [Prosereflect::Mark::Italic.new])
226
+ para.add_text("After line break", [Prosereflect::Mark::Italic.new])
227
227
 
228
228
  # Add a table
229
229
  table = document.add_table
230
- table.add_header(['Header 1', 'Header 2'])
231
- table.add_row(['Cell 1', 'Cell 2'])
230
+ table.add_header(["Header 1", "Header 2"])
231
+ table.add_row(["Cell 1", "Cell 2"])
232
232
 
233
233
  # Convert to HTML
234
234
  html = Prosereflect::Output::Html.convert(document)
@@ -241,9 +241,9 @@ RSpec.shared_examples 'html conversion' do
241
241
 
242
242
  # Check content was preserved
243
243
  expect(parsed_doc.content.size).to be > 0
244
- expect(parsed_doc.text_content).to include('Plain text')
245
- expect(parsed_doc.text_content).to include('bold text')
246
- expect(parsed_doc.text_content).to include('After line break')
247
- expect(parsed_doc.find_all('table').size).to eq(1)
244
+ expect(parsed_doc.text_content).to include("Plain text")
245
+ expect(parsed_doc.text_content).to include("bold text")
246
+ expect(parsed_doc.text_content).to include("After line break")
247
+ expect(parsed_doc.find_all("table").size).to eq(1)
248
248
  end
249
249
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prosereflect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-06-04 00:00:00.000000000 Z
11
+ date: 2026-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.7'
19
+ version: '0.8'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.7'
26
+ version: '0.8'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -45,15 +45,49 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
+ - ".github/workflows/docs.yml"
49
+ - ".github/workflows/links.yml"
48
50
  - ".github/workflows/rake.yml"
49
51
  - ".github/workflows/release.yml"
50
52
  - ".gitignore"
51
53
  - ".rubocop.yml"
52
54
  - ".rubocop_todo.yml"
55
+ - CLAUDE.md
53
56
  - CODE_OF_CONDUCT.md
54
57
  - Gemfile
55
58
  - README.adoc
56
59
  - Rakefile
60
+ - docs/Gemfile
61
+ - docs/INDEX.adoc
62
+ - docs/_advanced/index.adoc
63
+ - docs/_advanced/schema.adoc
64
+ - docs/_advanced/step-map.adoc
65
+ - docs/_advanced/steps.adoc
66
+ - docs/_advanced/test-builder.adoc
67
+ - docs/_advanced/transform.adoc
68
+ - docs/_config.yml
69
+ - docs/_features/html-input.adoc
70
+ - docs/_features/html-output.adoc
71
+ - docs/_features/index.adoc
72
+ - docs/_features/marks.adoc
73
+ - docs/_features/node-types.adoc
74
+ - docs/_features/user-mentions.adoc
75
+ - docs/_guides/custom-nodes.adoc
76
+ - docs/_guides/index.adoc
77
+ - docs/_guides/round-trip-html.adoc
78
+ - docs/_guides/serialization.adoc
79
+ - docs/_pages/index.adoc
80
+ - docs/_reference/document-api.adoc
81
+ - docs/_reference/index.adoc
82
+ - docs/_reference/node-api.adoc
83
+ - docs/_reference/schema-api.adoc
84
+ - docs/_reference/transform-api.adoc
85
+ - docs/_understanding/document-model.adoc
86
+ - docs/_understanding/fragment.adoc
87
+ - docs/_understanding/index.adoc
88
+ - docs/_understanding/resolved-position.adoc
89
+ - docs/_understanding/slice.adoc
90
+ - docs/lychee.toml
57
91
  - lib/prosereflect.rb
58
92
  - lib/prosereflect/attribute.rb
59
93
  - lib/prosereflect/attribute/base.rb
@@ -65,10 +99,12 @@ files:
65
99
  - lib/prosereflect/code_block.rb
66
100
  - lib/prosereflect/code_block_wrapper.rb
67
101
  - lib/prosereflect/document.rb
102
+ - lib/prosereflect/fragment.rb
68
103
  - lib/prosereflect/hard_break.rb
69
104
  - lib/prosereflect/heading.rb
70
105
  - lib/prosereflect/horizontal_rule.rb
71
106
  - lib/prosereflect/image.rb
107
+ - lib/prosereflect/input.rb
72
108
  - lib/prosereflect/input/html.rb
73
109
  - lib/prosereflect/list_item.rb
74
110
  - lib/prosereflect/mark.rb
@@ -83,18 +119,50 @@ files:
83
119
  - lib/prosereflect/mark/underline.rb
84
120
  - lib/prosereflect/node.rb
85
121
  - lib/prosereflect/ordered_list.rb
122
+ - lib/prosereflect/output.rb
86
123
  - lib/prosereflect/output/html.rb
87
124
  - lib/prosereflect/paragraph.rb
88
125
  - lib/prosereflect/parser.rb
126
+ - lib/prosereflect/resolved_pos.rb
127
+ - lib/prosereflect/schema.rb
128
+ - lib/prosereflect/schema/attribute.rb
129
+ - lib/prosereflect/schema/content_match.rb
130
+ - lib/prosereflect/schema/fragment.rb
131
+ - lib/prosereflect/schema/mark.rb
132
+ - lib/prosereflect/schema/mark_type.rb
133
+ - lib/prosereflect/schema/node.rb
134
+ - lib/prosereflect/schema/node_type.rb
135
+ - lib/prosereflect/schema/schema_main.rb
136
+ - lib/prosereflect/schema/spec.rb
89
137
  - lib/prosereflect/table.rb
90
138
  - lib/prosereflect/table_cell.rb
91
139
  - lib/prosereflect/table_header.rb
92
140
  - lib/prosereflect/table_row.rb
93
141
  - lib/prosereflect/text.rb
142
+ - lib/prosereflect/transform.rb
143
+ - lib/prosereflect/transform/attr_step.rb
144
+ - lib/prosereflect/transform/insert_step.rb
145
+ - lib/prosereflect/transform/mapping.rb
146
+ - lib/prosereflect/transform/mark_step.rb
147
+ - lib/prosereflect/transform/replace_around_step.rb
148
+ - lib/prosereflect/transform/replace_step.rb
149
+ - lib/prosereflect/transform/slice.rb
150
+ - lib/prosereflect/transform/step.rb
151
+ - lib/prosereflect/transform/step_map.rb
152
+ - lib/prosereflect/transform/structure.rb
153
+ - lib/prosereflect/transform/transform.rb
94
154
  - lib/prosereflect/user.rb
95
155
  - lib/prosereflect/version.rb
96
156
  - prosereflect.gemspec
97
157
  - sig/prosemirror.rbs
158
+ - spec/fixtures/documents/formatted_text.yaml
159
+ - spec/fixtures/documents/heading_paragraph.yaml
160
+ - spec/fixtures/documents/lists_doc.yaml
161
+ - spec/fixtures/documents/mixed_content.yaml
162
+ - spec/fixtures/documents/nested_doc.yaml
163
+ - spec/fixtures/documents/simple_doc.yaml
164
+ - spec/fixtures/documents/table_doc.yaml
165
+ - spec/fixtures/documents/transform_test.yaml
98
166
  - spec/fixtures/ituob-1000/ituob-1000-DP.json
99
167
  - spec/fixtures/ituob-1000/ituob-1000-DP.yaml
100
168
  - spec/fixtures/ituob-1000/ituob-1000-E118_IIN.json
@@ -131,19 +199,41 @@ files:
131
199
  - spec/fixtures/ituob-1001/ituob-1001-NNP.yaml
132
200
  - spec/fixtures/ituob-1001/ituob-1001-Q708_ISPC.json
133
201
  - spec/fixtures/ituob-1001/ituob-1001-Q708_ISPC.yaml
202
+ - spec/fixtures/schema/custom_schema.rb
203
+ - spec/fixtures/schema/test_schema.rb
204
+ - spec/fixtures/test_builder/helpers.rb
134
205
  - spec/prosereflect/document_spec.rb
206
+ - spec/prosereflect/fragment_spec.rb
135
207
  - spec/prosereflect/hard_break_spec.rb
136
208
  - spec/prosereflect/input/html_spec.rb
137
209
  - spec/prosereflect/node_spec.rb
138
210
  - spec/prosereflect/output/html_spec.rb
211
+ - spec/prosereflect/output/whitespace_spec.rb
139
212
  - spec/prosereflect/paragraph_spec.rb
213
+ - spec/prosereflect/parser/round_trip_spec.rb
140
214
  - spec/prosereflect/parser_spec.rb
215
+ - spec/prosereflect/resolved_pos_spec.rb
216
+ - spec/prosereflect/schema/conftest.rb
217
+ - spec/prosereflect/schema/content_match_spec.rb
218
+ - spec/prosereflect/schema/mark_spec.rb
219
+ - spec/prosereflect/schema/mark_type_spec.rb
220
+ - spec/prosereflect/schema/node_type_spec.rb
221
+ - spec/prosereflect/schema/schema_spec.rb
141
222
  - spec/prosereflect/table_cell_spec.rb
142
223
  - spec/prosereflect/table_row_spec.rb
143
224
  - spec/prosereflect/table_spec.rb
225
+ - spec/prosereflect/test_builder/marks_spec.rb
144
226
  - spec/prosereflect/text_spec.rb
227
+ - spec/prosereflect/transform/equivalence_spec.rb
228
+ - spec/prosereflect/transform/mapping_spec.rb
229
+ - spec/prosereflect/transform/replace_spec.rb
230
+ - spec/prosereflect/transform/replace_step_spec.rb
231
+ - spec/prosereflect/transform/slice_spec.rb
232
+ - spec/prosereflect/transform/step_map_spec.rb
233
+ - spec/prosereflect/transform/step_spec.rb
234
+ - spec/prosereflect/transform/structure_spec.rb
235
+ - spec/prosereflect/transform/transform_spec.rb
145
236
  - spec/prosereflect/user_spec.rb
146
- - spec/prosereflect/version_spec.rb
147
237
  - spec/prosereflect_spec.rb
148
238
  - spec/spec_helper.rb
149
239
  - spec/support/matchers.rb
@@ -155,6 +245,7 @@ metadata:
155
245
  homepage_uri: https://github.com/metanorma/prosereflect
156
246
  source_code_uri: https://github.com/metanorma/prosereflect
157
247
  bug_tracker_uri: https://github.com/metanorma/prosereflect/issues
248
+ rubygems_mfa_required: 'true'
158
249
  post_install_message:
159
250
  rdoc_options: []
160
251
  require_paths:
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Prosereflect::VERSION do
6
- it 'has a version number' do
7
- expect(Prosereflect::VERSION).not_to be nil
8
- expect(Prosereflect::VERSION).to be_a(String)
9
- expect(Prosereflect::VERSION).to match(/\d+\.\d+\.\d+/)
10
- end
11
- end